5.8 KiB
5.8 KiB
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
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
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
- Keep GitHub Pages active
- Set up Scaleway (either method)
- 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:
- Cost-effective: ~€1/month vs €10/month
- Low maintenance: No server to manage
- Scalable: Can handle traffic spikes
- French hosting: Data sovereignty if needed
- 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:
- Keep GitHub Pages active during testing
- DNS TTL: Set to 300s (5 min) during migration
- Rollback: Change DNS back to GitHub Pages
- Monitoring: Set up uptime monitoring (UptimeRobot, etc.)
Next Steps
- ✅ Review both deployment options
- ⬜ Choose deployment method
- ⬜ Run setup script (
scripts/setup-scaleway.sh) - ⬜ Configure DNS
- ⬜ Add secrets to Gitea
- ⬜ Merge deployment branch
- ⬜ Test deployment
- ⬜ Monitor for issues
- ⬜ Update documentation
Need help deciding? Consider:
- Budget: Object Storage
- Control: Docker Instance
- Simplicity: Object Storage
- Features: Docker Instance