Remove docs
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user