diff --git a/docs/DEPLOYMENT_COMPARISON.md b/docs/DEPLOYMENT_COMPARISON.md deleted file mode 100644 index 75b39b6..0000000 --- a/docs/DEPLOYMENT_COMPARISON.md +++ /dev/null @@ -1,273 +0,0 @@ -# Deployment Options Comparison - -## Quick Decision Guide - -Choose based on your priorities: - -| Factor | Object Storage | Docker Instance | GitHub Pages (current) | -|--------|---------------|-----------------|------------------------| -| **Cost** | ~€1-2/month | ~€10/month | Free | -| **Setup Complexity** | Low | Medium | Very Low | -| **Control** | Limited | Full | Limited | -| **SSL/TLS** | Via CDN | Let's Encrypt | Automatic | -| **Custom Domain** | ✅ | ✅ | ✅ | -| **Scalability** | Excellent | Limited | Excellent | -| **Maintenance** | None | Regular updates | None | - -## Deployment Methods Overview - -### 1. Object Storage (S3-compatible) - -**Best for**: Low-traffic blogs, simple hosting needs - -**Pros**: -- Very low cost -- No server maintenance -- Highly scalable -- Built-in redundancy -- Pay only for what you use - -**Cons**: -- Limited server-side features -- HTTPS requires CDN or custom setup -- Less control over caching -- No server-side redirects - -**Setup time**: 30 minutes - -**Files needed**: -- `.gitea/workflows/deploy.yml` -- Scaleway API credentials - -**Documentation**: [SCALEWAY_DEPLOYMENT.md](./SCALEWAY_DEPLOYMENT.md) - ---- - -### 2. Docker on Scaleway Instance - -**Best for**: Sites needing more control, custom configurations - -**Pros**: -- Full server control -- Easy SSL with Let's Encrypt -- Custom Nginx configuration -- Server-side redirects/rewrites -- Better caching control -- No per-request costs - -**Cons**: -- Higher fixed cost -- Requires server maintenance -- Need to manage updates -- Single point of failure (without HA) - -**Setup time**: 1-2 hours - -**Files needed**: -- `.gitea/workflows/deploy-docker.yml` -- SSH key pair -- Docker Compose configuration - -**Documentation**: [SCALEWAY_DEPLOYMENT_DOCKER.md](./SCALEWAY_DEPLOYMENT_DOCKER.md) - ---- - -## Cost Breakdown - -### Object Storage -``` -Storage: 1 GB × €0.01 = €0.01/month -Traffic: 50 GB/month (first 75 GB free) -Total: €0.01-0.50/month -``` - -### Object Storage + CDN -``` -CDN base: €1/month -Storage: €0.01/month -Traffic: Reduced origin traffic -SSL: Included -Total: €1-3/month -``` - -### Docker Instance (DEV1-S) -``` -Instance: €7-10/month -Traffic: 100 GB included -SSL: Free (Let's Encrypt) -Total: €10/month (predictable) -``` - -### GitHub Pages (Current) -``` -Free for public repositories -Custom domain: ✅ -SSL: Automatic -Limits: 100 GB bandwidth/month, 1 GB storage -``` - ---- - -## Traffic Threshold Analysis - -When to choose each option: - -### Stay with GitHub Pages if: -- Traffic < 100 GB/month -- No special requirements -- Happy with current setup - -### Choose Object Storage if: -- Want French hosting -- Traffic 100-500 GB/month -- Need cost optimization -- Minimal configuration needs - -### Choose Docker Instance if: -- Need custom server config -- Traffic > 500 GB/month -- Want full control -- Need advanced features (auth, API endpoints, etc.) - ---- - -## Migration Path - -### Phase 1: Parallel Deployment -1. Keep GitHub Pages active -2. Set up Scaleway (either method) -3. Test thoroughly - -### Phase 2: DNS Switch -``` -notebook.arnodo.fr → Scaleway -netlify/pages subdomain → keep as backup -``` - -### Phase 3: Complete Migration -- Update all links -- Verify analytics -- Monitor for 30 days -- Decommission old setup - ---- - -## Performance Comparison - -| Metric | GitHub Pages | Object Storage | Docker Instance | -|--------|-------------|----------------|-----------------| -| **TTFB** | ~50-100ms | ~30-50ms | ~20-40ms | -| **Global CDN** | ✅ | Optional | No (single region) | -| **HTTP/2** | ✅ | ✅ | ✅ | -| **Brotli** | ✅ | ❌ | ✅ (configurable) | -| **Caching** | Good | Basic | Full control | - ---- - -## Recommended Approach - -### For Your Use Case (Network Engineer Blog): - -I recommend **Object Storage** initially because: - -1. **Cost-effective**: ~€1/month vs €10/month -2. **Low maintenance**: No server to manage -3. **Scalable**: Can handle traffic spikes -4. **French hosting**: Data sovereignty if needed -5. **Easy rollback**: Keep GitHub Pages as backup - -### Upgrade path: -``` -Object Storage → Add CDN if needed → Docker instance only if traffic justifies it -``` - ---- - -## Implementation Checklist - -### Object Storage Setup -- [ ] Create Scaleway account -- [ ] Create Object Storage bucket -- [ ] Configure bucket for static hosting -- [ ] Generate API keys -- [ ] Add secrets to Gitea -- [ ] Update DNS -- [ ] Test deployment -- [ ] Monitor costs - -### Docker Instance Setup -- [ ] Create Scaleway instance -- [ ] Install Docker and dependencies -- [ ] Configure Nginx -- [ ] Set up SSL certificate -- [ ] Create deployment user -- [ ] Configure SSH keys -- [ ] Update Gitea workflow -- [ ] Set up monitoring -- [ ] Configure backups - ---- - -## Maintenance Requirements - -### Object Storage -- **Daily**: None -- **Weekly**: None -- **Monthly**: Review costs -- **Yearly**: Review retention policy - -### Docker Instance -- **Daily**: Check monitoring -- **Weekly**: Review logs -- **Monthly**: Apply security updates -- **Quarterly**: Review backups, update SSL - ---- - -## Support & Resources - -### Scaleway -- Docs: https://www.scaleway.com/en/docs/ -- Support: Via console ticket system -- Community: Discord, Forum - -### Hugo -- Docs: https://gohugo.io/documentation/ -- Community: Forum, Discord - -### Gitea -- Docs: https://docs.gitea.com/ -- Actions: https://docs.gitea.com/usage/actions - ---- - -## Emergency Rollback Plan - -If Scaleway deployment fails: - -1. **Keep GitHub Pages active** during testing -2. **DNS TTL**: Set to 300s (5 min) during migration -3. **Rollback**: Change DNS back to GitHub Pages -4. **Monitoring**: Set up uptime monitoring (UptimeRobot, etc.) - ---- - -## Next Steps - -1. ✅ Review both deployment options -2. ⬜ Choose deployment method -3. ⬜ Run setup script (`scripts/setup-scaleway.sh`) -4. ⬜ Configure DNS -5. ⬜ Add secrets to Gitea -6. ⬜ Merge deployment branch -7. ⬜ Test deployment -8. ⬜ Monitor for issues -9. ⬜ Update documentation - ---- - -Need help deciding? Consider: -- **Budget**: Object Storage -- **Control**: Docker Instance -- **Simplicity**: Object Storage -- **Features**: Docker Instance