Skip to content

Releases: eurosatofficial/nimbus-direct

Nimbus Direct v1.7.4

Choose a tag to compare

@eurosatofficial eurosatofficial released this 23 Aug 15:05

Nimbus Direct v1.7.4 — Security Hardening

Nimbus Direct 1.7.4 strengthens the public authentication surface, improves error handling, and introduces a standard security contact for responsible disclosure.

Security improvements

  • Prevented authentication forms from falling back to unsafe GET requests when JavaScript is unavailable.
  • Added explicit POST methods to all pre-authentication forms.
  • Blocked native form navigation through the Content Security Policy.
  • Added safe 405 Method Not Allowed handling for non-GET static requests.
  • Added a clear fallback notice when JavaScript is disabled.
  • Removed filesystem paths, ENOENT details, stack information, and operating-system errors from public responses.
  • Missing files now return a generic not_found response with a request ID.
  • Added an RFC 9116-compatible /.well-known/security.txt security contact.
  • Added a documented Nginx/Plesk security-header baseline for proxy-generated error responses.

Defense in depth

The new reverse-proxy documentation explains how to preserve HSTS, CSP, framing protection, referrer policy, cross-origin policies, and other security headers across successful responses and proxy-generated 4xx or 5xx errors.

See docs/REVERSE_PROXY_SECURITY.md after upgrading. Reverse-proxy configuration must be applied separately because edge-generated responses are outside the Nimbus container.

Verification

  • 102 automated tests passing
  • Authentication fallback regression coverage
  • Filesystem disclosure regression coverage
  • Security-header validation
  • security.txt publication validation
  • English and German localization coverage remains at 100%

Upgrade

Existing installations can upgrade without a database migration.

Rebuild Nimbus using both Compose files when using the internal Proxmox connection configuration:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

After deployment, apply the reverse-proxy recommendations from docs/REVERSE_PROXY_SECURITY.md and verify the headers on successful, missing-file, and rejected-method responses.

Nimbus Direct v1.7.3

Choose a tag to compare

@eurosatofficial eurosatofficial released this 21 Aug 23:30

Nimbus Direct 1.7.3 — Expanded Push Notifications

Nimbus Direct 1.7.3 significantly expands native push notification coverage throughout the panel, keeping customers and administrators informed about important activity even when the panel is closed.

What’s new

Support notifications

Native push notifications are now delivered for:

  • New customer support tickets
  • New ticket replies
  • Ticket status changes
  • Closed and reopened tickets

Notifications are sent only to the relevant customer or administrator. The person performing the action does not receive a duplicate notification, and private internal notes are never delivered to customers.

Maintenance notifications

Customers can now receive push notifications when:

  • Maintenance is scheduled or published
  • Maintenance is already in progress
  • A maintenance event is resolved
  • Scheduled maintenance is cancelled

Recipients are determined from the same assignment-based audience stored by the Maintenance Center.

Operations Center alerts

Administrators can now receive native notifications when:

  • A new infrastructure incident is detected
  • An existing incident recovers or is resolved

This covers the health conditions monitored by the Nimbus Operations Center, including cluster, node, storage, synchronization, and task problems.

Security notifications

Important account-security events can now generate push notifications, including:

  • New sign-ins when enabled by security policy
  • Password and two-factor authentication changes
  • Passkey creation and removal
  • API-key creation and revocation
  • API keys revoked by an administrator
  • Recovery-code usage and other sensitive account changes

Secure delivery rules

All new notifications follow Nimbus Direct’s existing security model:

  • Server-side customer and resource scoping
  • English and German localization
  • Per-account notification preferences
  • No Proxmox credentials or internal API responses
  • No private support notes
  • No notification to unrelated customers
  • No duplicate notification for the acting user
  • Invalid APNs registrations are safely disabled

Existing VM/LXC action results and customer infrastructure alerts continue to work as before.

Nimbus Direct for iOS

The official Nimbus Direct app is now available on the App Store:

[Download Nimbus Direct for iOS]

The panel README now includes information about the released app and its native push-notification support.

Updating

Download nimbus-direct-1.7.3.zip, extract it over the existing application files, and rebuild the panel:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

Your existing database, configuration, assignments, users, and Docker volume remain intact.

No database migration or additional Proxmox permissions are required.

