Skip to content

Downloads

This page provides operator downloads for Vexillum releases, including prebuilt binaries and example configuration files.

Use these files when setting up a new Vexillum reflector or updating an existing deployment.

During the development cycle, only 64-bit Linux amd64 binaries are provided.
Section titled “During the development cycle, only 64-bit Linux amd64 binaries are provided.”
File Distribution SHA256 Checksum
vexillum-linux-amd64 Linux amd64 4538304f5cb11b8d3699f0f650dcc29057b0a109097dc2ccc140c9837048d3ca
vexillum.toml Example All

The Vexillum binary contains the reflector runtime.

After downloading, make the binary executable:

chmod +x vexillum

Check that it runs:

./vexillum -h

Start Vexillum:

./vexillum

Optionally, start Vexillum with a specific configuration file:

./vexillum -config vexillum.local.toml

The example vexillum.toml.example file provides a starting point for configuring a Vexillum deployment.

It includes settings for:

  • Runtime name
  • Logging
  • Database storage
  • Admin web listener
  • Public API listener (including CORS and rate limiting)
  • Metrics listener

Download the example configuration and edit it before starting Vexillum:

cp vexillum.toml.example vexillum.local.toml
nano vexillum.local.toml

Do not blindly run the example configuration on a public server without reviewing listener addresses, exposed ports, and bootstrap credentials. That is not deployment, that is feeding the internet.

A simple Linux installation can use /opt/vexillum:

sudo mkdir -p /opt/vexillum
sudo cp vexillum /opt/vexillum/vexillum
sudo cp vexillum.toml.example /opt/vexillum/vexillum.toml
sudo chmod +x /opt/vexillum/vexillum

Create a dedicated service user:

sudo useradd --system --home /opt/vexillum --shell /usr/sbin/nologin vexillum
sudo chown -R vexillum:vexillum /opt/vexillum

Before the first start, set a bootstrap admin password:

export VEX_ADMIN_BOOTSTRAP_PASSWORD='replace-this-with-a-long-random-password'

Then start Vexillum:

/opt/vexillum/vexillum -config /opt/vexillum/vexillum.toml

The admin interface is usually available at:

http://127.0.0.1:8080/

The metrics listener is usually available at:

http://127.0.0.1:9090/

A Vexillum installation uses these as the defaults for listeners:

Service Default listener
Admin web 127.0.0.1:8080
Public API 127.0.0.1:8081
Metrics 127.0.0.1:9090
D-Star DExtra 0.0.0.0:30001
DMR 0.0.0.0:62031
M17 0.0.0.0:17000
NXDN 0.0.0.0:41400
P25 0.0.0.0:41000
YSF 0.0.0.0:42000
VAFM UDP 0.0.0.0:43000
VAFM TCP 0.0.0.0:43000
VAFM TLS 0.0.0.0:43443
VAFM DTLS 0.0.0.0:43443

Only expose the protocol ports required for the modes you actually run.

Keep the admin and metrics listeners private unless you have intentionally placed them behind a reverse proxy, VPN, firewall rule, or other access control.

After starting Vexillum, confirm the service is listening:

ss -ltnup | grep vexillum

Check the admin health endpoint:

curl -v http://127.0.0.1:8080/healthz

Check the metrics listener:

curl -v http://127.0.0.1:9090/metrics

Review logs if running under systemd:

journalctl -u vexillum -f

A basic systemd service can look like this:

[Unit]
Description=Vexillum amateur radio reflector runtime
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=vexillum
Group=vexillum
WorkingDirectory=/opt/vexillum
Environment=VEX_ADMIN_BOOTSTRAP_PASSWORD=replace-this-before-first-start
ExecStart=/opt/vexillum/vexillum -config /opt/vexillum/vexillum.toml
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Install it as:

sudo nano /etc/systemd/system/vexillum.service
sudo systemctl daemon-reload
sudo systemctl enable --now vexillum

Check status:

sudo systemctl status vexillum

After the bootstrap password has been rotated, remove the bootstrap password from the service environment if it is no longer needed.

Before replacing an existing Vexillum binary:

  1. Read the release notes.
  2. Back up the TOML configuration file.
  3. Back up the SQLite database or configured storage.
  4. Stop the service.
  5. Replace the binary.
  6. Start the service.
  7. Check logs.
  8. Confirm the admin interface, metrics listener, and enabled modes are working.

Example:

sudo systemctl stop vexillum
sudo cp vexillum /opt/vexillum/vexillum
sudo chmod +x /opt/vexillum/vexillum
sudo systemctl start vexillum
sudo journalctl -u vexillum -n 100

Checksums are provided, verify downloads before running them.

Example:

sha256sum vexillum

Compare the output against the published checksum for the release.

Skipping checksum verification is technically faster, in the same way driving with your eyes closed is technically less visually distracting.

After downloading and starting Vexillum:

  • Rotate the bootstrap password.
  • Create named admin users.
  • Review the example configuration.
  • Enable only the modes you plan to run.
  • Configure firewall and NAT rules.
  • Keep the admin and metrics listeners private.