Self-hosted deploy
The v0.5.0 proof path deployed kanade-discord to CT 113, then relayed traffic
back to the Windows daemon through a private SSH/systemd path. That path avoids
opening the Windows daemon directly to the LAN, but it is still a maintainer
transport. Longer-lived deployments should choose a clean private network such
as Tailscale, WireGuard, or Cloudflare Tunnel before treating phone-side Discord
as always-on production.
Required environment
Section titled “Required environment”The bot environment must include:
DISCORD_BOT_TOKENDISCORD_APPLICATION_IDDISCORD_GUILD_IDDISCORD_ALLOWED_USER_IDSKANADE_DAEMON_URLKANADE_DEFAULT_ACCOUNT_IDKANADE_DISCORD_BRIDGE_SECRETKANADE_DISCORD_READY_FILE=/tmp/kanade-discord.readyDo not commit real env files. Rotate the Discord token and HMAC secret through a secret manager, then restart both the bot and the daemon with matching values.
Health checks
Section titled “Health checks”The bot writes a ready file after Discord login and refreshes it every 60 seconds. Container health uses that heartbeat. If the container turns unhealthy, check the ready file timestamp, daemon reachability, signature secret, and allowlists before restarting.