mirror of
https://github.com/johndoe6345789/low-code-react-app-b.git
synced 2026-04-25 14:14:57 +00:00
245 lines
6.5 KiB
Markdown
245 lines
6.5 KiB
Markdown
# CapRover/Cloudflare Deployment Checklist
|
|
|
|
Quick reference guide for deploying CodeForge to CapRover with Cloudflare.
|
|
|
|
## Pre-Deployment
|
|
|
|
- [ ] CapRover server is running and accessible
|
|
- [ ] Domains registered and pointing to Cloudflare nameservers
|
|
- [ ] Docker is installed locally (for testing builds)
|
|
- [ ] Git repository is ready for deployment
|
|
|
|
## Frontend Deployment
|
|
|
|
### 1. Configuration
|
|
- [ ] Copy `.env.production.example` to `.env.production`
|
|
- [ ] Update `VITE_BACKEND_URL` with your backend domain
|
|
- [ ] Update `VITE_USE_BACKEND=true` if using backend
|
|
|
|
### 2. CapRover App Setup
|
|
- [ ] Create new app: `codeforge-frontend`
|
|
- [ ] Enable HTTPS in CapRover app settings
|
|
- [ ] Connect custom domain: `frontend.example.com`
|
|
- [ ] Configure environment variables (if any)
|
|
|
|
### 3. Deploy
|
|
- [ ] Push code to Git repository
|
|
- [ ] Deploy via CapRover (Git/Registry/Upload)
|
|
- [ ] Wait for build to complete
|
|
- [ ] Check build logs for errors
|
|
|
|
### 4. Verify
|
|
- [ ] Visit `https://frontend.example.com`
|
|
- [ ] Check browser console for errors
|
|
- [ ] Verify assets load correctly
|
|
- [ ] Test app functionality
|
|
|
|
## Backend Deployment
|
|
|
|
### 1. Configuration
|
|
- [ ] Copy `backend/.env.production.example` to `backend/.env.production`
|
|
- [ ] Update `ALLOWED_ORIGINS` with frontend domains
|
|
- [ ] Set `DEBUG=false` for production
|
|
- [ ] Configure `DATABASE_PATH=/data/codeforge.db`
|
|
|
|
### 2. CapRover App Setup
|
|
- [ ] Create new app: `codeforge-backend`
|
|
- [ ] Enable HTTPS in CapRover app settings
|
|
- [ ] Connect custom domain: `backend.example.com`
|
|
- [ ] Add environment variables:
|
|
- [ ] `ALLOWED_ORIGINS=https://frontend.example.com`
|
|
- [ ] `PORT=5001`
|
|
- [ ] `DATABASE_PATH=/data/codeforge.db`
|
|
- [ ] `DEBUG=false`
|
|
- [ ] Configure persistent volume:
|
|
- [ ] Container path: `/data`
|
|
- [ ] Label: `backend-data`
|
|
|
|
### 3. Deploy
|
|
- [ ] Deploy backend via CapRover
|
|
- [ ] Wait for build to complete
|
|
- [ ] Check build logs for errors
|
|
|
|
### 4. Verify
|
|
- [ ] Visit `https://backend.example.com/health`
|
|
- [ ] Should return: `{"status": "ok", "timestamp": "..."}`
|
|
- [ ] Test API endpoint: `https://backend.example.com/api/storage/keys`
|
|
- [ ] Check response includes CORS headers
|
|
|
|
## Cloudflare Configuration
|
|
|
|
### DNS
|
|
- [ ] Add A record for frontend pointing to CapRover server IP
|
|
- [ ] Add A record for backend pointing to CapRover server IP
|
|
- [ ] Enable proxy (orange cloud) for both records
|
|
|
|
### SSL/TLS
|
|
- [ ] Set encryption mode to "Full (strict)" or "Full"
|
|
- [ ] Enable "Always Use HTTPS"
|
|
- [ ] Enable HSTS (optional but recommended)
|
|
- [ ] Set minimum TLS version to 1.2
|
|
|
|
### Speed & Caching
|
|
- [ ] Enable Auto Minify (JS, CSS, HTML)
|
|
- [ ] Enable Brotli compression
|
|
- [ ] Disable Rocket Loader (can break SPA)
|
|
- [ ] Configure page rules:
|
|
- [ ] Backend API: Cache Level = Bypass
|
|
- [ ] Frontend: Cache Level = Standard
|
|
- [ ] Frontend Assets: Cache Everything, TTL = 1 month
|
|
|
|
### Security
|
|
- [ ] Set security level to "Medium"
|
|
- [ ] Disable "Browser Integrity Check" for backend
|
|
- [ ] Configure firewall rules (if needed)
|
|
- [ ] Set up rate limiting (optional)
|
|
|
|
### Health Checks
|
|
- [ ] Add health check for frontend: `https://frontend.example.com/health`
|
|
- [ ] Add health check for backend: `https://backend.example.com/health`
|
|
|
|
## Testing
|
|
|
|
### CORS Testing
|
|
```bash
|
|
# Test backend CORS
|
|
curl -X OPTIONS https://backend.example.com/api/storage/keys \
|
|
-H "Origin: https://frontend.example.com" \
|
|
-H "Access-Control-Request-Method: GET" \
|
|
-v
|
|
|
|
# Expected: Access-Control-Allow-Origin header in response
|
|
```
|
|
|
|
### SSL Testing
|
|
```bash
|
|
# Test SSL
|
|
curl -I https://frontend.example.com
|
|
curl -I https://backend.example.com
|
|
|
|
# Expected: HTTP/2 200 with security headers
|
|
```
|
|
|
|
### Functionality Testing
|
|
- [ ] Open frontend in browser
|
|
- [ ] Open DevTools → Network tab
|
|
- [ ] Test creating/reading/updating data
|
|
- [ ] Verify API calls to backend succeed
|
|
- [ ] Check for CORS errors in console
|
|
- [ ] Test on multiple browsers (Chrome, Firefox, Safari)
|
|
- [ ] Test on mobile devices
|
|
|
|
### Performance Testing
|
|
- [ ] Run Lighthouse audit on frontend
|
|
- [ ] Check page load times
|
|
- [ ] Verify assets are cached (cf-cache-status: HIT)
|
|
- [ ] Test from multiple geographic locations
|
|
|
|
## Post-Deployment
|
|
|
|
### Monitoring
|
|
- [ ] Set up Cloudflare alerts for downtime
|
|
- [ ] Monitor CapRover logs for errors
|
|
- [ ] Check health endpoints regularly
|
|
- [ ] Review Cloudflare Analytics
|
|
|
|
### Backups
|
|
- [ ] Verify database backups are working
|
|
- [ ] Test database restore procedure
|
|
- [ ] Export project data via API
|
|
- [ ] Document backup schedule
|
|
|
|
### Documentation
|
|
- [ ] Document custom configuration
|
|
- [ ] Update team on deployment URLs
|
|
- [ ] Create runbook for common issues
|
|
- [ ] Document rollback procedure
|
|
|
|
## Rollback Procedure
|
|
|
|
If deployment fails:
|
|
|
|
1. [ ] Check CapRover logs for errors
|
|
2. [ ] Review Cloudflare Firewall events
|
|
3. [ ] Disable Cloudflare proxy temporarily (gray cloud)
|
|
4. [ ] Test direct connection to CapRover server
|
|
5. [ ] Revert to previous Docker image
|
|
6. [ ] Re-enable Cloudflare proxy after fix
|
|
|
|
## Common Issues
|
|
|
|
### Frontend loads but API calls fail
|
|
- Check CORS configuration in backend
|
|
- Verify `ALLOWED_ORIGINS` environment variable
|
|
- Check Cloudflare firewall isn't blocking requests
|
|
- Verify backend domain is accessible
|
|
|
|
### 502/520 Errors
|
|
- Check CapRover app is running
|
|
- Verify SSL certificates are valid
|
|
- Check Cloudflare SSL mode (should be Full or Full Strict)
|
|
- Verify origin server accepts connections on port 443
|
|
|
|
### Assets not loading
|
|
- Check nginx configuration is correct
|
|
- Verify Vite build completed successfully
|
|
- Check Cloudflare caching rules
|
|
- Purge Cloudflare cache and retry
|
|
|
|
### Database not persisting
|
|
- Verify persistent volume is mounted
|
|
- Check `DATABASE_PATH` environment variable
|
|
- Verify `/data` directory has write permissions
|
|
- Check CapRover volume configuration
|
|
|
|
## Quick Reference
|
|
|
|
### Frontend URL
|
|
```
|
|
https://frontend.example.com
|
|
```
|
|
|
|
### Backend URL
|
|
```
|
|
https://backend.example.com
|
|
```
|
|
|
|
### Health Endpoints
|
|
```
|
|
Frontend: https://frontend.example.com/health
|
|
Backend: https://backend.example.com/health
|
|
```
|
|
|
|
### API Base URL
|
|
```
|
|
https://backend.example.com/api
|
|
```
|
|
|
|
### CapRover Apps
|
|
```
|
|
Frontend: codeforge-frontend
|
|
Backend: codeforge-backend
|
|
```
|
|
|
|
## Support Resources
|
|
|
|
- **CapRover Docs**: https://caprover.com/docs/
|
|
- **Cloudflare Docs**: https://developers.cloudflare.com/
|
|
- **Project Docs**: `/docs/CAPROVER_CLOUDFLARE_DEPLOYMENT.md`
|
|
- **Cloudflare Config**: `/docs/CLOUDFLARE_CONFIGURATION.md`
|
|
|
|
## Emergency Contacts
|
|
|
|
Document your team's contact information:
|
|
|
|
- DevOps Lead: _____________
|
|
- Backend Developer: _____________
|
|
- Frontend Developer: _____________
|
|
- CapRover Admin: _____________
|
|
|
|
---
|
|
|
|
**Last Updated**: [Date]
|
|
**Deployed By**: [Name]
|
|
**Deployment Date**: [Date]
|