Skip to content

Setup script

The automatic setup script is the recommended path when the server has internet access.

What it does

  1. Checks Docker and Docker Compose, installs them if missing
  2. Downloads docker-compose.prod.yml and .env.example from the licence portal
  3. Asks for registry credentials (Community: leave empty)
  4. Asks for base URL (domain with https:// or IP)
  5. Asks optionally for a license key
  6. Generates all secrets (DB password, JWT key, field encryption key, Redis password)
  7. Writes .env
  8. Pulls all images
  9. Starts the stack

Run it

As root or with sudo:

curl -sSL https://license.vesana.org/api/v1/install -o /tmp/setup.sh
sudo bash /tmp/setup.sh

If curl is missing:

sudo apt update && sudo apt install -y curl

What you'll see

[1/7] Checking prerequisites ...
      ✓ Docker 27.3.1
      ✓ Docker Compose 2.29.2
[2/7] Creating directories ...
      ✓ /opt/vesana
[3/7] Loading compose file ...
[4/7] Inputs:
      Base URL: https://monitoring.example.com
      License key (Enter = Community): _
[5/7] Generating secrets ...
      FIELD_ENCRYPTION_KEY: dQw4w9WgXcQ-tH...
      ⚠ Save this externally NOW (password manager, off-site backup)!
[6/7] Pulling images ...
[7/7] Starting containers ...
      ✓ vesana-api ... healthy
      ✓ vesana-receiver ... healthy
      ✓ vesana-worker-0 ... running
      ✓ vesana-frontend ... healthy
      → Open browser: https://monitoring.example.com/setup

Save the FIELD_ENCRYPTION_KEY

Lose the key, lose the data

The FIELD_ENCRYPTION_KEY protects encrypted fields (like SNMP communities). Lose the key and that data is permanently unrecoverable.

Right after install:

  1. Copy the key from the setup output
  2. Store in a password manager (Bitwarden, 1Password, KeePass)
  3. Print or back it up offline as well
  4. Don't put it in the same volume as the database backup

After setup completes: continue with the setup wizard in your browser.

Re-run

The setup script isn't designed for re-runs. To reconfigure:

  • For .env changes: edit the file directly, then docker compose -f /opt/vesana/docker-compose.prod.yml up -d
  • For a fresh install: docker compose -f /opt/vesana/docker-compose.prod.yml down -v (deletes all data!) then run setup again

Next