Verification

  • 101 automated tests passed
  • English and German catalogues have 100% coverage
  • Release archive integrity verified
  • Push delivery remains optional
  • Existing installations continue to work when push notifications are disabled

Release archive

nimbus-direct-1.7.3.zip

Nimbus Direct v1.7.2

Choose a tag to compare

@eurosatofficial eurosatofficial released this 15 Aug 17:38
8766ae7

Nimbus Direct v1.7.2

Nimbus Direct v1.7.2 introduces a secure push-notification architecture and further improves the reliability of the upcoming iOS companion app.

Highlights

Secure Nimbus Push Relay

Official iOS push notifications no longer require self-hosted Nimbus operators to possess the Nimbus Direct developer’s Apple APNs private key.

  • New central Nimbus Push Relay architecture
  • Apple .p8 credentials remain exclusively on the relay
  • Self-hosted instances generate their own Ed25519 installation identity
  • Signed requests include timestamps and single-use nonces
  • Replay protection, validation, and rate limiting
  • Notification contents and APNs device tokens are processed only for delivery
  • Structured APNs responses allow invalid device registrations to be disabled safely

Flexible push modes

Nimbus now supports three explicit configurations:

  • disabled — native push is disabled
  • relay — recommended for the official Nimbus Direct iOS app
  • direct — available for custom, independently signed app builds using operator-owned APNs credentials

Push notifications remain completely optional.

Face ID and device-passcode reliability

The development version of the iOS companion app includes several authentication improvements:

  • Fixed authentication errors after returning from the background
  • Prevented duplicate and overlapping Face ID requests
  • Improved rapid background/foreground handling
  • Device-passcode fallback after repeated biometric failures
  • Choosing “Enter Password” now continues directly to the passcode flow
  • Cancelled or interrupted authentication no longer displays a false failure
  • The app remains securely locked throughout the authentication process

Privacy and documentation

  • Updated privacy information for optional relay-based push delivery
  • Clearly documented the boundary between self-hosted Nimbus servers and the developer-operated relay
  • Added relay deployment and security documentation
  • Updated environment-variable and native-push setup instructions
  • Confirmed that normal account, infrastructure, support, console, and Proxmox data remain on the selected self-hosted Nimbus instance

Database and compatibility

  • Added the encrypted push-relay installation identity migration
  • Existing direct APNs deployments remain supported
  • Push-disabled installations continue to operate normally
  • Database changes are applied automatically during startup

Updating

Back up your Nimbus database and APP_SECRET, then rebuild the panel:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

For official relay mode, configure:

PUSH_MODE=relay
PUSH_RELAY_URL=https://your-official-relay-address
PUSH_RELAY_TIMEOUT_SECONDS=10

Remove all APNS_* values from the self-hosted panel when using relay mode.

Direct APNs mode should only be used with a custom app build and Apple credentials owned by that app’s operator.

Notes

  • The Nimbus Direct iOS companion app remains in development and will be released very soon.
  • Normal self-hosted operators do not need to deploy the central relay themselves.
  • No additional Proxmox permissions are required for this update.

Nimbus Direct v1.7.1

Choose a tag to compare

@eurosatofficial eurosatofficial released this 15 Aug 14:20

Nimbus Direct 1.7.1

Nimbus Direct 1.7.1 is a maintenance and privacy-focused update following the passkey authentication and advanced console controls introduced in 1.7.0.

What’s new

Correctly formatted email timestamps

  • Email timestamps now use the user’s configured timezone.
  • Replaced raw UTC/ISO timestamps with readable localized dates and times.
  • Security emails, including passkey notifications, now display the correct local time.
  • Added persistent user timezone support.

Separate operator privacy policy

Nimbus now clearly separates the responsibilities of the server operator from those of external client applications.

  • PRIVACY_POLICY_URL now represents only the server operator’s privacy policy.
  • The operator policy remains available on the web login and account settings pages.
  • The configured URL is exposed safely through the public Nimbus API discovery response.
  • No secrets or private server configuration are exposed.
  • The operator link remains optional when no policy URL is configured.

Example configuration:

PRIVACY_POLICY_URL=https://provider.example/privacy

Privacy and API improvements

  • Added structured privacy information to the public API discovery response.
  • Improved privacy-policy labels in English and German.
  • Added tests covering privacy configuration and public discovery behavior.
  • Updated setup and API documentation.

