Skip to content

Change the configuration

Settings live in your installation’s deploy folder, ~/beatstash/deploy if you kept the installer’s default:

  • config.toml holds the bot’s settings: addresses, paths, administrators, quotas, intervals;
  • .env holds secrets and the choice of services.

Every key is described in the configuration reference, and the commented template is config.example.toml.

The bot reads both files only at startup. Edit, then recreate its container:

Terminal window
cd ~/beatstash/deploy
nano config.toml # or any editor
docker compose up -d --force-recreate bot
docker compose logs --tail=50 bot

Look for bot_started in the log. If the bot exits right away, the log names the setting it rejected. It also rejects keys it doesn’t know, so compare spelling with the template.

Other changes need other services restarted:

You changedRun
config.toml, or BOT_TOKEN, SECRET_KEY, NAVIDROME_PASSWORD in .envdocker compose up -d --force-recreate bot
TELEGRAM_API_ID, TELEGRAM_API_HASHdocker compose up -d --force-recreate telegram-bot-api bot
COMPOSE_PROFILES, COMPOSE_FILE, TELEGRAM_PROXY, or compose.ymldocker compose up -d

Running the installer again in the same directory also works: it changes the answers it asks about and restarts what needs it.

Keep passwords and tokens out of config.toml. The bot doesn’t read .env itself; Docker Compose passes it in. The application looks for config.toml in its working directory, or wherever CONFIG_FILE points; the deployment mounts deploy/config.toml as /app/config.toml.