Backup: 2025-06-07 19:48 - Script test
[Restore from backup: vip-coordinator-backup-2025-06-07-19-48-script-test]
This commit is contained in:
179
SIMPLE_DEPLOY.md
Normal file
179
SIMPLE_DEPLOY.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# VIP Coordinator - Simple Digital Ocean Deployment
|
||||
|
||||
This is a streamlined deployment script designed specifically for clean Digital Ocean Docker droplets.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
1. **Upload the script** to your Digital Ocean droplet:
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/your-repo/vip-coordinator/main/simple-deploy.sh
|
||||
chmod +x simple-deploy.sh
|
||||
```
|
||||
|
||||
2. **Run the deployment**:
|
||||
```bash
|
||||
./simple-deploy.sh
|
||||
```
|
||||
|
||||
3. **Follow the prompts** to configure:
|
||||
- Your domain name (e.g., `mysite.com`)
|
||||
- API subdomain (e.g., `api.mysite.com`)
|
||||
- Email for SSL certificates
|
||||
- Google OAuth credentials
|
||||
- SSL certificate setup (optional)
|
||||
|
||||
## 📋 What It Does
|
||||
|
||||
### ✅ **Automatic Setup**
|
||||
- Creates Docker Compose configuration using v2 syntax
|
||||
- Generates secure random passwords
|
||||
- Sets up environment variables
|
||||
- Creates management scripts
|
||||
|
||||
### ✅ **SSL Certificate Automation** (Optional)
|
||||
- Uses official certbot Docker container
|
||||
- Webroot validation method
|
||||
- Generates nginx SSL configuration
|
||||
- Sets up automatic renewal script
|
||||
|
||||
### ✅ **Generated Files**
|
||||
- `.env` - Environment configuration
|
||||
- `docker-compose.yml` - Docker services
|
||||
- `start.sh` - Start the application
|
||||
- `stop.sh` - Stop the application
|
||||
- `status.sh` - Check application status
|
||||
- `nginx-ssl.conf` - SSL nginx configuration (if SSL enabled)
|
||||
- `renew-ssl.sh` - Certificate renewal script (if SSL enabled)
|
||||
|
||||
## 🔧 Requirements
|
||||
|
||||
### **Digital Ocean Droplet**
|
||||
- Ubuntu 20.04+ or similar
|
||||
- Docker and Docker Compose v2 installed
|
||||
- Ports 80, 443, and 3000 open
|
||||
|
||||
### **Domain Setup**
|
||||
- Domain pointing to your droplet IP
|
||||
- API subdomain pointing to your droplet IP
|
||||
- DNS propagated (check with `nslookup yourdomain.com`)
|
||||
|
||||
### **Google OAuth**
|
||||
- Google Cloud Console project
|
||||
- OAuth 2.0 Client ID and Secret
|
||||
- Redirect URI configured
|
||||
|
||||
## 🌐 Access URLs
|
||||
|
||||
After deployment:
|
||||
- **Frontend**: `https://yourdomain.com` (or `http://` if no SSL)
|
||||
- **Backend API**: `https://api.yourdomain.com` (or `http://` if no SSL)
|
||||
|
||||
## 🔒 SSL Certificate Setup
|
||||
|
||||
If you choose SSL during setup:
|
||||
|
||||
1. **Automatic Generation**: Uses Let's Encrypt with certbot Docker
|
||||
2. **Nginx Configuration**: Generated automatically
|
||||
3. **Manual Steps**:
|
||||
```bash
|
||||
# Install nginx
|
||||
apt update && apt install nginx
|
||||
|
||||
# Copy SSL configuration
|
||||
cp nginx-ssl.conf /etc/nginx/sites-available/vip-coordinator
|
||||
ln -s /etc/nginx/sites-available/vip-coordinator /etc/nginx/sites-enabled/
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
|
||||
# Test and restart
|
||||
nginx -t
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
4. **Auto-Renewal**: Set up cron job
|
||||
```bash
|
||||
echo "0 3 1 * * $(pwd)/renew-ssl.sh" | crontab -
|
||||
```
|
||||
|
||||
## 🛠️ Management Commands
|
||||
|
||||
```bash
|
||||
# Start the application
|
||||
./start.sh
|
||||
|
||||
# Stop the application
|
||||
./stop.sh
|
||||
|
||||
# Check status
|
||||
./status.sh
|
||||
|
||||
# View logs
|
||||
docker compose logs -f
|
||||
|
||||
# Update to latest version
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## 🔑 Important Credentials
|
||||
|
||||
The script generates and displays:
|
||||
- **Admin Password**: For emergency access
|
||||
- **Database Password**: For PostgreSQL
|
||||
- **Keep these secure!**
|
||||
|
||||
## 🎯 First Time Login
|
||||
|
||||
1. Open your frontend URL
|
||||
2. Click "Continue with Google"
|
||||
3. The first user becomes the administrator
|
||||
4. Use the admin password if needed
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### **Port Conflicts**
|
||||
- Uses standard ports (80, 443, 3000)
|
||||
- Ensure no other services are running on these ports
|
||||
|
||||
### **SSL Issues**
|
||||
- Verify domain DNS is pointing to your server
|
||||
- Check firewall allows ports 80 and 443
|
||||
- Ensure no other web server is running
|
||||
|
||||
### **Docker Issues**
|
||||
```bash
|
||||
# Check Docker version (should be v2)
|
||||
docker compose version
|
||||
|
||||
# Check container status
|
||||
docker compose ps
|
||||
|
||||
# View logs
|
||||
docker compose logs backend
|
||||
docker compose logs frontend
|
||||
```
|
||||
|
||||
### **OAuth Issues**
|
||||
- Verify redirect URI in Google Console matches exactly
|
||||
- Check Client ID and Secret are correct
|
||||
- Ensure domain is accessible from internet
|
||||
|
||||
## 📞 Support
|
||||
|
||||
If you encounter issues:
|
||||
|
||||
1. Check `./status.sh` for service health
|
||||
2. Review logs with `docker compose logs`
|
||||
3. Verify domain DNS resolution
|
||||
4. Ensure all ports are accessible
|
||||
|
||||
## 🎉 Success!
|
||||
|
||||
Your VIP Coordinator should now be running with:
|
||||
- ✅ Google OAuth authentication
|
||||
- ✅ Mobile-friendly interface
|
||||
- ✅ Real-time scheduling
|
||||
- ✅ User management
|
||||
- ✅ SSL encryption (if enabled)
|
||||
- ✅ Automatic updates from Docker Hub
|
||||
|
||||
Perfect for Digital Ocean droplet deployments!
|
||||
Reference in New Issue
Block a user