fix: remove docker-compose.yml from tracking, add example template #136
No reviewers
Labels
No Label
ai-changes-requested
ai-failed
ai-pr-opened
ai-reviewed
ai-reviewing
ai-working
ai-working
bug
enhancement
feature
in-queue
performance
security
tech-debt
todo
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: cal/paper-dynasty-discord#136
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/docker-compose-secrets-untrack"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
docker-compose.ymlcontains hardcoded credentials (BOT_TOKEN,API_TOKEN,RESTART_WEBHOOK_URL) that must not be tracked in git*compose.ymlrule in.gitignorealready excluded the file from tracking (it was previously deleted in commit60cd547), but no example template existed for contributors!docker-compose.example.ymlnegation to.gitignoreso the example file can be committeddocker-compose.example.ymlwith placeholder values for all secrets and pathsChanges
.gitignore— add!docker-compose.example.ymlnegation rule so the example is trackable while the real file remains excludeddocker-compose.example.yml— full structure matching the real file, with all secrets replaced by descriptive placeholders (your-bot-token-here,your-api-token-here,your-discord-webhook-url-here, etc.)Credential exposure note
The real
docker-compose.ymlcontains:BOT_TOKEN— Discord bot tokenAPI_TOKEN— Paper Dynasty API tokenRESTART_WEBHOOK_URL— Discord webhook URLNone of these values appear in the example file. Refs paper-dynasty-database#9.
Test plan
docker-compose.ymlis not staged or tracked after checkout (git ls-files docker-compose.ymlreturns empty)docker-compose.example.ymlis tracked (git ls-files docker-compose.example.ymlreturns the file)docker-compose.example.yml🤖 Generated with Claude Code
Security Review — APPROVED (no real secrets found)
Reviewed all values in
docker-compose.example.ymlfor real credentials or secrets. All sensitive fields use explicit placeholder strings:BOT_TOKEN=your-bot-token-hereAPI_TOKEN=your-api-token-hereDB_PASSWORD=your-db-password-here(bothdiscord-appanddbservices)GUILD_ID=your-guild-id-hereSCOREBOARD_CHANNEL=your-scoreboard-channel-id-hereRESTART_WEBHOOK_URL=your-discord-webhook-url-hereNon-sensitive values (
DB_USERNAME=postgres,DB_URL=db,DB_NAME=postgres,TZ=America/Chicago,PYTHONHASHSEED=1749583062) are either defaults or non-secret configuration.The
.gitignorechange correctly un-ignoresdocker-compose.example.ymlvia the!negation pattern while keeping all real compose files ignored.No real credentials found. Clean to merge.
Approved via pd-pr