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.
External network: The Compose file uses a proxy network. 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 — set GIT=true to clone the repo into ./src; set GIT=false to use an existing ./src directoryOther 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.sh
This 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 -d
Data is persisted in ./data (mounted at /usr/project/data in the container).