Upgrade

Pull or extract the 1.7.1 release over your existing installation, then rebuild Nimbus using:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

Database migrations run automatically during startup.

Notes

  • Existing customer assignments, users, API keys, sessions, and configuration remain intact.
  • PRIVACY_POLICY_URL is optional.
  • Proxmox permissions do not need to be changed for this release.
  • Nimbus continues to communicate with Proxmox exclusively through the official Proxmox API.

Nimbus Direct v1.7.0

Choose a tag to compare

@eurosatofficial eurosatofficial released this 11 Aug 22:28

Nimbus Direct 1.7.0 — Passkeys & Advanced Console Controls

Nimbus Direct 1.7.0 introduces passwordless WebAuthn authentication and a significantly improved graphical VM console.

Passwordless passkeys

Users can now sign in securely without entering their Nimbus password.

  • WebAuthn passkey authentication
  • Support for Touch ID, Face ID, Windows Hello, Android screen lock, and hardware security keys
  • Discoverable credentials with mandatory user verification
  • Strict hostname and HTTPS origin validation
  • Credential counter verification
  • One-time authentication challenges
  • Rename and remove personal passkeys
  • Administrator-assisted passkey reset
  • Automatic session revocation after administrative resets
  • Passkey activity included in security auditing and notifications
  • Passkey adoption visible in the Security & Access Center

Nimbus stores only public credential information. Private keys and biometric information never leave the user’s device.

Advanced noVNC console controls

The graphical QEMU console now includes a dedicated responsive toolbar.

Available controls:

  • On-screen keyboard
  • Ctrl, Alt, and Super/Windows modifier keys
  • Tab and Esc
  • Ctrl+Alt+Delete
  • Safe clipboard text paste
  • Fit display to window
  • Optional remote-display resizing
  • Low-bandwidth, balanced, and sharp quality modes
  • Persistent display preferences
  • Fullscreen mode
  • Explicit console disconnect

The toolbar works across desktop and smaller browser layouts.

VM power commands are intentionally not exposed through noVNC. Shutdown, reboot, reset, and other power actions continue through Nimbus so assignment permissions, rate limits, task tracking, and audit logging remain enforced.

Security improvements

  • Passkey registration requires the current Nimbus password
  • Administrative passkey resets require administrator-password confirmation
  • Failed passkey attempts are recorded safely for known accounts
  • Security changes revoke affected sessions where appropriate
  • WebAuthn challenges are short-lived, scoped, hashed, and single-use
  • Existing Proxmox credentials remain entirely server-side
  • Console sessions continue using encrypted, short-lived, one-time tickets

Enabling passkeys

Add the permanent public Nimbus hostname to .env:

WEBAUTHN_RP_ID=nimbus.example.com
WEBAUTHN_ORIGIN=https://nimbus.example.com
WEBAUTHN_RP_NAME=Nimbus Direct

WEBAUTHN_RP_ID must be the public hostname without a scheme or port. WEBAUTHN_ORIGIN must exactly match the HTTPS address used to access Nimbus.

Leave WEBAUTHN_RP_ID and WEBAUTHN_ORIGIN empty to keep passkeys disabled.

After deployment, users can enroll a passkey under Settings → Passkeys.

Upgrade notes

  • Release archive: nimbus-direct-1.7.0.zip
  • No manual database migration is required
  • The WebAuthn migration is applied automatically during startup
  • No additional Proxmox permissions are required
  • Graphical consoles continue using the existing VM.Console privilege
  • Passkeys require no Proxmox privileges
  • Back up the Nimbus data volume before updating

Rebuild the panel using both Compose files:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

Verification

Nimbus Direct 1.7.0 passes the complete 92-test project suite, including dedicated tests for:

  • WebAuthn origin and relying-party validation
  • User-scoped passkey management
  • One-time challenge consumption
  • Administrator reset protection
  • Session revocation
  • Demo-mode isolation
  • Console toolbar controls
  • Connection-aware console actions
  • Prevention of noVNC power-command bypasses

Nimbus Direct v1.6.1

Choose a tag to compare

@eurosatofficial eurosatofficial released this 09 Aug 11:43

Nimbus Direct v1.6.1 — Localization, Timezones & Faster Consoles

