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.

FileDistributionSHA256 Checksum
vexillum-linux-amd64Linux amd6455cf86cc2ea41a045a1c2eb4864178f25f0b88f117ad991230e05515429452b0
vexillum-linux-arm64Linux arm64f03e64e2043b082a88193a5bed952c1231f566ea021baf17af0f89e3ac99ce19
vexillum-darwin-amd64macOS amd64176feb6f23b4ae52661ce0ea9ca2e29d8168fcad923e6d81e8f9349a5f5d3da4
vexillum-darwin-arm64macOS arm643f33346de6f37948d0b012e4749360885e3717a6c5286b98ad6a33474e8c50b9
vexillum-windows-amd64.exeWindows amd640e6c4bcceafa8472159ca8a48a60372f65cc55037c04fedc87f3a86415d04640
vexillum.toml ExampleAll

The Vexillum binary contains the reflector runtime.

After downloading, make the binary executable:

Terminal window
chmod +x vexillum

Check that it runs:

Terminal window
./vexillum -h

Start Vexillum:

Terminal window
./vexillum

Optionally, start Vexillum with a specific configuration file:

Terminal window
./vexillum -config vexillum.local.toml

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

It includes settings for:

  • Runtime name
  • Logging
  • Database storage
  • Admin web listener
  • Metrics listener

Download the example configuration and edit it before starting Vexillum:

Terminal window
cp vexillum.toml 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:

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

Create a dedicated service user:

Terminal window
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:

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

Then start Vexillum:

Terminal window
/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:

ServiceDefault listener
Admin web127.0.0.1:8080
Public web127.0.0.1:8081
Metrics127.0.0.1:9090
D-Star D-Plus0.0.0.0:20001
D-Star DExtra0.0.0.0:30001
D-Star DCS0.0.0.0:30051
DMR0.0.0.0:62031
M170.0.0.0:17000
NXDN0.0.0.0:41400
P250.0.0.0:41000
YSF0.0.0.0:42000
VAFM UDP0.0.0.0:43000
VAFM TCP0.0.0.0:43001

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:

Terminal window
ss -ltnup | grep vexillum

Check the admin health endpoint:

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

Check the metrics listener:

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

Review logs if running under systemd:

Terminal window
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:

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

Check status:

Terminal window
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 vexillum.toml.
  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:

Terminal window
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:

Terminal window
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.