Some checks failed
CI/CD Pipeline / Backend Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Tests (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
E2E Tests / E2E Tests - ${{ github.event.inputs.environment || 'staging' }} (push) Has been cancelled
E2E Tests / Notify Results (push) Has been cancelled
Dependency Updates / Update Dependencies (push) Has been cancelled
[Restore from backup: vip-coordinator-backup-2025-07-21-18-13-I got Claude Code]
6.5 KiB
6.5 KiB
🚀 VIP Coordinator - Docker Hub Deployment Guide
Deploy the VIP Coordinator application on any system with Docker in just a few steps!
📋 Prerequisites
- Docker and Docker Compose installed on your system
- Domain name (optional, can run on localhost for testing)
- Google Cloud Console account for OAuth setup
🚀 Quick Start (5 Minutes)
1. Download Deployment Files
Create a new directory and download these files:
mkdir vip-coordinator
cd vip-coordinator
# Download the deployment files
curl -O https://raw.githubusercontent.com/your-repo/vip-coordinator/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/your-repo/vip-coordinator/main/.env.example
2. Configure Environment
# Copy the environment template
cp .env.example .env
# Edit the configuration (use your preferred editor)
nano .env
Required Changes in .env:
DB_PASSWORD: Change to a secure passwordADMIN_PASSWORD: Change to a secure passwordGOOGLE_CLIENT_ID: Your Google OAuth Client IDGOOGLE_CLIENT_SECRET: Your Google OAuth Client Secret
For Production Deployment:
DOMAIN: Your domain name (e.g.,mycompany.com)VITE_API_URL: Your API URL (e.g.,https://api.mycompany.com)GOOGLE_REDIRECT_URI: Your callback URL (e.g.,https://api.mycompany.com/auth/google/callback)FRONTEND_URL: Your frontend URL (e.g.,https://mycompany.com)
3. Set Up Google OAuth
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable the Google+ API
- Go to "Credentials" → "Create Credentials" → "OAuth 2.0 Client IDs"
- Set application type to "Web application"
- Add authorized redirect URIs:
- For localhost:
http://localhost:3000/auth/google/callback - For production:
https://api.your-domain.com/auth/google/callback
- For localhost:
- Copy the Client ID and Client Secret to your
.envfile
4. Deploy the Application
# Pull the latest images from Docker Hub
docker-compose pull
# Start the application
docker-compose up -d
# Check status
docker-compose ps
5. Access the Application
- Local Development: http://localhost
- Production: https://your-domain.com
🔧 Configuration Options
Environment Variables
| Variable | Description | Required | Default |
|---|---|---|---|
DB_PASSWORD |
PostgreSQL database password | ✅ | - |
ADMIN_PASSWORD |
Admin interface password | ✅ | - |
GOOGLE_CLIENT_ID |
Google OAuth Client ID | ✅ | - |
GOOGLE_CLIENT_SECRET |
Google OAuth Client Secret | ✅ | - |
GOOGLE_REDIRECT_URI |
OAuth callback URL | ✅ | - |
FRONTEND_URL |
Frontend application URL | ✅ | - |
VITE_API_URL |
Backend API URL | ✅ | - |
DOMAIN |
Your domain name | ❌ | localhost |
AVIATIONSTACK_API_KEY |
Flight data API key | ❌ | - |
PORT |
Backend port | ❌ | 3000 |
Ports
- Frontend: Port 80 (HTTP)
- Backend: Port 3000 (API)
- Database: Internal only (PostgreSQL)
- Redis: Internal only (Cache)
🌐 Production Deployment
With Reverse Proxy (Recommended)
For production, use a reverse proxy like Nginx or Traefik:
# Nginx configuration example
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name your-domain.com;
# SSL configuration
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 443 ssl;
server_name api.your-domain.com;
# SSL configuration
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
SSL/HTTPS Setup
- Obtain SSL certificates (Let's Encrypt recommended)
- Configure your reverse proxy for HTTPS
- Update your
.envfile with HTTPS URLs - Update Google OAuth redirect URIs to use HTTPS
🔍 Troubleshooting
Common Issues
1. OAuth Login Fails
- Check Google OAuth configuration
- Verify redirect URIs match exactly
- Ensure HTTPS is used in production
2. Database Connection Issues
- Check if PostgreSQL container is healthy:
docker-compose ps - Verify database password in
.env
3. Frontend Can't Reach Backend
- Verify
VITE_API_URLin.envmatches your backend URL - Check if backend is accessible:
curl http://localhost:3000/health
4. Permission Denied Errors
- Ensure Docker has proper permissions
- Check file ownership and permissions
Viewing Logs
# View all logs
docker-compose logs
# View specific service logs
docker-compose logs backend
docker-compose logs frontend
docker-compose logs db
# Follow logs in real-time
docker-compose logs -f backend
Health Checks
# Check container status
docker-compose ps
# Check backend health
curl http://localhost:3000/health
# Check frontend
curl http://localhost/
🔄 Updates
To update to the latest version:
# Pull latest images
docker-compose pull
# Restart with new images
docker-compose up -d
🛑 Stopping the Application
# Stop all services
docker-compose down
# Stop and remove volumes (⚠️ This will delete all data)
docker-compose down -v
📊 Monitoring
Container Health
All containers include health checks:
- Backend: API endpoint health check
- Database: PostgreSQL connection check
- Redis: Redis ping check
- Frontend: Nginx status check
Logs
Logs are automatically rotated and can be viewed using Docker commands.
🔐 Security Considerations
- Change default passwords in
.env - Use HTTPS in production
- Secure your server with firewall rules
- Regular backups of database volumes
- Keep Docker images updated
📞 Support
If you encounter issues:
- Check the troubleshooting section above
- Review container logs
- Verify your configuration
- Check GitHub issues for known problems
🎉 Success!
Once deployed, you'll have a fully functional VIP Coordinator system with:
- ✅ Google OAuth authentication
- ✅ Mobile-friendly interface
- ✅ Real-time scheduling
- ✅ User management
- ✅ Automatic backups
- ✅ Health monitoring
The first user to log in will automatically become the system administrator.