- ✅
.env.production- Production credentials - ✅
.env- Development credentials - ✅
Prompt-*.txt- Project management files
# Check what's tracked by git
git ls-files | grep -E "\.env|Prompt"
# Should return NOTHING ✅- ✅ Admin Password: Securely stored in
.env.production - ✅ Gemini API Key: Configured and working
- ✅ Database Password: Auto-generated strong password
- ✅ Redis Password: Auto-generated strong password
- ✅ Secret Key: Auto-generated 64-char string
-rw------- .env.production # 600 (owner read/write only)
-rw------- .env # 600 (owner read/write only)- Review
.env.production- ensure all secrets are strong - Update
ALLOWED_HOSTSwith your actual domain - Update
CORS_ORIGINSwith your actual frontend URL - Change default admin password after first login
- Enable firewall (allow only 22, 80, 443)
- Set up SSH key authentication
- Disable password SSH login
- Setup SSL with Let's Encrypt
- Test backup/restore procedure
- Setup monitoring alerts
- Review nginx logs regularly
- Keep Docker and system packages updated
- Setup automated security updates
- Rotate passwords every 90 days
- Review access logs monthly
- Update dependencies regularly
- Test disaster recovery quarterly
- Audit user access permissions
-
Change all passwords immediately
nano .env.production # Update ADMIN_PASSWORD, POSTGRES_PASSWORD, REDIS_PASSWORD ./deploy.sh production -
Rotate API keys
- Get new Gemini API key from Google Cloud Console
- Update
.env.production - Redeploy
-
Check for unauthorized access
docker-compose -f docker-compose.prod.yml logs | grep -i "error\|failed\|unauthorized"
-
Review git history
git log --all --full-history --source -- .env.production # Should show NO commits ✅
# Verify .env files are not in git
git status | grep .env
# Should return NOTHING
# Verify file permissions
ls -la .env*
# Should show -rw------- (600)
# Check gitignore
cat .gitignore | grep .env
# Should show .env files listed
# Verify no secrets in git history
git log --all --oneline | xargs git show | grep -i "password\|api_key\|secret"
# Review output carefullyIf you discover a security vulnerability:
- Do NOT open a public GitHub issue
- Email security contact privately
- Allow 48 hours for response
- Coordinate disclosure timing
Last Updated: 2025-10-15 Status: ✅ All credentials secured