Releases: eurosatofficial/nimbus-direct
Release list
Nimbus Direct v1.7.4
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 Allowedhandling for non-GET static requests. - Added a clear fallback notice when JavaScript is disabled.
- Removed filesystem paths,
ENOENTdetails, stack information, and operating-system errors from public responses. - Missing files now return a generic
not_foundresponse with a request ID. - Added an RFC 9116-compatible
/.well-known/security.txtsecurity 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.txtpublication 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 panelAfter 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
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 panelYour 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
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
.p8credentials 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 disabledrelay— recommended for the official Nimbus Direct iOS appdirect— 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 panelFor official relay mode, configure:
PUSH_MODE=relay
PUSH_RELAY_URL=https://your-official-relay-address
PUSH_RELAY_TIMEOUT_SECONDS=10Remove 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
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_URLnow 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/privacyPrivacy 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 panelDatabase migrations run automatically during startup.
Notes
- Existing customer assignments, users, API keys, sessions, and configuration remain intact.
PRIVACY_POLICY_URLis 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
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 DirectWEBAUTHN_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.Consoleprivilege - 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 panelVerification
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
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-storeprotection 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 panelCheck 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 panelExisting 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
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.jsonde.jsonfr.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:
- Copying
en.json - Translating its values
- Adding the language to
languages.json - 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 panelNew 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
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
ENorDEin 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 panelThe 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
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
termproxywith 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 GBas 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 panelProxmox 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...
Nimbus Direct v1.3.0
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, andlocal-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=trueWhen 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
- Back up your Nimbus Direct Docker data volume and configuration.
- Extract
nimbus-direct-1.3.0.zipover the existing application files. - Keep your existing
.env,data, andsecretsdirectories. - Rebuild the panel using both Compose files:
docker compose \
-f compose.yaml \
-f compose.internal.yaml \
up -d --build --force-recreate panelDatabase 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