Simple discord.js music bot
- TypeScript 98.8%
- Shell 0.7%
- Dockerfile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| lavalink | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| deno.json | ||
| deno.lock | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
Chirp-ts
your beloved Discord music bot, rewritten from the ground up with TypeScript and Deno.
features!
- Music playback with Lavalink (many sources)
- High quality audio (using Opus)
- Autoplay handled natively by moonlink.js
- Easy to use commands
- Audio filters
- DJ and voting system
- Live lyrics (plain lyrics too!)
- 24/7 mode (doesnt leave the voice channel)
- Support for radio stations thanks to Radio-browser.info
...and much more coming soon!
stack??
- Deno as its runtime
- discord.js v14 as its Discord API library
- Lavalink v4 + moonlink.js for high performance music playback
- Docker Compose for deployment
why moonlink.js?
it performs better than Riffy in my testing, and its more feature-complete
development
deno task dev
deno task check
deno task test
deploy
./scripts/deploy.sh
environment example:
# COPY THIS FILE TO ".env" AND FILL IN THE REAL VALUES
# --- Discord ---
DISCORD_TOKEN=your_token_here
PREFIX=..
# --- Lavalink ---
LAVALINK_NODES=[{"name":"lavalink","host":"lavalink","port":2333,"auth":"change-this-password","secure":false}]
LAVALINK_PASSWORD=change-this-password
LAVALINK_JAVA_OPTS=-Xmx256m -XX:+UseSerialGC
# --- Spotify (for metadata) ---
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
# --- playback settings ---
DEFAULT_VOLUME=50
MAX_QUEUE_SIZE=200
EMPTY_CHANNEL_TIMEOUT=30
see .env.example for the complete and updated list
license
Licensed under the GNU Affero General Public License v3.0 or later. If you run a modified version of this bot for others over a network, you must offer them the source of your modified version (AGPL section 13).