{"id":20686999,"url":"https://github.com/Kyanoxia/orchid","last_synced_at":"2025-05-10T17:30:38.127Z","repository":{"id":259649872,"uuid":"875436537","full_name":"Kyanoxia/orchid","owner":"Kyanoxia","description":"Where Bluesky meets Discord","archived":false,"fork":false,"pushed_at":"2025-02-03T12:57:30.000Z","size":1615,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-22T15:07:53.873Z","etag":null,"topics":["announcement-bot","automation","bluesky","bot","discord","discord-bot","discord-typescript","twitter"],"latest_commit_sha":null,"homepage":"https://kyanoxia.com/orchid","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kyanoxia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"kyanoxia","patreon":null,"open_collective":null,"ko_fi":"kyanoxia","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2024-10-20T01:10:14.000Z","updated_at":"2025-02-06T04:55:53.000Z","dependencies_parsed_at":"2024-10-27T05:17:19.051Z","dependency_job_id":"832b918e-a6fa-4d6a-8072-bfc6dd50597d","html_url":"https://github.com/Kyanoxia/orchid","commit_stats":null,"previous_names":["kyanoxia/skycord","kyanoxia/orchid"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kyanoxia%2Forchid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kyanoxia%2Forchid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kyanoxia%2Forchid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kyanoxia%2Forchid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kyanoxia","download_url":"https://codeload.github.com/Kyanoxia/orchid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253453155,"owners_count":21911049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["announcement-bot","automation","bluesky","bot","discord","discord-bot","discord-typescript","twitter"],"created_at":"2024-11-16T22:55:24.465Z","updated_at":"2025-05-10T17:30:38.116Z","avatar_url":"https://github.com/Kyanoxia.png","language":"TypeScript","funding_links":["https://github.com/sponsors/kyanoxia","https://ko-fi.com/kyanoxia","https://ko-fi.com/kyanoxia'","https://github.com/sponsors/kyanoxia'"],"categories":[],"sub_categories":[],"readme":"﻿# Orchid\r\nGracefully connect your Bluesky account to any Discord channel\r\n\r\n\u003csup\u003ecurrently limited to non-nsfw until May 1 2025\u003c/sup\u003e\r\n\r\n\u003cimg src=\"https://github.com/Kyanoxia/orchid/blob/main/assets/SocialHero.png\" alt=\"orchid banner\" width=\"100%\"/\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href='https://ko-fi.com/kyanoxia'\u003e\u003cimg src='https://img.shields.io/badge/Buy%20Me%20a%20Coffee!-whitesmoke?style=for-the-badge\u0026logo=kofi\u0026logoColor=whitesmoke\u0026labelColor=dimgray\u0026color=dimgray' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\r\n  \u003ca href='https://github.com/sponsors/kyanoxia'\u003e\u003cimg src='https://img.shields.io/github/sponsors/kyanoxia?style=for-the-badge\u0026logo=githubsponsors\u0026logoColor=hotpink\u0026label=Sponsor%20me!\u0026labelColor=dimgray\u0026color=dimgray' /\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n## Getting Started\r\nTo start, please invite the bot to your server using [this URL](https://discord.com/oauth2/authorize?client_id=1297227452707373267).  Once it has successfully joined, use the `/connect` command to subscribe to a user!\r\n\r\n### Commands\r\n**`\u003c\u003e` indicates required, `[]` indicates optional**\r\n|    **Command Name**   |               **Description**               |                             **Usage**                              |\r\n| --------------------- | ------------------------------------------- | ------------------------------------------------------------------ |\r\n| `/botinfo`            | (global) Display information about Orchid  | `/botinfo`                                                         |\r\n| `/connect`            | Connect your BlueSky account                | `/connect \u003chandle\u003e [embed provider] [replies] [message] [regex]`   |\r\n| `/disconnect`         | Disconnect your BlueSky account             | `/disconnect \u003chandle\u003e`                                             |\r\n| `/help`               | Display help page                           | `/help`                                                            |\r\n| `/info`               | Display information about a command         | `/info \u003csubcommand\u003e`                                               |\r\n| `/list`               | Display subscribed users in channel         | `/list`                                                            |\r\n\r\n## Self-Hosting\r\n### Prerequisites\r\nNodeJS (v18.19.0+) \u0026 NPM must be installed.  Once installed, please globally install typescript for convenience:\r\n```\r\nnpm i --global typescript\r\n```\r\nNow that that's out of the way, let's get to it.\r\n\r\n### Setting Up\r\n\r\nClone this repository:\r\n```\r\ngit clone https://github.com/Kyanoxia/orchid.git\r\n```\r\n\r\nTravel into that directory:\r\n```\r\ncd orchid\r\n```\r\n\r\nInstall Dependencies:\r\n```\r\nnpm i\r\n```\r\n\r\nCreate your environment variables:\r\n```\r\ntouch .env\r\n```\r\n\r\nStart the bot:\r\n```\r\nnpm run dev\r\n```\r\nor for production (using pm2 for process persistence)\r\n```\r\nnpm run startpm\r\n```\r\n\r\n### Environment Variables\r\n|   **Variable Name**   |                **Description**              |\r\n| --------------------- | -------------------------------------------:|\r\n| `token`               | Your discord bot token                      |\r\n| `discordClientID`     | Your discord bot Client ID                  |\r\n| `mongoURL`            | Your Mongo Database URL                     |\r\n| `devGuildID`          | Discord developer guild ID for dev commands |\r\n| `devUID`              | JS/TS-style array of developer user IDs     |\r\n\r\nIf you are unfamiliar with creating environment variables, please refer to [this page](https://www.dotenv.org/docs/security/env).\r\n\r\n### Commands for developers\r\n**`\u003c\u003e` indicates required, `[]` indicates optional**\r\n|    **Command Name**   |               **Description**               |            **Usage**         |\r\n| --------------------- | ------------------------------------------- | ---------------------------- |\r\n| `/emit`               | Artificially trigger join/leave event       | `/emit \u003cevent\u003e`              |\r\n| `/getdatabase`        | Print the whole database to console         | `/getdatabase`               |\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKyanoxia%2Forchid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKyanoxia%2Forchid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKyanoxia%2Forchid/lists"}