The deployment uses Docker Compose. The build expects the project source either to be cloned into ./src by the script or to be present in ./src when building locally.
-
Docker and Docker Compose installed
-
Git (if using the script to clone the repo)
-
A Discord bot token from the Discord Developer Portal
-
External network: The Compose file uses a
proxynetwork. Create it if it does not exist:docker network create proxy
Copy .env.example to .env in this directory and set at least:
DISCORD_TOKEN— your bot token (required)ALIAS— container name and image tag (e.g.melodix)GIT/GIT_URL— setGIT=trueto clone the repo into./src; setGIT=falseto use an existing./srcdirectory
Other variables (e.g. STORAGE_PATH, INIT_SLASH_COMMANDS, DEVELOPER_ID, DISCORD_GUILD_BLACKLIST, VOICE_READY_DELAY_MS) are optional and match the main app config.
Option 1 — Build and deploy (recommended)
From this directory (docker/), run:
./build-n-deploy.shThis loads .env, clones the repo into ./src (or uses existing ./src), builds the image, and starts the container.
Option 2 — Compose only
If the image is already built:
docker compose -f docker-compose.yml up -dData is persisted in ./data (mounted at /usr/project/data in the container).