# Getting Started Deploy your first app with Gordon in under 5 minutes. ## Prerequisites - A Linux VPS with Docker or Podman installed - A domain pointing to your VPS (DNS A record) - Cloudflare account (free tier) for HTTPS termination ## 1. Install Gordon ```bash # Download the latest release (choose your architecture) # For x86_64: wget https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64.tar.gz tar -xzf gordon_linux_amd64.tar.gz # For ARM64 (Raspberry Pi 4, AWS Graviton, etc.): # wget https://github.com/bnema/gordon/releases/latest/download/gordon_linux_arm64.tar.gz # tar -xzf gordon_linux_arm64.tar.gz chmod +x gordon sudo mv gordon /usr/local/bin/ ``` ## 2. Start Gordon ```bash # First run creates the default config gordon start # Press Ctrl+C to stop ``` Config is created at `~/.config/gordon/gordon.toml`. ## 3. Configure Your Registry Domain Edit `~/.config/gordon/gordon.toml`: ```toml [server] port = 8080 # Proxy port (use with Cloudflare) registry_port = 5000 # Registry port registry_domain = "registry.mydomain.com" # Your registry domain [routes] "app.mydomain.com" = "myapp:latest" # Domain → Image mapping ``` ## 4. Set Up DNS In Cloudflare (or your DNS provider): | Type | Name | Content | |------|------|---------| | A | `app` | `YOUR_SERVER_IP` | | A | `registry` | `YOUR_SERVER_IP` | Enable Cloudflare proxy (orange cloud) for HTTPS. ## 5. Start Gordon as a Service ```bash # Create systemd user service mkdir -p ~/.config/systemd/user cat > ~/.config/systemd/user/gordon.service <