Overview

Date: 2026-05-11

Time: 15:11

Overview

This page describes a deployment plan for ftl2-stargate, a web application, on a Linode VPS. The architecture uses Cloudflare for DNS (non-proxied), Caddy as a reverse proxy with automatic Let's Encrypt TLS, and systemd for service management. The deployment is incremental: provision infrastructure, configure DNS, set up the reverse proxy, install applications, and verify.

Key Concepts

Commands and Syntax

Caddyfile (/etc/caddy/Caddyfile):


stargate.catbeez18.com {
    reverse_proxy localhost:8000
}

Application installation:


pip install uv
pip install "ftl2-stargate @ git+https://github.com/benthomasson/ftl2-stargate"
pip install "ftl2-htop @ git+https://github.com/benthomasson/ftl2-htop"
pip install textual-serve

textual-serve systemd command:


textual serve -c "ftl2-htop -i inventory.yml" --port 8002

Linode provisioning parameters: image private/37121878, type g6-standard-1, region us-east.

Cloudflare DNS: A record, DNS-only (not proxied), using CLOUDFLAREAPITOKEN env var.

Firewall: Ports 80 (ACME challenge) and 443 (HTTPS) must be opened.

SSH hardening: Disable password auth, IPv4 only, admin user with SSH key.

Relationships

Exam-Relevant Points