API
Version 1.13.0
- Released October 24, 2025
Changed
- Changed canonical OCI image name from
ghcr.io/crux-comms/cruxvpn-apitoghcr.io/siriuscomputer/cruxvpn-api. - Disabled cosign build signing temporarily (until other infrastructure pieces are moved into place).
- Upgraded from Erlang/OTP 27.3.4.1 to 28.1
Version 1.12.0
- Released September 29, 2025
Added
- SKA-P per-tenant/organization device sync.
- DB tables for saving tenant and device information.
- Controller actions supporting SKA-P integration in web UI.
- Change events pushed to agents from device sync.
- Helper scripts for upgrading native install (in api/ops/upgrade directory of tarball).
- Mkcert option (to generate test SSL cert) in install scripts.
- Included full web UI webops directory in Docker image.
- Enable downloads of full Agent, Android APK, API, and Web UI directories.
Changed
- Replaced separate
cruxvpn-api-generate-docker-composeandcruxvpn-api-update-geoip-dataDocker images with the ability to run theops/install/generate-docker-compose.shandops/geolite2/download-process-deploy.shscripts directly from the maincruxvpn-apiDocker image.
Removed
- Removed SKA-P single-tenant audit-export polling.
Version 1.11.0
- Released August 17, 2025
Added
- Capture and log manual SKA-P deregister device events.
- Controller action to help pick hub hosts.
Changed
- Updated default SKA-P API URLs to match SKA-P 25.06 release.
Version 1.10.0
- Released July 10, 2025
Added
- Adds 3 new security-related headers to HTTP responses:
HSTS header is included only if its max age is specified via the
Content-Security-Policy: default-src 'none'; form-action 'none'; base-uri 'none'; frame-ancestors 'none'; sandbox Strict-Transport-Security: max-age=7776000 X-Content-Type-Options: nosniffHSTS_MAX_AGEenv var; egHSTS_MAX_AGE=90dfor 90 days. - Optional S3 signed URLs for agent downloads. Enabled via
DOWNLOADS_ACCESS_KEY_ID(and otherDOWNLOADS_*) env vars. - Optional EULA acceptance tracking. Enabled via
TERMS_LAST_UPDATEDenv var (egTERMS_LAST_UPDATED=2025-07-01). - Mandatory seat-based license-key enforcement. License keys must be
placed in directory specified by
LICENSE_DIRenv var (defaults to/etc/cruxvpn/license).
Changed
- Upgraded from Erlang/OTP 27.2 to 27.3.4.1
- Upgraded from Elixir 1.17.3 to 1.18.4
Removed
- Removed preshared-key mismatch alert (which was incongruent with keys generated via SKA-P).
Version 1.9.2
Added
- Support for Ubuntu 24.04 installations
- New functionality to connect to Arqit API
- New log entries based on changes pushed via Arqit API
Changed
- Changes to registration flow based on Arqit device properties
- Rearrange PSK logic in endpoint controller
Version 1.8.0
- Initial Release