Alternative installation method

Use this method when auto-installation is not available for your provider. SSH in as root and run one command — same Track Arrow build: Docker, MySQL, Redis, ClickHouse, API, and admin panel.

Connect to the server

Active subscription

Install and image updates require an active Track Arrow subscription. Copy the license key from trackarrow.io (Licenses). Format: XXXX-XXXX-XXXX-XXXX. On the same page click Generate License Token and copy LICENSE_TOKEN (starts with ta_). The installer checks the key before it pulls images. A canceled, expired, or unpaid key stops install.

TIP

Buy or renew at trackarrow.io, then paste LICENSE_KEY and Generate License Token as LICENSE_TOKEN.

Install with one command

On a clean Ubuntu 22.04/24.04 server with at least 4 GB RAM, as root. The script installs Docker, downloads the runtime bundle, pulls images, and writes /root/trackarrow-credentials.txt. First run takes about 5–15 minutes. Log: /var/log/trackarrow-install.log.

export LICENSE_KEY="XXXX-XXXX-XXXX-XXXX"
export LICENSE_TOKEN="ta_xxxxxxxxxxxxxxxxx"
# Optional: beta channel instead of stable
# export LICENSE_CHANNEL="beta"
# Optional: HTTPS (A record must point to this server)
# export DOMAIN="tracker.example.com"
# export LETSENCRYPT_EMAIL="admin@example.com"

curl -fsSL https://docs.trackarrow.io/releases/install.sh | bash

When it finishes, open http://YOUR_SERVER_IP/ (or https://your-domain/ if you set DOMAIN). Then create an administrator. Read the password with cat /root/trackarrow-credentials.txt.

WARNING

LICENSE_CHANNEL=beta installs the current Beta from https://docs.trackarrow.io/updates/beta.json. Leave LICENSE_CHANNEL unset for Stable when a stable tag exists. Maintenance → Update reads that feed after each GitHub Release.

What the script does

If you prefer to run the steps yourself (same result as the one-liner):

# Prefer the one-liner above. Same idea, step by step:
# 1) Install Docker
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker

# 2) Download the installer and set your license key
export LICENSE_KEY="XXXX-XXXX-XXXX-XXXX"
export LICENSE_TOKEN="ta_xxxxxxxxxxxxxxxxx"
curl -fsSL https://docs.trackarrow.io/releases/install.sh | bash
TIP

Installation log: less /var/log/trackarrow-install.log. Last lines: tail -n 200 /var/log/trackarrow-install.log.

Firewall

On any VPS the default is the same: inbound 22, 80, 443 only; outbound leave open. Redis, MySQL, ClickHouse, and Adminer stay on localhost — Docker Compose already publishes those ports on 127.0.0.1 only.

WARNING

Do not rely on UFW alone. Docker injects iptables rules and can expose a published port even when UFW looks closed. Prefer the provider cloud firewall (DigitalOcean, Hetzner, Vultr, …). If the provider has none, still keep compose ports bound to 127.0.0.1 and do not add -p 0.0.0.0:6379:6379.

From your computer, check that Redis on port 6379 is closed. Connection refused or timed out is correct.

# Windows (PowerShell)
Test-NetConnection YOUR_SERVER_IP -Port 6379
# TcpTestSucceeded : False = good

# macOS (Terminal)
nc -vz -w 3 YOUR_SERVER_IP 6379

# Linux
nc -vz -w 3 YOUR_SERVER_IP 6379
# if nc is missing: sudo apt install netcat-openbsd   (Debian/Ubuntu)