This tool is an application that checks for the existence of handles for specific domains on Bluesky. It can be managed via Discord, and results are notified to Discord channels. SQLite is used for data persistence.
Click here for how to use the Bot
- Node.js (v23 or higher)
- pnpm
- Docker (if using Docker)
.env
file configuration- Creation of
./data/
directory
- Copy
.env.example
to.env
- Set the necessary values in the
.env
file
mkdir ./data
- Create a new application on the Discord Developer Portal
- Set the following items in the
.env
file:
DISCORD_TOKEN=Your bot token
DISCORD_CLIENT_ID=Application client ID
- Bot scopes:
bot
applications.commands
- Required bot permissions: 18432
- Send Messages
- Embed Links When inviting the bot to a server, please grant the above permissions. Without these permissions, the bot may not function properly.
- Install packages
pnpm install
- Build
pnpm build
- Initialize DB
pnpm migrate
- Execution methods
- Start Discord bot:
pnpm bot
- Run crawler:
pnpm crawl
- Notify crawl results:
pnpm notify
- Run crawler and result notification simultaneously:
pnpm start
- Build image
docker compose build
- Initialize DB
docker compose run --rm -it app migrate
- Start Discord bot
docker compose up -d bot
- Run crawler
docker compose up crawler
- Notify crawl results
docker compose up notifier
- Create builder
docker buildx create --name mybuilder --use
- Build image
docker buildx build --platform linux/amd64,linux/arm64 -t <your-docker-registory>:latest -f Dockerfile --push .
- Initialize DB
docker run --env-file .env -v ./data:/app/data --name bsky-checker ghcr.io/anon5r/bsky-handle-checker:latest migrate
- Start Discord bot
docker run -d --env-file .env -v ./data:/app/data --name bsky-check-bot ghcr.io/anon5r/bsky-handle-checker:latest bot
- Run crawler
docker run --env-file .env -v ./data:/app/data --name bsky-checker ghcr.io/anon5r/bsky-handle-checker:latest crawl
- Notify crawl results
docker run --env-file .env -v ./data:/app/data --name bsky-checker ghcr.io/anon5r/bsky-handle-checker:latest notify
Checks whether a handle DID can be referenced from a domain name.
Note
It does not verify whether the domain is actually set as a handle for an account.
- Node.js 23.x
- TypeScript 5.7.x
- Discord.js 14.x
- SQLite 3.42
- Other major packages:
- dotenv
- axios
- umzug
- better-sqlite3
This application can be run directly in a Node.js environment or in a Docker environment, depending on your environment and needs. Follow the setup to execution steps to prepare the necessary environment.