2.4 KiB
2.4 KiB
Melodix
Discord music bot. Plays audio in Discord voice channels.
Access
Internal only — no web UI, no exposed ports. Controlled via Discord commands.
Containers
| Container | Image | Role |
|---|---|---|
melodix |
melodix-image (local build) |
Discord bot |
No Tailscale sidecar. The bot connects outbound to Discord's API.
Compose File
Path: /home/artanis/DockerFiles/melodix/melodix/docker/docker-compose.yml
services:
melodix:
container_name: melodix
restart: always
image: '${ALIAS}-image'
volumes:
- ./data/datastore.json:/usr/project/datastore.json
- ./data/cache:/usr/project/cache
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- ENCODE_VOLUME=${ENCODE_VOLUME}
- ENCODE_CHANNELS=${ENCODE_CHANNELS}
- ENCODE_FRAME_RATE=${ENCODE_FRAME_RATE}
- ENCODE_FRAME_DURATION=${ENCODE_FRAME_DURATION}
- ENCODE_BITRATE=${ENCODE_BITRATE}
- ENCODE_COMPRESSION_LEVEL=${ENCODE_COMPRESSION_LEVEL}
- ENCODE_PACKET_LOSS=${ENCODE_PACKET_LOSS}
- ENCODE_BUFFERED_FRAMES=${ENCODE_BUFFERED_FRAMES}
- ENCODE_VBR=${ENCODE_VBR}
- ENCODE_VOLUME_FLOAT=${ENCODE_VOLUME_FLOAT}
- ENCODE_RECONNECT_AT_EOF=${ENCODE_RECONNECT_AT_EOF}
- ENCODE_RECONNECT_STREAMED=${ENCODE_RECONNECT_STREAMED}
- ENCODE_RECONNECT_ON_NETWORK_ERROR=${ENCODE_RECONNECT_ON_NETWORK_ERROR}
- ENCODE_RECONNECT_ON_HTTP_ERROR=${ENCODE_RECONNECT_ON_HTTP_ERROR}
- ENCODE_RECONNECT_DELAY_MAX=${ENCODE_RECONNECT_DELAY_MAX}
- ENCODE_FFMPEG_BINARY_PATH=${ENCODE_FFMPEG_BINARY_PATH}
- ENCODE_ENCODING_LINE_LOG=${ENCODE_ENCODING_LINE_LOG}
- ENCODE_USER_AGENT=${ENCODE_USER_AGENT}
- ENCODE_RAW_OUTPUT=${ENCODE_RAW_OUTPUT}
entrypoint: /usr/project/app
Notes
- The image is built locally (
melodix-image) — the build context and Dockerfile are in the parent directory of the compose file - All configuration comes from the
.envfile at/home/artanis/DockerFiles/melodix/melodix/docker/.env DISCORD_TOKENis the bot's Discord API token (in.env, redacted here)- The
ENCODE_*variables control FFmpeg audio encoding settings for the voice stream - Data is stored via relative bind mounts (
./data/) relative to the compose file directory — so at/home/artanis/DockerFiles/melodix/melodix/docker/data/ - Dockhand shows this stack under the name
docker(the stack name is derived from the compose working directory name)