Commit graph

2 commits

Author SHA1 Message Date
dlawler489
1504ae6eea Add GitHub Container Registry support and automated builds
🚀 GitHub Actions CI/CD Pipeline:
- Automatic Docker image builds on every push to main
- Multi-platform support (Intel + Apple Silicon)
- Images published to GitHub Container Registry (ghcr.io)
- Tagged releases with semantic versioning
- Build artifacts for easy deployment

📦 Deployment Options:
- docker-compose.ghcr.yml for pre-built images (fastest)
- Enhanced build-deploy.sh with 'local' and 'ghcr' modes
- Comprehensive GITHUB_CONTAINER_REGISTRY.md guide
- Updated README with quick deployment options

🏗️ Build Improvements:
- Client build included in Docker image for nginx sharing
- Automated GitHub Actions workflow with caching
- Deployment artifacts generated automatically
- Production docker-compose template creation

 Benefits:
- 1-2 minute deployments (vs 5-10 minute local builds)
- Consistent images across all environments
- Automatic security scanning and multi-arch builds
- Easy rollbacks with version tags
- No local build dependencies required

Usage:
- Quick deploy: ./build-deploy.sh ghcr
- Local build: ./build-deploy.sh local
- View images: https://github.com/dlawler489/etsy-finance-tracker/pkgs/container/etsy-finance-tracker
2026-04-21 06:34:59 +10:00
dlawler489
b2da6c69ed Add Nginx reverse proxy for production deployment
Architecture Updates:
- Nginx serves static React files for optimal performance
- Nginx proxies API requests to Node.js backend (port 8080)
- Separation of concerns: static files vs API handling
- Professional production setup with proper caching

Features Added:
- nginx.conf with optimized configuration:
  - Static file serving with long-term caching
  - API reverse proxy with rate limiting
  - Security headers and GZIP compression
  - Health check proxying and SPA routing support
- Updated docker-compose.yml for multi-container setup
- build-deploy.sh script for automated deployment
- Updated environment configuration for container networking

Security & Performance:
- Rate limiting on API and auth endpoints
- Security headers (XSS, CSRF, clickjacking protection)
- GZIP compression for static assets
- Proper cache control headers
- Container-to-container communication

Deployment:
- Single command deployment with ./build-deploy.sh
- Nginx on port 80 (exposed as 3000) serving React app
- API server on internal port 8080 (not exposed)
- Persistent data volume mounting for business files
2026-04-21 06:30:44 +10:00