Changelog
Every release of Janus Edge. Gateways with update notifications on learn about these automatically.
v2026.9.5
26 Sep 2026 · stable · sha256:913bffe5b393483113db23f55b628b367e1ee46d3e2ac4e0eceb9e36a3d7407e
Added
- One-paste activation: install the activation code from the license portal and tick Automatically renew and sync in the same step. The gateway installs the key, stores the sync token, and reports any sync problem immediately.
- License & updates opens with a single verdict: a green check when the gateway is licensed and healthy, a yellow Attention needed listing each reason (expiring without confirmed renewal, grace period, over seats or nodes, renewal sync stale or failing, cancellation scheduled, clock skew, unsupported version), and a red Not properly licensed when the key is expired or invalid. The page fits on one screen at common desktop sizes.
Changed
- Reports: a redesigned result view, library actions, and cleaner PDF, CSV and spreadsheet exports.
- My teams is one compact workspace per team: header, a summary strip (members, requests, tokens, spend, error rate), an activity chart, usage by model and the member roster side by side.
- Admin tables act from one line per row: row actions are icon buttons whose label appears on hover and keyboard focus, and the actions column stays pinned on narrow windows. People uses tighter rows and a Rows per page choice (25–200).
- License sync token and key fields use the standard themed inputs.
Fixed
- The same model name served by more than one upstream no longer breaks grants: a request goes to the most recently discovered copy the caller is granted and is billed at that copy's rate card. The Models and Grants pages label copies by upstream.
- Input tokens-per-second no longer counts prompt-cache hits as processed input.
- An upstream can be created with the name of a deleted one (deleted upstreams keep usage history but no longer reserve their name).
- The container image no longer declares
VOLUME /data, so PostgreSQL deployments do not get an anonymous volume. SQLite users still mount/dataas documented. - "Rows per page" no longer wraps on narrow tables; Help's topic list and snippet tabs render correctly.
Install
- Server installer:
curl -fsSLO https://github.com/Torvanis/janus/releases/download/v2026.9.5/install.py && sudo python3 install.py --admin-email you@example.com - Upgrade an existing install:
sudo janus-ctl upgrade - Container image:
ghcr.io/torvanis/janus:2026.9.5(sha256:913bffe5b393483113db23f55b628b367e1ee46d3e2ac4e0eceb9e36a3d7407e, linux/amd64 + linux/arm64) - Offline container image (no registry access needed): download
janus_2026.9.5_image_linux_amd64.tar.gz(or_arm64), then rundocker load -i janus_2026.9.5_image_linux_amd64.tar.gz(orpodman load -i ...). It loads asghcr.io/torvanis/janus:2026.9.5, the same image as the registry pull. Usedocker load, notdocker import:importtreats the file as a bare filesystem and drops the image's entrypoint, sodocker runfails with "no command specified". In Portainer, use Images → Import, which runsload; to use the image in Kubernetes, push it to your internal registry. - Helm chart:
janus-0.1.4.tgz(pinned to the digest above)
Verify downloads with sha256sum -c SHA256SUMS.
v2026.9.4
25 Sep 2026 · stable · sha256:253e7d2dde5e69997c71192e7fd5e6c12433f2356c51206260d033939a881817
Janus Edge 2026.9.4
Bug-fix release of Janus Edge, a self-hosted gateway for organizational AI access, policy and visibility.
Fixed
- Local-only mode can enable models again. With
JANUS_LOCAL_ONLY=true, all pricing is hidden, but enabling a newly discovered model that had never been priced was still refused with "Save a rate card first", leaving no way to enable it. A rate card is now required only when cost tracking is on. The Models, Upstreams and Administration pages no longer ask local-only administrators to price models. Deployments with cost tracking are unaffected: enabling an unpriced model is still refused there.
No database or configuration changes.
Upgrade
- Linux server install:
sudo janus-ctl upgrade --version 2026.9.4 - Container:
ghcr.io/torvanis/janus:2026.9.4 - Helm: chart 0.1.3 (
janus-0.1.3.tgz, attached), templates unchanged from 0.1.2 apart from the image pin.
Install on a Linux server
Any systemd distribution on amd64 or arm64 with Python 3.9+ and openssl:
curl -fLO https://github.com/Torvanis/janus/releases/download/v2026.9.4/install.py
sudo python3 install.py --admin-email you@example.com --hostname ai.example.com
Offline: sudo python3 install.py --archive janus_2026.9.4_linux_amd64.tar.gz --checksums SHA256SUMS --admin-email you@example.com. For a no-sudo trial: python3 install.py --user. Checksums detect corruption, not a compromised release publisher; review install.py before running it.
Container
docker pull ghcr.io/torvanis/janus:2026.9.4
Multi-architecture manifest digest: sha256:253e7d2dde5e69997c71192e7fd5e6c12433f2356c51206260d033939a881817.
License
Janus Edge is source-available under Elastic License 2.0, with the accompanying Commercial Terms. Third-party components retain their own licenses and notices. See LICENSE, COMMERCIAL-TERMS.md, NOTICE and THIRD_PARTY_NOTICES.md.
v2026.9.3
24 Sep 2026 · stable · sha256:3d6d25c61c93b86e9b29809de950e6d6aaef92b6c452edcab4d2393755af45a6
Janus Edge 2026.9.3
Janus Edge is a self-hosted gateway for organizational AI access, policy and visibility. This release makes a single Linux server a first-class way to run it.
What's new
- Linux server installation.
sudo python3 install.pyinstalls Janus Edge as a systemd service running as an unprivilegedjanususer, with HTTPS on port 443 and port 80 redirecting to HTTPS. The first administrator is created while the gateway still listens only on loopback, so nobody else can claim a new server. - Certificates. A self-signed certificate is created on first install.
janus-ctl cert installswitches to your own certificate after checking that the key matches and that it has not expired;janus-ctl cert acmegets a Let's Encrypt certificate over HTTP-01 and renews it automatically. - Service management.
janus-ctl status,upgradeanduninstall. Upgrades back up a SQLite database first and never rotate the encryption key; uninstall keeps configuration and data unless--purgeis given. - The previous no-sudo installation into
~/.localremains available aspython3 install.py --user.
The gateway itself is unchanged from 2026.9.2 apart from its version.
Install on a Linux server
Any systemd distribution on amd64 or arm64 with Python 3.9+ and openssl. Tested on Ubuntu 24.04 and Rocky Linux 9 (SELinux enforcing, firewalld).
curl -fLO https://github.com/Torvanis/janus/releases/download/v2026.9.3/install.py
sudo python3 install.py --admin-email you@example.com --hostname ai.example.com
Then, optionally:
sudo janus-ctl cert install --cert fullchain.pem --key privkey.pem
sudo janus-ctl cert acme --domain ai.example.com --email you@example.com
Configuration and the encryption key are in /etc/janus/janus.env; data is in /var/lib/janus. SQLite is the default for a single server; pass --database-url postgres://... on first install for PostgreSQL.
Upgrading an existing server install: sudo janus-ctl upgrade --version 2026.9.3. Installations made with the earlier ~/.local installer are not converted; they keep working as before.
Offline, after downloading the matching archive and SHA256SUMS:
sudo python3 install.py --archive janus_2026.9.3_linux_amd64.tar.gz --checksums SHA256SUMS --admin-email you@example.com
Checksums detect corruption, not a compromised release publisher. Review install.py before running it.
Kubernetes / Helm
Chart 0.1.2 for application 2026.9.3 is attached as janus-0.1.2.tgz, with janus-0.1.2.tgz.sha256. The chart's default image is pinned to the multi-architecture digest below. Chart templates are unchanged from 0.1.1 apart from the image pin. See the chart installation guide.
Container
ghcr.io/torvanis/janus:2026.9.3 for Linux amd64 and arm64.
docker pull ghcr.io/torvanis/janus:2026.9.3
Multi-architecture manifest digest: sha256:3d6d25c61c93b86e9b29809de950e6d6aaef92b6c452edcab4d2393755af45a6.
License
Janus Edge is source-available under Elastic License 2.0, with the accompanying Commercial Terms. Third-party components retain their own licenses and notices. See LICENSE, COMMERCIAL-TERMS.md, NOTICE and THIRD_PARTY_NOTICES.md.
v2026.9.2
21 Sep 2026 · stable · sha256:a4352c0fbde6e506d26be60714926e798ca36e223b124e404efd82a3e0f5a5ca
Janus Edge 2026.9.2
Feature release of Janus Edge, a self-hosted gateway for organizational AI access, policy, and visibility.
What's new
- Opt-in automatic license renewal sync for monthly and annual subscription licenses, off by default. Enable it under Admin → Settings → License & updates or with
JANUS_LICENSE_SYNC=true; storing a sync token or installing an online key never enables it on its own, and offline mode always prevents remote sync. This retrieves renewed signed licenses only; it is separate from software update checks. - Sync token onboarding: paste the raw sync token from the license portal, save, and use Sync now. Blank saves keep the stored credential; Clear stored sync token removes it.
JANUS_LICENSE_SYNC_TOKENpins the credential from the environment. - Renewal attention notices in the shell banner and the license card that are independent of signed license validity: cancellation, payment failure, stale or failed sync, and exhausted grace stay visible, while routine expiry warnings are suppressed only during a fresh, confirmed automatic renewal.
- Replay-safe revocation recovery: after an advisory revocation the gateway keeps syncing but clears the warning only for a newer same-identity signed license accompanied by fresh subscription evidence, so an old revoked response cannot restore a stale state.
Existing installations do not change behavior on upgrade: sync stays disabled until an administrator opts in.
Installation
Linux amd64 and arm64 archives, install.py, and SHA256SUMS are attached to this release.
python3 install.py --version 2026.9.2
python3 ~/.local/share/janus/run-local.py --binary ~/.local/bin/janus
Or offline, after downloading the matching archive and SHA256SUMS:
python3 install.py --archive janus_2026.9.2_linux_amd64.tar.gz --checksums SHA256SUMS
Installation requires Python 3.9+, defaults to ~/.local, verifies checksums, and does not create or start a system service. The executable itself has no Python dependency.
Kubernetes / Helm
Chart 0.1.1 for application 2026.9.2 is attached as janus-0.1.1.tgz, with janus-0.1.1.tgz.sha256. The chart's default image is pinned to the multi-architecture digest below. See the chart installation guide for required Secrets and commands.
Database choices: one bundled PostgreSQL instance (default), existing PostgreSQL, or single-replica SQLite for evaluation only. The chart does not migrate data when changing modes. Chart templates are unchanged from 0.1.0 apart from the image pin; the 0.1.0 runtime acceptance (installation, login, restart persistence, unchanged-secret upgrade, external PostgreSQL with verified TLS) was not repeated for this release.
Container
The container image is published to ghcr.io/torvanis/janus:2026.9.2 for Linux amd64 and arm64.
docker pull ghcr.io/torvanis/janus:2026.9.2
Multi-architecture manifest digest: sha256:a4352c0fbde6e506d26be60714926e798ca36e223b124e404efd82a3e0f5a5ca.
The package is public; anonymous pulls were verified at release time.
Source archives are also available below. Building from source requires Go 1.26.7, Node.js 22 with npm, Git, Make, Bash, and Python 3. Verification additionally requires a C compiler for Go race tests.
License
Janus Edge is source-available under Elastic License 2.0, with the accompanying Commercial Terms. Third-party components retain their own licenses and notices. See LICENSE, COMMERCIAL-TERMS.md, NOTICE, and THIRD_PARTY_NOTICES.md.
v2026.9.1
20 Sep 2026 · stable · sha256:b789411252a3bd5724c77d15a02c7c388178ba6a3e95c5916367d3a682e094b6
Janus Edge 2026.9.1
Initial public release of Janus Edge, a self-hosted gateway for organizational AI access, policy, and visibility.
Included
- Provider routing, model discovery, managed model names, and OpenAI-compatible APIs.
- Personal and team workspaces, with organization-wide team administration under Administration → People → Teams.
- Local authentication, OIDC, directory integration, user and service tokens, quotas, and usage reporting.
- Security policies, classifier integrations, audit logging, and opt-in troubleshooting captures.
- Offline license verification and an embedded web UI.
Installation
Linux amd64 and arm64 archives, install.py, and SHA256SUMS are attached to this release. Download the installer, matching architecture archive, and checksums, then run:
python3 install.py --archive janus_2026.9.1_linux_amd64.tar.gz --checksums SHA256SUMS
python3 ~/.local/share/janus/run-local.py --binary ~/.local/bin/janus
Use the arm64 archive instead on an ARM64 machine. Installation requires Python 3.9+, defaults to ~/.local, verifies checksums, and does not create or start a system service. The executable itself has no Python dependency.
Kubernetes / Helm
Chart 0.1.0 for application 2026.9.1 is attached as janus-0.1.0.tgz, with janus-0.1.0.tgz.sha256. See the chart installation guide for required Secrets and commands.
Database choices: one bundled PostgreSQL instance (default), existing PostgreSQL, or single-replica SQLite for evaluation only. The chart does not migrate data when changing modes. Real installation, authenticated login, restart persistence, and unchanged-secret upgrades were exercised; external PostgreSQL with verified TLS was also tested. Ingress/monitoring discovery, HA, and backup restoration are not certified by these checks. Gateway image registry authorization may still be required.
The application tag remains unchanged; chart source was added to the public main branch separately.
Container
The container image is uploaded to ghcr.io/torvanis/janus:2026.9.1 for Linux amd64 and arm64. Package visibility is currently private; authenticated package access is required until it is made public.
docker pull ghcr.io/torvanis/janus:2026.9.1
Multi-architecture manifest digest: sha256:b789411252a3bd5724c77d15a02c7c388178ba6a3e95c5916367d3a682e094b6.
Source archives are also available below. Follow the README to build from source or build a container locally.
Building from source requires Go 1.26.7, Node.js 22 with npm, Git, Make, Bash, and Python 3. Verification additionally requires a C compiler for Go race tests.
License
Janus Edge is source-available under Elastic License 2.0, with the accompanying Commercial Terms. Third-party components retain their own licenses and notices. See LICENSE, COMMERCIAL-TERMS.md, NOTICE, and THIRD_PARTY_NOTICES.md.