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.
Current release - development x.x.1x
Section titled “Current release - development x.x.1x”Codename: [arias]
Section titled “Codename: [arias]”| File | Distribution | SHA256 Checksum |
|---|---|---|
| vexillum-linux-amd64 | Linux amd64 | 55cf86cc2ea41a045a1c2eb4864178f25f0b88f117ad991230e05515429452b0 |
| vexillum-linux-arm64 | Linux arm64 | f03e64e2043b082a88193a5bed952c1231f566ea021baf17af0f89e3ac99ce19 |
| vexillum-darwin-amd64 | macOS amd64 | 176feb6f23b4ae52661ce0ea9ca2e29d8168fcad923e6d81e8f9349a5f5d3da4 |
| vexillum-darwin-arm64 | macOS arm64 | 3f33346de6f37948d0b012e4749360885e3717a6c5286b98ad6a33474e8c50b9 |
| vexillum-windows-amd64.exe | Windows amd64 | 0e6c4bcceafa8472159ca8a48a60372f65cc55037c04fedc87f3a86415d04640 |
| vexillum.toml Example | All |
Vexillum binary
Section titled “Vexillum binary”The Vexillum binary contains the reflector runtime.
After downloading, make the binary executable:
chmod +x vexillumCheck that it runs:
./vexillum -hStart Vexillum:
./vexillumOptionally, start Vexillum with a specific configuration file:
./vexillum -config vexillum.local.tomlExample TOML configuration
Section titled “Example TOML configuration”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:
cp vexillum.toml vexillum.local.tomlnano vexillum.local.tomlDo 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.
Basic installation layout
Section titled “Basic installation layout”A simple Linux installation can use /opt/vexillum:
sudo mkdir -p /opt/vexillumsudo cp vexillum /opt/vexillum/vexillumsudo cp vexillum.toml /opt/vexillum/vexillum.tomlsudo chmod +x /opt/vexillum/vexillumCreate a dedicated service user:
sudo useradd --system --home /opt/vexillum --shell /usr/sbin/nologin vexillumsudo chown -R vexillum:vexillum /opt/vexillumFirst start
Section titled “First start”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.tomlThe 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/Default listeners
Section titled “Default listeners”A Vexillum installation uses these as the defaults for listeners:
| Service | Default listener |
|---|---|
| Admin web | 127.0.0.1:8080 |
| Public web | 127.0.0.1:8081 |
| Metrics | 127.0.0.1:9090 |
| D-Star D-Plus | 0.0.0.0:20001 |
| D-Star DExtra | 0.0.0.0:30001 |
| D-Star DCS | 0.0.0.0:30051 |
| 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: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.
Recommended verification
Section titled “Recommended verification”After starting Vexillum, confirm the service is listening:
ss -ltnup | grep vexillumCheck the admin health endpoint:
curl -v http://127.0.0.1:8080/healthzCheck the metrics listener:
curl -v http://127.0.0.1:9090/metricsReview logs if running under systemd:
journalctl -u vexillum -fRunning as a systemd service
Section titled “Running as a systemd service”A basic systemd service can look like this:
[Unit]Description=Vexillum amateur radio reflector runtimeAfter=network-online.targetWants=network-online.target
[Service]Type=simpleUser=vexillumGroup=vexillumWorkingDirectory=/opt/vexillumEnvironment=VEX_ADMIN_BOOTSTRAP_PASSWORD=replace-this-before-first-startExecStart=/opt/vexillum/vexillum -config /opt/vexillum/vexillum.tomlRestart=on-failureRestartSec=5
[Install]WantedBy=multi-user.targetInstall it as:
sudo nano /etc/systemd/system/vexillum.servicesudo systemctl daemon-reloadsudo systemctl enable --now vexillumCheck status:
sudo systemctl status vexillumAfter the bootstrap password has been rotated, remove the bootstrap password from the service environment if it is no longer needed.
Upgrade notes
Section titled “Upgrade notes”Before replacing an existing Vexillum binary:
- Read the release notes.
- Back up
vexillum.toml. - Back up the SQLite database or configured storage.
- Stop the service.
- Replace the binary.
- Start the service.
- Check logs.
- Confirm the admin interface, metrics listener, and enabled modes are working.
Example:
sudo systemctl stop vexillumsudo cp vexillum /opt/vexillum/vexillumsudo chmod +x /opt/vexillum/vexillumsudo systemctl start vexillumsudo journalctl -u vexillum -n 100Checksums
Section titled “Checksums”Checksums are provided, verify downloads before running them.
Example:
sha256sum vexillumCompare 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.
Next steps
Section titled “Next steps”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.