Welcome to the repository for Yapper, a Discord bot created to transcribe Discord voice messages.
If you'd like to add Yapper to your own server instead of self hosting it, click here.
Please duplicate .env.example to .env.prod and .env.dev, then modify all the values accordingly and do the same for ./prisma/.env.
The default fields here are already configured for running in Docker.
Then: docker compose up :)
To run this bot you will need Node.js v18.20.2 or higher. Then, using a system installed pnpm (or, pnpm provided by corepack with corepack prepare) run pnpm install to install the bot's dependencies.
Then, please duplicate .env.example to .env.prod and .env.dev, then modify all the values accordingly and do the same for ./prisma/.env.
This bot uses PostgreSQL! The format for a DATABASE_URL is:
postgresql://[user[:password]@][host][:port][/dbname]
Using RunPod
You will be asked for an RUNPOD_API_KEY, RUNPOD_LQ_ENDPOINT_ID, and RUNPOD_HQ_ENDPOINT_ID.
From the RunPod Console, select "Serverless", then "Quick Deploy" and select "Faster Whisper". RunPod will recommend a 24 GB GPU, this is perfectly fine. However, feel free to switch to the "16 GB GPU".
For many developers, you may set your RUNPOD_LQ_ENDPOINT_ID and RUNPOD_HQ_ENDPOINT_ID to the value under the name "Faster Whisper", or whatever custom name you've provided:

Next, select "Settings", expand "API Keys" and create a new API Key with "Read" permission. Write permissions will allow this API key to modify your account, which is probably not what you want. This key is your RUNPOD_API_KEY.
- Ready the Database with
pnpm prisma migrate dev.
Then, to run the bot in production mode use pnpm start.
Or, to run the bot in development mode use pnpm build.
Tip
Using development mode will provide you with more detailed logs and push guild commands in the specified DEVELOPMENT_GUILD_ID instead of global commands.
If you run into any problems with either please create an issue.
Follow the instructions here: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-local-tunnel
After that's complete, use pnpm tunnel!