This document describes the Docker configuration for local development.
The docker-compose.yml file defines the following services:
- Port: 5432
- User: postgres
- Password: postgres
- Database: freedomtalk
- Data Volume:
postgres_data
- Port: 6379
- Persistence: AOF (Append-Only File) enabled
- Data Volume:
redis_data
- AMQP Port: 5672
- Management UI: http://localhost:15672
- User: rabbitmq
- Password: rabbitmq
- Data Volume:
rabbitmq_data
docker-compose up -ddocker-compose down# All services
docker-compose logs -f
# Specific service
docker-compose logs -f postgres
docker-compose logs -f redis
docker-compose logs -f rabbitmqdocker-compose psdocker-compose restart postgresdocker-compose down -v# Using psql
docker-compose exec postgres psql -U postgres -d freedomtalk
# Connection string
postgresql://postgres:postgres@localhost:5432/freedomtalk# Using redis-cli
docker-compose exec redis redis-cli
# Connection string
redis://localhost:6379- Management UI: http://localhost:15672
- Username: rabbitmq
- Password: rabbitmq
- AMQP URL: amqp://rabbitmq:rabbitmq@localhost:5672
All services include health checks to ensure they're running properly:
# Check health status
docker-compose psHealthy services will show (healthy) in their status.
If you get a port conflict error, check if another service is using the port:
# macOS/Linux
lsof -i :5432
lsof -i :6379
lsof -i :5672
# Stop the conflicting service or change the port in docker-compose.yml# Stop and remove the service
docker-compose rm -sf postgres
# Remove the volume
docker volume rm freedomtalk_postgres_data
# Start fresh
docker-compose up -d postgresFor production:
- Use strong, unique passwords
- Enable SSL/TLS
- Configure proper backup strategies
- Use managed services or production-grade configurations
- Implement proper security measures