Baby Tracker Deployment Guide
Step-by-step instructions for deploying the Baby Tracker application
Deployment Options
Deploy Baby Tracker to your preferred hosting environment with complete privacy and control
EC2 + Docker Compose (Recommended)
Simple, cost-effective deployment using AWS EC2 with Docker Compose. Complete containerized setup with PostgreSQL and all dependencies included.
✓ Simple configuration
✓ Full control
Local Docker Deployment
Run Baby Tracker on your own hardware using Docker Compose for local development or self-hosting.
✓ No cloud costs
✓ Simple setup
Other Cloud Options
Deploy to other cloud providers like GCP, Azure, DigitalOcean, or platforms like Heroku, Render, or Railway.
✓ Platform-specific features
✓ Existing infrastructure
🚀 AWS EC2 Deployment with Docker Compose
The simplest and most cost-effective way to deploy Baby Tracker to production. Choose between standard HTTP deployment or secure HTTPS deployment:
1. Launch an EC2 Instance
2. Install Docker and Docker Compose
3. Deploy the Application
🎉 Deployment Complete!
Your Baby Tracker instance is now running. Access it at your server's IP address or domain.
Production Environment Configuration
Critical environment variables for production deployment:
| Variable | Description | Production Value |
|---|---|---|
| DJANGO_DEBUG | Enable debug mode | False |
| SECRET_KEY | Django secret key | random-50-char-string |
| ENVIRONMENT | Environment type | production |
| NETWORK_HOST | Host to bind the Django server to | 0.0.0.0 |
| NETWORK_PORT | Port for the Django server | 8000 |
| WEB_PORT | Port to expose the web service on host | 80 |
| ALLOWED_HOSTS | Comma-separated list of allowed host names | yourdomain.com,www.yourdomain.com |
| PRODUCTION_DOMAIN | Your API backend domain | api.yourdomain.com |
| FRONTEND_DOMAIN | Your frontend application domain | app.yourdomain.com |
| CORS_ALLOW_ALL_ORIGINS | Allow all origins for CORS | False |
| CORS_ALLOWED_ORIGINS | Comma-separated list of allowed origins | https://yourdomain.com,https://www.yourdomain.com |
| DATABASE_URL | Database connection string | postgresql://user:pass@db/babytracker |
| POSTGRES_USER | PostgreSQL username (Docker) | postgres |
| POSTGRES_PASSWORD | PostgreSQL password (Docker) | secure-password-here |
| POSTGRES_DB | PostgreSQL database name (Docker) | baby_tracker |
| EMAIL_BACKEND | Django email backend | django.core.mail.backends.smtp.EmailBackend |
| EMAIL_HOST | SMTP server hostname | smtp.gmail.com |
| EMAIL_PORT | SMTP server port | 587 |
| EMAIL_USE_TLS | Use TLS for email | True |
| EMAIL_HOST_USER | Email username | your-email@example.com |
| EMAIL_HOST_PASSWORD | Email password | your-email-password |
| AWS_ACCESS_KEY_ID | AWS access key (for S3/EB) | your-access-key |
| AWS_SECRET_ACCESS_KEY | AWS secret key (for S3/EB) | your-secret-key |
| AWS_STORAGE_BUCKET_NAME | AWS S3 bucket name | your-bucket-name |
| AWS_S3_REGION_NAME | AWS region | us-west-2 |
SSL/HTTPS Setup with Let's Encrypt
Secure your EC2 deployment with free SSL certificates using our integrated HTTPS setup:
Monitoring & Maintenance
📊 EC2 & Container Monitoring
topcd ~/baby-tracker-api && docker-compose pscd ~/baby-tracker-api && docker-compose -f docker-compose.https.yml psdocker-compose logs -f webdocker-compose -f docker-compose.https.yml logs -f nginx certbot💾 Database Backups
nano ~/backup-db.sh#!/bin/bash DATE=$(date +%Y-%m-%d) BACKUP_DIR=~/backups mkdir -p $BACKUP_DIR cd ~/baby-tracker-api docker-compose exec -T db pg_dump -U postgres postgres > $BACKUP_DIR/backup-$DATE.sql
chmod +x ~/backup-db.sh && crontab -e0 2 * * * ~/backup-db.sh🔄 EC2 Application Updates
cd ~/baby-tracker-api && git pull origin main./backup-db.shdocker-compose down && docker-compose up -d --builddocker-compose -f docker-compose.https.yml down && docker-compose -f docker-compose.https.yml up -d --builddocker-compose exec web python manage.py migrate🚨 EC2 Troubleshooting
df -hsudo systemctl restart dockercd ~/baby-tracker-api && docker-compose restartcd ~/baby-tracker-api && docker-compose -f docker-compose.https.yml restartdocker-compose logs -f webdocker-compose -f docker-compose.https.yml logs -f nginxNeed help with deployment? Check our detailed guides and community support.