Complete file upload system with infrastructure separation architecture.
# 1. Start the system
./scripts/start.sh
# 2. Access the applications
# Public Upload: http://upload.localhost
# Manager Dashboard: http://manager.localhost (manager@company.com / manager123)
# Admin Panel: http://admin.localhost (admin@company.com / admin123)
# 1. Deploy to production
./scripts/deploy-vps.sh
# 2. Follow prompts to configure your domain
# Local Development
FRONTEND_DOMAIN=upload.localhost
API_DOMAIN=api.localhost
MANAGER_DOMAIN=manager.localhost
ADMIN_DOMAIN=admin.localhost
# Production
FRONTEND_DOMAIN=upload.yourdomain.com
API_DOMAIN=api.yourdomain.com
MANAGER_DOMAIN=manager.yourdomain.com
ADMIN_DOMAIN=admin.yourdomain.com
ultimate-upload-system/
├── docker-compose.yml # Infrastructure setup
├── Caddyfile # Reverse proxy configuration
├── .env # Environment variables
├── services/ # All-in-one backend
│ ├── app.js # Main application
│ ├── package.json # Dependencies
│ └── Dockerfile # Container config
├── frontend/ # Unified React frontend
│ ├── src/App.js # Main application with routing
│ ├── src/App.css # Styles
│ ├── package.json # Dependencies
│ └── Dockerfile # Container config
└── scripts/ # Deployment scripts
├── start.sh # Quick start
├── deploy-vps.sh # VPS deployment
└── stop.sh # Stop services
# View logs
docker-compose logs -f
# Restart specific service
docker-compose restart backend
# Access database
docker-compose exec postgres psql -U postgres -d uploaddb
# Access Redis
docker-compose exec redis redis-cli
./scripts/deploy-vps.shdocker-compose logs
docker-compose restart
Add to /etc/hosts:
127.0.0.1 upload.localhost api.localhost manager.localhost admin.localhost
docker-compose down -v
./scripts/start.sh
MIT License