docker-compose.yml file contains default passwords for development purposes. These MUST be changed before deploying to production.
The following services use default passwords that should be changed:
-
InfluxDB
- Default password:
changeme123 - Environment variable:
INFLUXDB_PASSWORD - Default token:
changeme - Environment variable:
INFLUXDB_TOKEN
- Default password:
-
PostgreSQL
- Default password:
changeme123 - Environment variable:
POSTGRES_PASSWORD
- Default password:
-
Redis
- Default password:
changeme123 - Environment variable:
REDIS_PASSWORD
- Default password:
-
Grafana
- Default admin password:
admin123 - Environment variable:
GRAFANA_PASSWORD
- Default admin password:
Before deploying to production:
-
Generate strong passwords:
# Generate secure random passwords openssl rand -hex 32 # For InfluxDB token openssl rand -base64 24 # For passwords
-
Use environment variables: Create a
.envfile (and add it to.gitignore):INFLUXDB_TOKEN=$(openssl rand -hex 32) INFLUXDB_PASSWORD=$(openssl rand -base64 24) POSTGRES_PASSWORD=$(openssl rand -base64 24) REDIS_PASSWORD=$(openssl rand -base64 24) GRAFANA_PASSWORD=$(openssl rand -base64 24)
-
Update docker-compose.yml: The compose file already uses environment variables with defaults. In production, ensure these are set via:
.envfile (not committed to git)- Environment variables in your deployment system
- Secrets management system (e.g., Kubernetes secrets, Docker secrets)
-
Network Security:
- Restrict access to database ports (5432, 6379, 8086) to internal networks only
- Use firewall rules to limit access
- Consider using Docker networks to isolate services
-
API Security:
- Enable authentication on the API server
- Use HTTPS/TLS for API endpoints
- Implement rate limiting
- Add API key authentication for production use
-
Never commit secrets to version control
- Use
.gitignorefor.envfiles - Use secrets management tools for production
- Use
-
Rotate credentials regularly
- Set up a schedule for password rotation
- Document credential locations
-
Monitor access
- Enable logging for database access
- Monitor for unauthorized access attempts
-
Keep dependencies updated
- Regularly update Docker images
- Update Python packages for security patches
-
Network isolation
- Use Docker networks to isolate services
- Restrict external access to sensitive services
If you discover a security vulnerability, please report it responsibly:
- Do not open public issues
- Contact the maintainers directly
- Allow time for fixes before public disclosure