# 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.