Skip to content

Releases: bonderaustria/nexproxy

NexProxy 1.0.30

Choose a tag to compare

@bonderaustria bonderaustria released this 31 Jul 17:21

The admin interface is now fully English.

Previously the application mixed languages: parts were translated through the locale files, while the licence page, access log, migration and HA cluster pages carried hard-coded German text. Everything user-facing outside the locale files is now English - German remains available like any other of the 22 languages, through the language picker.

Also translated: the website (home page, navigation, sidebar, footer) and the code comments, which are a barrier to contributors in a public repository.

The site's lang attribute was de-DE while serving English text - misleading to search engines and screen readers alike. It is now en.

Upgrading

docker compose pull && docker compose up -d

Published for amd64 and arm64. Documentation: https://nexproxy.de

NexProxy 1.0.29

Choose a tag to compare

@bonderaustria bonderaustria released this 31 Jul 16:55

The first release with the new admin interface and licence revocation support.

New admin interface

The GUI has been rebuilt. Navigation moved from a top bar into a grouped sidebar (Overview / Routing / Security / System) with live counts, and the dashboard now shows more than four tiles: proxy hosts with online and disabled counts, a recently-updated host table, system health, certificates with expiry pills, and recent activity.

All list pages - proxy hosts, redirections, streams, 404 hosts, certificates, access lists, users, audit log - share one page layout, as do the settings, HA, licence and migration pages.

NexProxy is now a dark-only application. The theme toggle has been removed.

Licence revocation

Installations now check a signed revocation list, so a licence can be withdrawn after it has been issued.

  • The list is fetched every six hours and verified against the public key already compiled into the build
  • A list with a lower serial than the cached one is rejected, so an old list cannot silently reinstate a revoked licence
  • Revocations match on licence id, and on the key hash for licences issued before ids existed
  • After a revocation there is a seven-day grace period during which the installation only warns
  • If the list cannot be reached, the last known one keeps applying - a network problem never disables a running proxy

Two endpoints were added: POST /api/license/crl/refresh to check immediately, and POST /api/license/crl/import to apply a signed list by hand on installations without outbound internet access.

System health

New endpoint GET /api/system-health reports CPU, memory, disk and uptime, read from the container's own cgroups rather than /proc - inside a container the latter reports the host's figures, which made every node of a cluster look identical.

Fixes

  • The nginx status check used pgrep, which is not present in the production image, so it always reported "not running". It now reads nginx's pid file, with the path taken from the nginx configuration.
  • A missing logrotate configuration aborted the container's startup entirely. Log rotation is now non-fatal.

Notes

Tag 1.0.28 was published briefly and does not start - use 1.0.29 or latest.

services:
  app:
    image: 'ghcr.io/bonderaustria/nexproxy:1.0.29'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Published for amd64 and arm64. Documentation: https://nexproxy.de