NamelessNameSanitizerBot - Minimal Docker Runner []()
August 20, 2026 ยท View on GitHub
This repository is a minimal, fast-to-run Docker setup for NamelessNameSanitizerBot. It contains only what you need to run the published Docker image with PostgreSQL via Docker Compose - no application source code.
If you're looking for the bot's source code, feature list, and full documentation, see:
- Full repo and docs: https://github.com/NanashiTheNameless/NamelessNameSanitizerBot
- Install to a server: https://nnsb.namelessnanashi.dev/install
Why this repo exists
- Minimal footprint: just
docker-compose.yml,.env.example, and a couple of docs - Zero local build: uses the published image
ghcr.io/nanashithenameless/namelessnamesanitizerbot:latest - One command to start: bring up the bot and a PostgreSQL instance quickly
Requirements
- Docker Engine and Docker Compose plugin
- Discord Bot token (with Bot scope; recommended intents: Server Members)
- Discord Application (Client) ID (required for invite URL generation and API usage)
Quick start
1. Clone the repository
git clone --filter=blob:none https://github.com/NanashiTheNameless/NamelessNameSanitizerBot-Docker.git \
&& cd NamelessNameSanitizerBot-Docker \
&& git sparse-checkout init --no-cone \
&& git sparse-checkout set '/TermsOfService.md' '/SECURITY.md' '/PrivacyPolicy.md' '/README.md' '/LICENSE.md' '/docker-compose.yml' '/.env.example' '/autoConfig.sh' '/bot_statuses.jsonc'
2. Create .env
Option A - automated (recommended)
./autoConfig.sh
The wizard prompts for your required DISCORD_TOKEN, OWNER_ID, and APPLICATION_ID, validates them, and generates secure Postgres credentials, then it asks for your defaults. It writes .env for you. Re-run to overwrite if needed.
Option B - manual
cp .env.example .env
# Open .env and set at minimum:
# DISCORD_TOKEN=your-discord-bot-token
# APPLICATION_ID=your-application-client-id (invite links, slash command registration, API identity)
# OWNER_ID=your-discord-user-id
Notes:
- The default
DATABASE_URLalready matches the provided Postgres service in this Compose stack. - Keep secrets in local
.env; do not commit it.
3. Start
As a daemon
docker compose up -d
In the terminal
docker compose up
4. Invite the bot to your server (replace with the same required APPLICATION_ID value)
https://discord.com/oauth2/authorize?client_id=<YOUR_APP_ID>&scope=bot%20applications.commands&permissions=134217728&integration_type=0
What's included
docker-compose.yml- bot:
ghcr.io/nanashithenameless/namelessnamesanitizerbot:latest - db:
postgres:18with a healthcheck and a named volume (db) - default
DATABASE_URL=postgresql://bot:bot@db:5432/bot
- bot:
.env.examplewith sensible defaults and documentation
Notes:
- Database storage persists in the named volume
dbby default. To bind-mount to the repo, uncomment the indicated line indocker-compose.yml. - Host timezone is mounted read-only via
/etc/timezoneand/etc/localtime.
Common operations
- Update to the latest image:
docker compose pull
docker compose up -d
- Stop the stack:
docker compose down
Permissions and intents
- The bot needs "Manage Nicknames" to edit nicknames.
- For automatic sweeps and joins, enable "Server Members Intent".
Troubleshooting (quick)
- Commands not visible yet? Allow several minutes after first startup for global slash command sync, and ensure the application.commands scope.
- Not changing nicknames? Confirm the bot has "Manage Nicknames," the role order is correct, and the sanitizer is enabled per guild.
- Database not ready? Wait for the Postgres health check to pass; check logs and
DATABASE_URL.
Security & privacy
See SECURITY.md in this repo and the policies on the project site:
- The bot does not log message content and doesn't require the Message Content intent.
- Logging channel (if set) only receives a short notice when a nickname is changed.
- Minimal data storage: per-guild config and per-user cooldown timestamps. Cooldowns are purged automatically after COOLDOWN_TTL_SEC.
- Users can request deletion via /delete-my-data; bot owners can execute /delete-user-data or /global-delete-user-data when legally required.
Public telemetry/census:
- Aggregate, non-identifying census metrics are published at https://telemetry.namelessnanashi.dev/ for transparency. This data helps assess bot adoption (how many instances are running) and guide development priorities.
Related policies:
License & Credits
See LICENSE.md.
Note on contributions from AI
AI-generated pull requests are not accepted. All pull requests must be authored by a human, include a clear description of the changes, include tests or verification steps where applicable, and follow the project's contribution guidelines.
Support My Work
If this project is useful to you, you can support it here: