Files
Notebook/docs/DEPLOYMENT_COMPARISON.md

5.8 KiB
Raw Blame History

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

  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

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

Hugo

Gitea


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