Files
2025-10-25 20:11:21 +02:00

5.5 KiB

Quick Comparison Reference

Quick reference for alternatives we researched. See 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 for detailed analysis of each alternative.