Discord bot that reminds players to vote for your server: DM or channel ping, time windows, per-player timezones, several voting sites, one-click voting. Docker image (amd64/arm64).
翻译准备中
正在加载完整 README。
查看完整 README ↗English · Français · Project website
A Discord bot that reminds your players to vote for your server at the right time: by direct message or channel mention, for each voting site, following their own hours and timezone.
/status: last vote and next reminder, edit or delete in one clickThe bot ships as a ready-to-use Docker image (linux/amd64 and linux/arm64): all you need is Docker with Docker Compose.
APPLICATION_ID:
https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot%20applications.commands&permissions=19456
(permissions: view channels, send messages, embed links)docker-compose.yml fileIn a dedicated folder (for example remindervotebot/), create this file and replace the first three values:
services:
bot:
image: ghcr.io/mrddream/remindervotebot:latest
container_name: ReminderVoteBot
restart: unless-stopped
init: true
# Registers the slash commands on your server, then starts the bot
command: sh -c "node src/deploy-commands.js && exec node src/index.js"
environment:
DISCORD_TOKEN: "bot_token"
CLIENT_ID: "application_id"
GUILD_ID: "your_discord_server_id"
BOT_LANG: "en"
DEFAULT_TZ: "Europe/London"
# Optional: one-click voting (see below), uncomment both lines
# PUBLIC_BASE_URL: "https://vote.example.com"
# MARK_SECRET: "32+ characters, e.g. openssl rand -hex 32"
volumes:
- bot_data:/app/data
# Only needed for one-click voting
ports:
- "3000:3000"
volumes:
bot_data:
docker compose up -d
docker compose logs -f # to follow the startup
On startup, the bot registers its slash commands on your server. An administrator then adds the voting sites with /addvote, and players subscribe with /subscribe.
docker compose pull && docker compose up -d
Subscriptions and voting sites are kept in the bot_data Docker volume.
Updating from an image older than October 27, 2026: the container no longer runs as root. If the bot refuses to start and reports data it cannot write, run once:
docker compose run --rm --user root bot chown -R node:node /app/data
By default, Vote now opens the voting site directly, and the player clicks I voted to restart their timer. To record the vote automatically:
3000 of the container.docker-compose.yml, uncomment PUBLIC_BASE_URL with that domain and MARK_SECRET with a key of at least 32 characters (openssl rand -hex 32).docker compose up -d.The button then goes through a personal link, signed and valid for 7 days, that records the vote and redirects to the site. In channel mention mode, this link is sent to the player privately, so other members cannot vote in their place.
| Variable | Required | Description | Default |
|---|---|---|---|
DISCORD_TOKEN | Yes | Bot token | - |
CLIENT_ID | Yes | Bot Application ID | - |
GUILD_ID | Yes | ID of the bot's Discord server: commands only exist there, and admin commands only work there | - |
BOT_LANG | No | Bot language: en or fr | fr |
DEFAULT_TZ | No | Timezone offered to players by default (e.g. Europe/London, America/New_York) | Europe/Paris |
PUBLIC_BASE_URL | No | Public domain of the bot, for one-click voting | - |
MARK_SECRET | With PUBLIC_BASE_URL | Signing key for vote links, 32 characters minimum | - |
PORT | No | Port of the bot's HTTP server | 3000 |
The bot checks its configuration on startup and stops with an explicit message if something is missing or invalid.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