DigitalOcean is the fastest way to get a production Track Arrow server. The official startup script installs Docker, MySQL, Redis, ClickHouse, the API, and the admin panel on first boot.
Do not use 1 GB or 2 GB Droplets. ClickHouse and MySQL will run out of memory.
GITHUB_USERNAME, GITHUB_TOKEN, and optionally DOMAIN (A record → Droplet IP) plus LETSENCRYPT_EMAIL for automatic HTTPS.If you set DOMAIN, point the A record to the Droplet IP before or immediately after create. Caddy will request a free Let’s Encrypt certificate.
SSH into the Droplet and read the credentials file:
cat /root/trackarrow-credentials.txt
Open the admin URL from that file (or http://YOUR_DROPLET_IP/ if no domain). Then continue with Step 2. Create an administrator.
Install log: /var/log/trackarrow-install.log.
Create a firewall right after the Droplet is up. This is required, not optional. Docker can bypass UFW on the Droplet, so a DigitalOcean Cloud Firewall is the reliable way to hide Redis and the other databases.
| Type | Protocol | Port | Sources |
|---|---|---|---|
| SSH | TCP | 22 | All IPv4 (add All IPv6 if you SSH over IPv6) |
| HTTP | TCP | 80 | All IPv4, All IPv6 |
| HTTPS | TCP | 443 | All IPv4, All IPv6 |
| Type | Protocol | Port | Destinations |
|---|---|---|---|
| ICMP | ICMP | — | All IPv4, All IPv6 |
| All TCP | TCP | All ports | All IPv4, All IPv6 |
| All UDP | UDP | All ports | All IPv4, All IPv6 |
Do not restrict outbound. If you remove “All TCP / All UDP”, updates, certificates, and postbacks will fail. The Redis warning from DigitalOcean is about inbound port 6379, not outbound.
From your computer (macOS has no telnet by default) check that Redis is closed: nc -vz -w 3 YOUR_DROPLET_IP 6379. You want connection refused or timed out.