Files

1.9 KiB

Discord Meeting Summary Bot — Deployment

Local testing

  1. Create a .env file:
DISCORD_BOT_TOKEN=your_discord_bot_token
OPENROUTER_API_KEY=your_openrouter_api_key
  1. Run locally with Python:
cd /opt/data/discord-meeting-bot
source .venv/bin/activate
python3 bot.py
  1. In Discord:
  • /set_output #your-channel
  • /join
  • talk in voice
  • /leave

Docker / CasaOS

This repository now includes:

  • Dockerfile
  • docker-compose.yml
  • .dockerignore

Build and run with Docker Compose

cd /opt/data/discord-meeting-bot
docker compose up -d --build

Persistent data

The compose file stores:

  • data/config.json — saved channel settings
  • recordings/ — temporary meeting audio

CasaOS setup

In CasaOS, create a custom app from the compose file or use the Docker custom app UI and point it at this repo.

Use a persistent directory like:

/DATA/AppData/discord-meeting-bot

Mount it so the container sees:

  • /app/data
  • /app/recordings

Make sure the container gets these environment variables:

  • DISCORD_BOT_TOKEN
  • OPENROUTER_API_KEY

Logs

Check the container logs if something fails:

docker compose logs -f

Auto-start on reboot

The compose file already includes:

restart: unless-stopped

That means the bot container will come back automatically after a reboot as long as the Docker service itself starts at boot.

On the server, enable Docker once:

sudo systemctl enable docker
sudo systemctl restart docker

You can verify both pieces with:

cd /DATA/AppData/discord-meeting-bot
docker compose ps
sudo systemctl is-enabled docker

Notes

  • The bot only responds to commands in the configured output channel, except /set_output.
  • /join requires the user to be in a voice channel.
  • /leave stops recording and posts the summary to the configured output channel.