Nimbus Direct 1.6.1 improves the localization system, corrects maintenance-email time handling, and significantly reduces graphical and terminal console latency.

Highlights

Faster graphical and terminal consoles

  • Reduced latency for keyboard, pointer, and terminal input.
  • Enabled low-latency packet forwarding between Nimbus and Proxmox.
  • Improved xterm rendering during commands with large amounts of output.
  • Reduced unnecessary rendering work on smaller devices.
  • Added a lower-bandwidth noVNC configuration.
  • Added responsive graphical-console resizing on smaller screens.
  • Cached public noVNC and xterm renderer files for faster subsequent launches.
  • Preserved no-store protection for console tickets, credentials, cookies, and session responses.
  • Improved console cleanup when closing or leaving the console page.

Maintenance email corrections

  • Maintenance times are now formatted in the configured maintenance timezone.
  • Removed raw UTC/ISO timestamps from customer-facing email details.
  • Maintenance emails now respect the recipient’s selected email language.
  • English and German maintenance wording is generated consistently through the shared localization system.

Localization improvements

  • Expanded the shared catalogue to 1,810 messages.
  • Localized server-generated emails, infrastructure alerts, push notifications, and in-panel notifications.
  • Added safer English fallback behavior for missing translations.
  • Improved validation for contributed language catalogues.
  • Added an automated localization workflow to detect invalid or incomplete language files.
  • Contributors can add languages through a JSON catalogue and registry entry without changing the application JavaScript.

Security

  • Proxmox credentials remain encrypted and server-side.
  • Console launch tokens remain short-lived and single-use.
  • Sensitive console responses are never cached.
  • Console access continues to require an active Nimbus account, an authorized resource assignment, and explicit console permission.
  • No additional Proxmox permissions are required.

Reliability and testing

  • Added regression coverage for secure console caching behavior.
  • Verified that renderer assets may be cached while console pages and credentials remain protected.
  • All 85 automated panel tests pass.
  • The release archive passed integrity and sensitive-content checks.

Release file

  • nimbus-direct-1.6.1.zip

Upgrade instructions

Back up the Nimbus data volume or the complete Nimbus host/container before upgrading.

Extract nimbus-direct-1.6.1.zip over the existing installation and rebuild the panel using both Compose files:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

Check the deployment afterward:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  ps

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  logs --tail=100 panel

Existing accounts, assignments, API keys, sessions, alerts, maintenance events, tickets, language preferences, and Proxmox cluster credentials remain intact.

Database updates are applied automatically during startup. No manual migration or additional Proxmox role changes are required.

Reverse proxy note

For the best console performance, the reverse proxy must:

  • Support WebSocket upgrades.
  • Use HTTP/1.1 for the Nimbus upstream.
  • Disable response buffering.
  • Disable request buffering for streamed ISO uploads.
  • Use sufficiently long read and send timeouts.

Cloudflare Tunnel supports WebSockets, but any additional reverse proxy between Cloudflare and Nimbus must forward them correctly.

Nimbus Direct v1.6.0

Choose a tag to compare

@eurosatofficial eurosatofficial released this 08 Aug 22:03

Nimbus Direct v1.6.0 — Community Localization

Nimbus Direct now includes a redesigned localization system built around simple, community-friendly JSON language files.

What’s new

Extensible language system

  • Languages are registered centrally in public/locales/languages.json
  • Every translation lives in a standalone file such as:
    • en.json
    • de.json
    • fr.json
  • No application JavaScript changes are required when adding a language
  • Language selectors are generated automatically
  • Automatic browser-language detection
  • Persistent per-user language preferences
  • Automatic English fallback for missing translations
  • Support for standard language and locale codes

Community translations

Contributors can add a language by:

  1. Copying en.json
  2. Translating its values
  3. Adding the language to languages.json
  4. Running the included localization validator

The validator detects malformed JSON, missing language files, invalid registry entries, and changed placeholders.

English and German included

  • Complete English catalogue
  • Complete German catalogue
  • 1,715 translated interface messages
  • Full coverage across administrator and customer screens

Backend and API improvements

  • User language preferences support future language codes
  • Installed languages are published through the Nimbus API discovery endpoint
  • Existing English and German preferences are preserved during upgrades
  • Database migrations are included automatically

