This commit is contained in:
2025-10-25 20:11:21 +02:00
commit fd37421245
700 changed files with 211892 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
# Quick Comparison Reference
Quick reference for alternatives we researched. See [ALTERNATIVES_CONSIDERED.md](./ALTERNATIVES_CONSIDERED.md) for detailed analysis.
---
## Git Server: Gitea vs Forgejo
| Factor | Gitea ✅ | Forgejo |
|--------|---------|---------|
| **CapRover Support** | ✅ One-click app | ❌ Manual setup required |
| **Setup Time** | ⚡ 5 minutes | ⏱️ 15-30 minutes |
| **Security Practices** | ⚠️ Adequate (corporate) | ✅ Excellent (community) |
| **Development Activity** | 153 contributors, 1.2K commits | 232 contributors, 3K commits |
| **Governance** | Corporate (Gitea Limited) | Non-profit (Codeberg e.V.) |
| **Community Size** | Larger | Smaller |
| **Version** | 1.21.1 | 10.0 (Jan 2025) |
| **For Personal Use** | ✅ Perfect | ⚠️ Overkill |
**Winner for our use case:** Gitea (easier setup via CapRover)
**When to reconsider Forgejo:**
- Hosting sensitive code
- Security transparency matters
- Don't mind manual Docker setup
---
## Container Management Platform
| Feature | CapRover ✅ | Portainer | Dockge | Coolify |
|---------|------------|-----------|---------|---------|
| **One-click apps** | ✅ 200+ | ⚠️ Limited | ❌ None | ✅ Some |
| **Built-in reverse proxy** | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| **Automatic SSL** | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| **Git deployments** | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| **Granular control** | ⚠️ Limited | ✅ Full | ✅ Good | ⚠️ Limited |
| **Learning curve** | 🟢 Easy | 🟡 Medium | 🟢 Easy | 🟡 Medium |
| **Resource usage** | 🟢 ~300MB | 🟡 ~100MB | 🟢 ~100MB | 🔴 ~500MB+ |
| **Maturity** | 🟢 Stable | 🟢 Very stable | 🟡 Newer | 🟡 Active dev |
| **TrueNAS-like experience** | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
**Winner:** CapRover (best for "app store" experience)
---
## Container Runtime: Docker vs Podman
| Factor | Docker ✅ | Podman |
|--------|----------|--------|
| **CapRover Compatible** | ✅ Yes (required) | ❌ No (missing Swarm) |
| **Security Model** | Root daemon (can use rootless mode) | Rootless by default |
| **GUI Support** | ✅ Excellent (CapRover, Portainer, etc.) | ⚠️ Limited |
| **Ecosystem** | 🟢 Massive | 🟡 Growing |
| **For This Project** | ✅ Required | ❌ Won't work |
**Winner:** Docker (CapRover requires Docker Swarm)
**Note:** Podman explicitly won't implement Swarm. CapRover = Docker only.
---
## Reverse Proxy
| Feature | CapRover Built-in ✅ | Traefik | Caddy | Nginx Proxy Manager |
|---------|---------------------|---------|-------|-------------------|
| **Integration** | ✅ Built-in | ❌ Separate | ❌ Separate | ❌ Separate |
| **Auto SSL** | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes (via GUI) |
| **Auto Config** | ✅ Per app deploy | ⚠️ Via labels | ⚠️ Manual | ⚠️ GUI but manual |
| **Learning Curve** | 🟢 None (automatic) | 🔴 Steep | 🟡 Medium | 🟢 Easy (GUI) |
| **Setup Time** | ⚡ 0 min (included) | ⏱️ 30+ min | ⏱️ 15+ min | ⏱️ 20+ min |
**Winner:** CapRover's built-in proxy (zero setup, automatic)
---
## Domain Strategy
| Option | Cloudflare ✅ | DuckDNS | Tailscale |
|--------|--------------|---------|-----------|
| **Cost** | Free (user already has) | Free | Free (personal) |
| **Domain Type** | Custom domain | yourname.duckdns.org | Private network IPs |
| **Professional** | ✅ Yes | ⚠️ Subdomain only | ❌ Not public |
| **Public Access** | ✅ Yes | ✅ Yes | ❌ VPN only |
| **Setup** | Simple DNS records | Very simple | Install on all devices |
**Winner:** Cloudflare (user already has domain)
---
## Architecture Patterns
| Pattern | Single VM ✅ | Multi-VM | Kubernetes (K3s) |
|---------|-------------|----------|-----------------|
| **Complexity** | 🟢 Simple | 🟡 Medium | 🔴 High |
| **Setup Time** | ⚡ 3-4 hours | ⏱️ 6-8 hours | ⏱️ Days |
| **Maintenance** | 🟢 Easy | 🟡 Medium | 🔴 Complex |
| **Resource Overhead** | 🟢 Low (~1GB) | 🟡 Medium | 🔴 High (>2GB) |
| **For Personal Use** | ✅ Perfect | ⚠️ Overkill | ❌ Way overkill |
**Winner:** Single ARM VM (simple, sufficient, efficient)
---
## Final Stack Summary
Our chosen stack:
```
Infrastructure: Oracle Cloud Free Tier (ARM VM: 4 cores, 24GB RAM)
OS: Ubuntu 22.04 LTS ARM64
Runtime: Docker Engine
Platform: CapRover (PaaS with one-click apps)
Git Server: Gitea (one-click deploy)
Code Editor: code-server (one-click deploy)
AI Assistant: Claude Code (VS Code extension)
Reverse Proxy: CapRover's built-in Nginx
SSL: Let's Encrypt (automatic via CapRover)
DNS: Cloudflare (existing domain)
```
**Total setup time:** ~3-4 hours
**Monthly cost:** $0
**Resource usage:** ~1GB RAM, ~10GB storage (23GB RAM and 190GB storage remaining)
---
## Why This Stack Wins
1. **Fastest time to value:** One-click deployments vs manual Docker setup
2. **Lowest cognitive load:** CapRover handles proxy, SSL, routing automatically
3. **Best UX:** TrueNAS-like app store experience (what user wanted)
4. **iPad optimized:** code-server has proven PWA support
5. **Zero cost:** Stays within Oracle Free Tier
6. **Adequate security:** Good enough for personal knowledge repository
7. **Easy maintenance:** CapRover handles updates, SSL renewals
8. **Room to grow:** 23GB RAM for additional apps via one-click marketplace
**Result:** iPad development environment with Claude Code in ~3-4 hours instead of days/weeks with alternatives.
---
See [ALTERNATIVES_CONSIDERED.md](./ALTERNATIVES_CONSIDERED.md) for detailed analysis of each alternative.