Discord-Authenticator gitea.milesward.dev/mward4/discord-authenticator:latest https://gitea.milesward.dev/mward4/-/packages/container/discord-authenticator bridge sh false https://gitea.milesward.dev/mward4/Discord-Authenticator/issues https://gitea.milesward.dev/mward4/Discord-Authenticator Self-hosted TOTP authenticator with live Discord delivery. Add accounts by uploading a QR code, scanning with the camera, or pasting an otpauth:// link. Google Authenticator exports are supported too: one export QR carries many accounts, and you get a checklist to pick which to import, with duplicates detected automatically. The web UI lists every account with its rotating code, the way Google or Microsoft Authenticator does. The distinctive part: each account keeps ONE message in your Discord channel, delivered through an incoming webhook and rewritten in place every time the code rolls. Three accounts means three live tiles that keep themselves current. The code is posted both as a rendered WebP tile and as copyable text, and the countdown uses Discord's own relative timestamps so it ticks in the client without any extra traffic. SECURITY NOTE: anyone who can read that Discord channel can read these codes, which is most of the point of a second factor. Use a private channel in a server only you are in, and treat the webhook URL as a secret. TOTP secrets are encrypted at rest with XChaCha20-Poly1305. Tools:Utilities Security: http://[IP]:[PORT:8710]/ https://gitea.milesward.dev/mward4/Discord-Authenticator/raw/branch/main/docs/brand/icon-256.png A Discord incoming-webhook URL, from Server Settings → Integrations → Webhooks → New Webhook → Copy Webhook URL. You can add it during first-run setup or later in Settings. 8710 /mnt/user/appdata/discord-authenticator info,da=info