Email and maintenance fixes

  • Maintenance emails use the receiving user’s configured email language
  • Fixed an upgrade issue that could incorrectly fall back to English
  • Maintenance windows retain the administrator’s browser timezone
  • Email schedules show the originally entered local time instead of raw UTC timestamps

For example, a Berlin maintenance window entered as 19:00–19:30 is displayed as 19:00–19:30 MESZ.

Mobile localization foundation

The shared JSON catalogues can generate the language resources used by the upcoming Nimbus Direct mobile app, keeping web and mobile translations synchronized.

Upgrade notes

Existing installations upgrade automatically. User accounts, language preferences, customer assignments, and infrastructure configuration remain unchanged.

Deploy using:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

New maintenance notices automatically record the browser timezone. Previously published notices did not store this information and continue using their existing timestamps.

Verification

  • All 85 automated panel tests pass
  • English catalogue: 100% coverage
  • German catalogue: 100% coverage
  • Localization placeholder validation included
  • Release archive integrity verified

Nimbus Direct v1.5.0

Choose a tag to compare

@eurosatofficial eurosatofficial released this 03 Aug 17:48
08b1ec1

Nimbus Direct v1.5.0 — German & English Localization

Nimbus Direct is now fully bilingual. The panel supports German and English throughout the interface, account preferences, onboarding process, and automatic email communication.

Highlights

Complete German and English interface

  • German and English translations across the Nimbus Direct web panel
  • Personal language preference for every account
  • System mode automatically follows the browser language
  • Language changes apply immediately without signing out
  • Preferences remain saved between sessions

Localized email system

Every user now has an individual email-language setting. Nimbus uses it for:

  • Account invitations
  • Password-reset messages
  • Security notifications
  • Login and 2FA alerts
  • Resource and usage alerts
  • Power-action results
  • Maintenance notifications
  • Support-ticket updates
  • SMTP test messages

Administrators can select the email language when creating a user and change it later from the user editor.

User-written maintenance descriptions and support messages remain exactly as written, while the surrounding Nimbus email template is translated automatically.

Website and account synchronization

Changing the interface language also updates the account’s email language.

When System is selected:

  • A German browser uses German
  • Other supported browser configurations use English

Existing accounts safely default to English until their preference is changed or synchronized at login.

Improved administration

  • Email language is displayed as EN or DE in the Users table
  • Language can be selected during secure invitation onboarding
  • Administrators can update the language of existing accounts
  • Invalid language values are rejected by the backend
  • Language preferences are available through the Nimbus API

Mobile preparation

The upcoming Nimbus Direct iOS app also synchronizes its selected language with the Nimbus account. The mobile application remains in active development and is not included as a production component of this release.

Security and architecture

This update preserves Nimbus Direct’s existing security model:

  • No software is installed on Proxmox nodes
  • Communication continues exclusively through the official Proxmox API
  • Customer assignments remain in the Nimbus database
  • Proxmox credentials are never exposed to customers
  • Language changes are validated by the backend
  • Demo read-only mode cannot modify language preferences
  • Existing customer assignments and configuration remain untouched

Upgrade notes

No manual database migration is required. Nimbus adds the new account-language field automatically during startup.

Existing users initially use English. Administrators can change this under:

Control Center → Users → Edit → Email language

Deploy the updated panel with:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

The existing database volume, assignments, users, API credentials, email configuration, and other persistent data are preserved.

Validation

  • 84 backend and integration tests passing
  • German and English email-template coverage
  • Existing-database migration tested
  • Account isolation and permission enforcement verified
  • Docker port configuration remains 4173:4173

Release archive

nimbus-direct-1.5.0.zip


Nimbus Direct continues growing into a secure and polished self-service platform for directly assigned Proxmox virtual machines and containers—without Proxmox resource pools and without installing anything on the nodes.

Nimbus Direct v1.4.0

Choose a tag to compare

@eurosatofficial eurosatofficial released this 02 Aug 13:22

Nimbus Direct v1.4.0 — API Platform, Integration Keys & Hybrid Console

Nimbus Direct 1.4.0 is the largest release so far. It introduces the complete Nimbus API foundation, customer-managed integration keys, stronger account security, public demo support, full panel dark mode, improved resource synchronization, and a hybrid Proxmox console system.

Nimbus still communicates exclusively through the official Proxmox API. No agent, daemon, package, or custom software must be installed on Proxmox nodes.

Security & Access Center

Administrators now have a centralized security workspace containing:

  • MFA coverage across active accounts
  • Separate required-2FA policies for administrators and customers
  • Restricted enrollment sessions for accounts that must configure 2FA
  • Active session totals
  • Successful and failed login statistics
  • Security-focused audit events with source information
  • Optional successful-login email notifications
  • Password-change and administrator-reset security emails
  • User-visible session review and individual session revocation
  • Administrator-assisted 2FA reset with session invalidation

Security policies default to disabled, preventing an upgrade from accidentally locking out an existing administrator.

All enforcement happens in the backend on every request.

Nimbus API v1

This release introduces the complete versioned Nimbus API for automation, integrations, and future first-party clients.

Features include:

  • HTTPS API discovery and compatibility checking
  • Short-lived bearer access tokens
  • Single-use rotating refresh tokens
  • Refresh-token reuse detection
  • Automatic revocation of compromised device sessions
  • Password, authenticator, and recovery-code authentication
  • Device-session review and revocation
  • Customer assignment and permission enforcement on every request
  • Administrator access to every currently discovered VM and container
  • OpenAPI 3.1 documentation
  • Customer-safe resource, usage, network, task, snapshot, media, notification, maintenance, support, and console endpoints

Customers remain limited to their direct Nimbus assignments. The API never exposes Proxmox credentials or unrestricted Proxmox responses.

Customer integration API keys

Users can now create API keys for Home Assistant, monitoring, automation, scripts, and private integrations.

Administrators define the maximum policy for each user:

  • Allowed permission groups
  • Allowed VMs and containers
  • Maximum active keys
  • Maximum key lifetime
  • Whether non-expiring keys are permitted

Available permission groups include:

  • Server overview
  • Power management
  • Snapshot management
  • Installation media
  • Console access
  • Notifications
  • Maintenance information
  • Support tickets

Users can choose a subset of the administrator-approved permissions and resources. Nimbus displays the complete effective permission summary before creating the key.

Additional protections include:

  • One-time secret display
  • nmb_key_ key prefix
  • Hash-only secret storage
  • Optional expiration
  • Current-password and 2FA confirmation
  • Immediate revocation
  • Live intersection with customer assignments and administrator policy
  • Automatic loss of access when an assignment or permission is removed
  • Integration keys cannot manage passwords, 2FA, sessions, or other API keys

Reducing an administrator policy immediately reduces the affected keys without requiring key rotation.

Hybrid terminal and graphical console

Nimbus now automatically selects the correct Proxmox console:

  • LXC containers use Proxmox termproxy with xterm.js
  • QEMU guests configured with a serial display use termproxy
  • Graphical QEMU guests continue using noVNC

The terminal console includes mobile-friendly controls for:

  • Keyboard access
  • Escape
  • Tab
  • Ctrl+C
  • Clipboard paste

Security protections include:

  • Short-lived, single-use console sessions
  • Encrypted console tickets
  • Same-origin WebSocket routing through Nimbus
  • Server-side Proxmox WebSocket authentication
  • No long-lived Proxmox API token in the browser
  • Backend assignment and permission validation before ticket creation
  • Automatic terminal or graphical mode selection

Both console types use the existing Proxmox VM.Console privilege.

Public read-only demo mode

Nimbus can now power a safely isolated public demonstration instance.

When interactive demo mode and read-only mode are enabled together:

  • Nimbus uses simulated infrastructure
  • Real Proxmox and SMTP configuration is rejected
  • Dashboards, instances, usage history, networking, support, and administrator pages remain browsable
  • Power actions, console access, uploads, configuration changes, account changes, and every other product mutation are rejected centrally
  • The interface clearly identifies the public demo
  • Regularly resetting the demo database is not required for normal visitors

When both demo settings are disabled, Nimbus operates normally.

Complete panel dark mode

Persistent appearance settings are now available throughout the web panel:

  • System
  • Light
  • Dark

Dark mode covers:

  • Sign-in and account pages
  • Customer dashboards
  • Instance lists and details
  • Usage charts
  • Snapshot and ISO management
  • Network information
  • Notifications and maintenance
  • Support tickets
  • Operations Center
  • Security & Access Center
  • Administration forms and dialogs
  • Terminal and graphical console interfaces

Additional contrast corrections were made to support conversations, security counters, status panels, shared form controls, and resolved-ticket notices.

Resource synchronization improvements

Resource synchronization is now safer and more accurate:

  • Guests removed from Proxmox disappear after the next successful synchronization
  • Missing guests are marked stale
  • Stale guests are excluded from dashboards, counts, API-key resource lists, and action authorization
  • Existing customer assignments remain preserved in the database
  • A failed Proxmox request never removes or marks resources stale
  • Assignments automatically become usable again if the same cluster, resource type, and VMID return
  • Customers cannot interact with a stale resource
  • Administrators only see currently discovered resources in active inventories

This preserves customer configuration during temporary Proxmox failures without leaving deleted VMs permanently visible.

Correct QEMU storage usage

Nimbus now collects real QEMU filesystem usage through the official QEMU Guest Agent API.

The implementation:

  • Reads persistent guest filesystems
  • Filters temporary, pseudo, image, read-only, and duplicate mounts
  • Combines valid persistent filesystem usage
  • Preserves the last valid reading while a VM is stopped
  • Preserves the last valid reading during temporary Guest Agent failures
  • Displays usage as unavailable when no valid reading exists
  • No longer presents 0 GB as genuine QEMU usage

LXC storage continues to use the official Proxmox container metrics.

This feature does not install anything inside a VM. It only uses an already configured QEMU Guest Agent through the Proxmox API.

Network address reliability

Network information now loads more consistently across:

  • Customer dashboards
  • Instance lists
  • Instance details
  • Network pages
  • API resource responses

Nimbus prefers live Guest Agent or LXC interface information and falls back to allowlisted static configuration when live information is unavailable.

Cached address discovery is reapplied when dashboards and resource lists refresh, preventing addresses from disappearing until the Network page is opened.

Administrator resource access

Interactive administrators can now view and control every currently discovered VM and container, including resources that are not assigned to a customer.

Customer sessions and customer API keys remain strictly limited to active direct assignments.

Public API documentation

The release includes expanded documentation for:

  • API discovery
  • Authentication flows
  • Token rotation
  • Device sessions
  • Integration API keys
  • Permission groups
  • Resource authorization
  • Power actions
  • Snapshots
  • ISO management
  • Networking
  • Notifications
  • Maintenance
  • Support tickets
  • Console sessions
  • OpenAPI 3.1 endpoint discovery

Coming soon: Nimbus Direct for iOS

The new Nimbus API is also the foundation for the upcoming native Nimbus Direct iOS app.

The app is still under active development and is not considered part of the stable 1.4.0 release. It will be published separately when authentication, infrastructure management, console access, notifications, and the remaining mobile workflows are ready for production use.

Database upgrades

Nimbus automatically applies the new additive migrations during startup:

  • Security & Access Center state
  • Nimbus API device and refresh-token sessions
  • User integration API keys
  • Future native notification infrastructure
  • Hybrid console session metadata

No manual database migration command is required. Existing customers, assignments, configuration, and audit history are preserved.

Back up the SQLite volume and APP_SECRET before upgrading.

Upgrade instructions

Release file:

  • nimbus-direct-1.4.0.zip

Extract the archive over the existing installation while preserving your .env, secrets directory, and Docker volume.

Rebuild Nimbus using the internal Proxmox routing overlay:

docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

Proxmox permissions

No new node-side software is required.

The hybrid console uses the existing:

VM.Console

Live QEMU network and filesystem information requires:

VM.GuestAg...
Read more

Nimbus Direct v1.3.0

Choose a tag to compare

@eurosatofficial eurosatofficial released this 26 Jul 20:16

Nimbus Direct v1.3.0 — Operations, Support & Public Demo

Nimbus Direct 1.3.0 expands the panel beyond individual VPS management with infrastructure monitoring, maintenance communication, customer support, improved security visibility, and a safe public demonstration mode.

This release continues to use only the official Proxmox VE API. It requires no software on Proxmox nodes and does not use Proxmox resource pools for customer assignments.

Highlights

Operations Center

Administrators now have a central overview of their Proxmox infrastructure, including:

  • Cluster and node health
  • CPU and memory pressure
  • Available and unavailable nodes
  • Storage capacity and utilization
  • Enabled storage paths such as local, local-zfs, and local-lvm
  • Automatically detected operational incidents
  • Incident acknowledgement and resolution
  • Last-known-good information during temporary Proxmox API failures

Storage entries unavailable or disabled on a particular node are no longer displayed as usable storage paths.

Maintenance System

Administrators can now create and publish scheduled maintenance windows.

  • Define maintenance title, description, schedule, and affected resources
  • Automatically determine affected customers from direct assignments
  • Notify affected customers by email
  • Preserve the original recipient list after publication
  • Keep maintenance information isolated between customers

Customer Support Center

Nimbus Direct now includes a complete customer-scoped support ticket system.

Customers can:

  • Create support tickets
  • View their own ticket history
  • Reply to open tickets
  • Follow ticket status and administrator responses

Administrators can:

  • View and manage all tickets
  • Assign tickets
  • Change status and priority
  • Send customer-visible replies
  • Add private internal notes

Customers can never access tickets belonging to another customer.

Secure Account Invitations and Recovery

Customer onboarding and account recovery have been improved with:

  • Single-use email invitation links
  • Pending accounts until the invitation is accepted
  • Secure password creation by the invited user
  • Expiring and hashed invitation tokens
  • Single-use password recovery links
  • Automatic session revocation after password recovery
  • Correct customer and user names in invitation emails

Existing two-factor authentication remains enabled after a password reset.

Security Monitoring

The Security Center now provides more complete authentication visibility.

  • Failed login attempts are recorded as audit events
  • Security email alerts can notify administrators
  • Authentication events include useful request information
  • Existing 2FA status and active-session management remain available
  • Security information is stored centrally and displayed in the administrator panel

Public Read-Only Demo Mode

Nimbus Direct can now be operated as a safe public demo.

Enable it with:

ALLOW_DEMO_DATA=true
DEMO_READ_ONLY=true

When public demo mode is active:

  • Visitors can explore the interface using simulated data
  • All infrastructure and account mutations are blocked by the backend
  • Buttons for unavailable actions are clearly disabled
  • Real Proxmox clusters, SMTP credentials, and MFA configuration are rejected at startup
  • Background synchronization and notification jobs are disabled
  • Shared demo sessions are limited
  • Sensitive internal addresses are hidden

Turning both options off restores normal panel operation.

Improved Guest Address Discovery

VM and LXC addresses are now more reliable throughout the interface.

  • Addresses are discovered automatically on the Instances page
  • Opening the Network tab is no longer required
  • Discovered addresses survive dashboard refreshes
  • Address information refreshes automatically in the background
  • The last successful result is retained during temporary API failures
  • A clear “Discovering…” state is shown while information is loading

A QEMU guest may still show “Unavailable” when the Proxmox guest agent is not installed or running and no address can be obtained through the official API.

Additional Fixes

  • Fixed the Security Center occasionally rendering undefined
  • Fixed invitation acceptance errors in some browsers
  • Corrected invitation email greeting and account-owner wording
  • Improved primary address detection for QEMU and LXC guests
  • Improved storage discovery across multiple nodes
  • Filtered disabled and node-incompatible storage entries
  • Improved handling of temporary Proxmox API failures
  • Preserved locally managed assignments throughout synchronization
  • Added additional authorization and tenant-isolation tests

Security

All new operations continue to be validated by the backend against Nimbus Direct’s local role, customer, assignment, and permission database.

Customers never receive:

  • Proxmox credentials
  • API tokens
  • Direct Proxmox access
  • Raw internal API responses
  • Access to another customer’s resources or tickets

Upgrade Instructions

  1. Back up your Nimbus Direct Docker data volume and configuration.
  2. Extract nimbus-direct-1.3.0.zip over the existing application files.
  3. Keep your existing .env, data, and secrets directories.
  4. Rebuild the panel using both Compose files:
docker compose \
  -f compose.yaml \
  -f compose.internal.yaml \
  up -d --build --force-recreate panel

Database migrations are applied automatically during startup.

The included compose.yaml exposes only:

ports:
  - "4173:4173"

Installations using an internal Proxmox address or private CA must continue loading compose.internal.yaml.

Release Asset

nimbus-direct-1.3.0.zip