Repository navigation
Releases: upcode-oss/Harbor
Release list
v0.7.0 - Secure Operations & Recoverable Deployment
Release Date: 2026-08-06
What's New in Upcode Harbor v0.7.0
Upcode Harbor 0.7.0 is a major operational and security release. It introduces a
fixed privilege boundary, immutable signed updates, recoverable installation,
Linux/PAM-only login, durable background jobs, authenticated cluster transport,
validated App Store templates, and safer network and reverse-proxy management.
Highlights
Upcode Harbor Name
- Version 0.7.0 is the first release under the Upcode Harbor name. The new
name is used throughout the UI, installer, API metadata, CLI output, logs,
documentation, and release communication. - The technical namespace is renamed completely: source directories, systemd
units, service accounts, PAM, filesystem paths, helper binaries, the CLI,
UPCODE_HARBOR_*variables, manifests, and artifacts all use the new name.
No compatibility aliases are installed.
Recoverable Installation and Signed Updates
- Releases are installed as immutable, root-owned directories below
/opt/upcode-harbor/releasesand activated through the atomic
/opt/upcode-harbor/currentsymlink. - API, frontend, job worker, health monitoring, and update execution now run in
separate systemd services with dedicated service identities. - The update path accepts only a versioned archive with a matching SHA-256 file
and detached signature. Configuration is backed up before activation and a
failed readiness check switches back to the previous release. install.sh --resumefinishes an interrupted installation without replacing
the release, whileinstall.sh --reinstallmoves a broken installation into
a mode-0700recovery directory before installing cleanly.- Fresh interactive installations provide a Space-toggle checklist for Docker,
K3s, LXC/LXD, and ZFS. OpenSSH is always installed and enabled; automation
profiles and individual--with-*flags remain available. - Installation is keyless by default. Node-local TLS, encryption, session, and
cluster key material is generated automatically. Signed updates are enabled
only when the external release public key is supplied.
Linux Accounts, Sessions, and Permissions
- Upcode Harbor no longer creates application login accounts. Existing Linux users
authenticate through/etc/pam.d/upcode-harborusing a root-owned, allowlisted PAM
broker that receives the password only through standard input. - Browser sessions are signed, expiring, and revocable through hashed
server-side session records. Password changes and relevant 2FA operations
revoke affected sessions. - Named API tokens replace the legacy plaintext global key. Tokens support
admin, operator, and read-only roles, scoped actions, expiry, one-time
plaintext display, and immediate revocation. - Authorization is deny-by-default: every HTTP method and route has an explicit
action. Linux groups, API tokens, and cluster principals have separate
permission paths, and unknown routes fail closed even for administrators. - Configuration and secret files use owner-only atomic persistence and reject
unsafe symlink components.
Authenticated Cluster Transport
- Node-to-node traffic uses a dedicated TLS listener on port 9501 instead of
sharing the browser/API transport. - Cluster requests carry HMAC-SHA256 signatures over peer identity, key ID,
timestamp, nonce, method, target, and body digest. - Persistent replay protection, bounded clock skew, peer identity checks, and
pinned node CA trust protect internal routes. - Browser sessions and API tokens, including admin tokens, cannot call internal
cluster routes.
Durable Jobs, Backups, and Operations
- Backups, replications, exports, security scans, upgrades, and updates run
through a durable SQLite job queue outside HTTP worker processes. - The persistent worker provides transactional claims, progress and heartbeat
updates, timeouts, cancellation, retry, process-group termination, and
interrupted-job recovery. - Backup configuration, execution, verification, restore, retention,
scheduling, remote targets, and SSH key operations now use explicit API
models and generated OpenAPI client contracts. - Locked Python/npm dependencies and expanded CI gates cover backend and CLI
tests, route permissions, generated contracts, App Store validation, shell
syntax, frontend lint, and the production build.
Validated App Store
- All 62 bundled templates use manifest schema version 1 and intentional image
versions instead of floating release tags. - Template validation checks JSON Schema, rendered Docker Compose structure,
required variables, generated secrets, unsafe credentials, image tags,
managed paths, and port declarations. - Mutable templates, Compose projects, and application data live below
/var/lib/upcode-harborrather than inside immutable releases.
Network, Reverse Proxy, and UI Improvements
- Reverse Proxy & SSL and VPN management now live in the Network module.
- Every managed proxy entry has an Advanced Settings editor for its Nginx site
configuration. Only Linux administrators may use it; API tokens and cluster
principals are denied. - Advanced Nginx changes are UTF-8 and size validated, written atomically,
checked withnginx -t, and rolled back when validation or reload fails. - VM-network command failures now return actionable responses and use dedicated
permission actions. - System and container terminals support automatic fitting and live PTY resize;
shell working-directory/environment behavior and log presentation were also
improved. - Proxy deletion now reports successful removal correctly instead of displaying
Failed to delete: undefined.
Upgrade Notes
-
Version 0.7.0 is a clean-install boundary. Its complete technical rename
is intentionally incompatible with the 0.6.x deployment namespace and
updater. Back up any existing host separately, stop its services, and deploy
0.7.0 from a clean checkout or on a clean host. No automatic in-place state
migration is provided. -
Signed updates start with the new deployment contract. After 0.7.0 is
installed with its release public key, stage future root-owned update files
under/var/lib/upcode-harbor/updates/VERSION/using these names:upcode-harbor-VERSION.tar.gzupcode-harbor-VERSION.sha256upcode-harbor-VERSION.sig
Then write
VERSIONto/var/lib/upcode-harbor/updates/latestand start the
update through Settings orsudo ./update.sh VERSION. -
Recover a broken 0.7.0 installation with
--reinstall. Run
sudo ./install.sh --reinstallfrom a separate 0.7.0 source checkout. The
current Upcode Harbor release, configuration, state, logs, and system files
are moved below/var/backups/upcode-harbor/before a clean installation. -
Login uses Linux accounts only. Ensure the intended Linux administrator
belongs tosudoorwheeland has an unlocked PAM password. An account
configured exclusively for SSH-key login needs a Linux password before it
can use the web login. -
Use the printed HTTPS URL. Ports 9200 and 9500 are loopback-only
upstreams. Remote browser access terminates at nginx on port 443. The
automatically generated certificate may require initial browser approval. -
Legacy API keys migrate automatically to a hashed, revocable admin token
and are removed fromsettings.json. Create narrower scoped tokens for new
automation. -
Upgrade cluster nodes as one maintenance operation. Verify peer
certificates and connectivity on port 9501 after the update. The custom HA
implementation does not provide quorum fencing/STONITH and should not be
treated as a complete split-brain guarantee. -
No manual database migration is required. Persistent job and backup
schemas are initialized or upgraded automatically. The updater creates a
configuration backup before switching releases. -
Optional host components are installation choices. A signed application
update does not install Docker, K3s, LXC/LXD, libvirt, or ZFS packages that
were not selected during host installation. -
Update webhook receivers for the new brand header. Configured webhook
secrets are sent asX-Upcode-Harbor-Secret, and the user agent is
Upcode Harbor/1.0.
Release Artifact
The signed release bundle must be created outside the repository with the
offline private key:
deploy/build-release-artifact 0.7.0 /secure/release-private.pem /tmp/upcode-harbor-0.7.0The private key is intentionally not part of the source tree. The resulting
archive contains .upcode-harbor-release.json with format 1 and version 0.7.0;
the updater rejects artifacts whose manifest, checksum, or signature does not
match.
v0.6.0 - Cluster HA & UX Improvements
Release Date: 2026-06-06
What's New in UpservX v0.6.0
This release focuses on cluster reliability and usability. High Availability coordination has been tightened across nodes, child nodes now see the full cluster state from the master, and the cluster management UI was aligned with the rest of the application for a more consistent full-width tab layout.
Highlights
High Availability Improvements
-
Cross-node VIP ownership propagation
- New inter-node endpoint
POST /cluster/ha/vip-owner-updatedistributes the active VIP owner state across the cluster - Cluster status now exposes
vip_owner_hostname,vip_owner_ipand the active HA interface for better diagnostics
- New inter-node endpoint
-
Safer VIP placement
- VIPs are now assigned directly on the configured physical interface instead of a dedicated dummy interface
- This avoids routing inconsistencies and LAN reachability issues during failover
-
Local HA config boundaries
- Node-local HA settings are no longer synchronized between nodes
GET /cluster/ha/confignow only returns shareable HA settings for cluster sync
Cluster Visibility & Management
-
Full cluster view on child nodes
- Child nodes now load the complete cluster view from the master instead of building a reduced local view
- Secondary nodes now display the same membership list as the master
-
More robust node removal
- Node removal now resolves targets reliably by stored hostname, original hostname, assigned hostname or IP address
- Force-leave cleanup is now best-effort and non-blocking when a child node is offline
UI Consistency
-
HA settings safeguards
- HA configuration inputs are locked while HA is enabled to prevent live edits of active failover settings
-
Cluster UI polish
- Remaining HA and cluster-adjacent labels were standardized to English
- Cluster module tabs now span the full page width like the other administration modules
Upgrade Notes
- No database migration required for this release.
- Review local HA interface and VIP settings after upgrading if you previously relied on dummy-interface based VIP placement.
- No additional dependency installation steps are required beyond the usual application update process.
Release v0.5.2 - Security Patch
Release Date: 2026-05-19
What's New in UpservX v0.5.2
This is a security patch release addressing multiple vulnerabilities in third-party dependencies across the frontend (Next.js, PostCSS) and backend (python-multipart, python-dotenv, paramiko, pytest).
Highlights
Dependency Security Updates (Frontend)
-
Next.js updated from
16.1.6to16.2.6- Fixes SSRF vulnerability in applications using WebSocket upgrades (High)
- Fixes Middleware / Proxy bypass via dynamic route parameter injection (High)
- Fixes Denial of Service via connection exhaustion with Cache Components (High)
- Fixes Middleware / Proxy bypass in Pages Router applications using i18n (High)
- Fixes Middleware / Proxy bypass in App Router via segment-prefetch routes (High, including incomplete fix follow-up)
- Fixes Denial of Service with Server Components (High)
- Fixes cross-site scripting in
beforeInteractivescripts with untrusted input (Moderate) - Fixes Denial of Service in the Image Optimization API (Moderate)
- Fixes cache poisoning in React Server Component responses (Moderate)
- Fixes cross-site scripting in App Router applications using CSP nonces (Moderate)
- Fixes cache poisoning via collisions in React Server Component cache-busting (Low)
- Fixes Middleware / Proxy redirect cache poisoning (Low)
-
PostCSS forced to
8.5.15via npmoverrides- Fixes XSS via unescaped
</style>in CSS Stringify output (Moderate)
- Fixes XSS via unescaped
Dependency Security Updates (Backend)
-
python-multipart updated from
0.0.22to0.0.29- Fixes Denial of Service via unbounded multipart part headers (High)
- Fixes Denial of Service via large multipart preamble or epilogue data (Moderate)
-
python-dotenv updated from
1.0.1to1.2.2- Fixes symlink following in
set_keyallowing arbitrary file overwrite via cross-device rename fallback (Moderate)
- Fixes symlink following in
-
paramiko updated from
3.5.0to5.0.0- Fixes
rsakey.pyallowing the SHA-1 algorithm (Low)
- Fixes
-
pytest updated from
8.3.4to9.0.3- Fixes vulnerable tmpdir handling (Moderate)
-
pytest-asyncio updated from
0.25.2to1.3.0- Required to maintain compatibility with pytest 9.x
Upgrade Notes
- No database migration required for this release.
- No configuration changes required.
- After pulling, run
npm installinupservx/andpip install -r requirements.txtinupservx-service/to apply updated dependencies.
Release v0.5.1 - Auth & Activity Reliability
Release Date: 2026-05-12
What's New in UpservX v0.5.1
This maintenance release focuses on security hardening, activity visibility, and operational reliability. Authentication was migrated away from persisted Basic credentials to signed expiring session tokens, activity/status tracking was expanded in the sidebar, and several polling and auth edge cases were fixed.
Highlights
Secure Session Authentication
- Added signed session tokens via
lib/session_tokens.py(HMAC-SHA256) - Session tokens carry expiry and are validated by middleware
- Login and 2FA completion now return
session_tokenand set cookie-based session state - Cookie fallback is treated as Bearer token in middleware
CLI Auth Modernization
- CLI login now uses
POST /auth/login - CLI stores
username+ sessiontoken(no persisted Basic credentials) - CLI API client now uses Bearer token model
Activity & Progress UX Improvements
- New sidebar activity bell above theme switcher
- Activity overlay expanded and layered above other UI
- Activity feed filtered to notification-eligible events only
- Added status timeline for latest backup/replication state changes
- Running items show progress bars; completed/failed items are retained in recent list
- Recent status list no longer clears on transient fetch errors
- Progress polling for activity/status endpoints standardized to 10 seconds
- Completed/failed backup and replication jobs are no longer polled continuously
VPN Settings Path Standardization
- OpenVPN profiles are now stored and read from
/etc/upservx/vpnonly - Legacy handler-local VPN path usage removed
- Docs updated to point to
handlers/settings.pyand/etc/upservx/vpn
Frontend Auth Conflict Fix
- Removed browser-stored Authorization header injection from
getAuthHeaders() - Prevents stale token override of valid session-cookie auth
- Fixes intermittent 401 responses on endpoints such as
/vm-networksand/metrics
Upgrade Notes
- Existing users should log in again once after upgrade so all clients use the new session-token flow.
- If browser sessions behave inconsistently after upgrade, perform one fresh login to refresh cookie/session state.
- No database migration required for this release.
Release v0.5.0 - Security Module 🔐
Release Date: 2026-05-03
🎉 What's New in UpservX v0.5.0
This release introduces the Security Module — a dedicated administration area giving server operators a unified view of their system's security posture. Five features are bundled in a single tabbed interface accessible to admin-group users: Fail2Ban management, package upgrade tracking, SSL/TLS certificate inspection, open port scanning and CVE vulnerability scanning via the OSV.dev database.
✨ Highlights
🛡️ Fail2Ban Management
- View all configured jails with banned IP counts and total failed attempts
- List all currently banned IPs per jail
- Unban individual IPs directly from the dashboard
📦 Package Upgrade Tracker
- Discover all upgradeable packages (Debian/Ubuntu) at a glance
- Filter to security-only updates
- Upgrade all packages or a single package with one click
🔏 SSL/TLS Certificate Inspector
- Automatic scan of common certificate locations (
/etc/ssl/,/etc/letsencrypt/,/etc/nginx/, etc.) - Status badges: VALID / EXPIRING SOON (< 30 days) / EXPIRED
- Filter by status and sort by days remaining
🌐 Open Port Scanner
- See every listening port on the system (TCP + UDP)
- Filter by protocol and by public vs. loopback address
🐛 CVE Vulnerability Scanner
- Batch-query installed packages against the OSV.dev vulnerability database
- CVSS scores (V2/V3/V4), severity filter and advisory links
- Manual scan trigger — no background polling
📄 Full Release Notes
See releases/0.5.0.md for complete details including all API changes and upgrade notes.
Hotfix: Updated node modules and pip packages
0.4.1 fix: update requests dependency to version 2.33.0
Release v0.4.0 - VM Network Isolation & VLAN Support 🌐
Release Date: 2026-04-04
🎉 What's New in UpservX v0.4.0
This release extends the virtual machine networking stack with two new capabilities: VLAN tagging for bridge-mode interfaces and full lifecycle management of isolated internal libvirt networks — enabling air-gapped VM communication with no IP configuration on the host side.
✨ Highlights
🔖 VLAN Support for VMs
- Bridge-mode VM interfaces now support optional VLAN tagging (802.1Q)
- Specify a VLAN ID (1–4094) when creating, editing or importing a VM
- A tagged sub-interface (e.g.
eth0.100) is created automatically on the host if it does not yet exist - VLAN ID stored in the VM registry and restored on edit
🔒 Internal VM Networks
- New Internal Network mode alongside NAT, Bridge and None
- Create isolated L2 libvirt networks with a name — no subnet, no DHCP, no host routing
- All IP addressing happens inside the VMs themselves; the host gains no route
- Full network lifecycle: create, start, stop and delete via the new Manage Networks dialog in the VM dashboard
- Network state (active / inactive) shown in the networks table with one-click start/stop toggles
- New API endpoints:
GET /vm-networks,POST /vm-networks,DELETE /vm-networks/{name},POST /vm-networks/{name}/start,POST /vm-networks/{name}/stop
🖥️ CLI Version Bump
upservxCLI updated to v0.4.0- All existing commands remain unchanged:
auth,service,containers,system,apps,backup,logs
📄 Full Release Notes
See releases/0.4.0.md for complete details including all API changes and upgrade notes.
Release v0.3.0 - RBAC, VM Portability & App Store Expansion 🔐
🎉 What's New in UpservX v0.3.0
This release is the biggest security and feature update since the initial launch. The authentication layer has been fully rewritten around HttpOnly session cookies and Linux-group-based access control, VMs can now be exported and imported as industry-standard OVA/OVF packages, the App Store grows by 19 new one-click templates, and the UI receives a full customization system together with a polished light/dark/system theme toggle.
✨ New Features
🔐 Group-based Access Control (RBAC)
Every API request is now checked against the authenticated user's Linux groups. Users only see and can access what their groups explicitly permit — no more all-or-nothing admin access.
| Linux Group | Access granted |
|---|---|
sudo / wheel |
Full administrator (all endpoints) |
docker |
Container management, Docker images, App Store |
lxd / lxc |
LXC container management, LXC images |
libvirt / kvm |
Virtual machine management, ISO management |
disk / storage |
Physical storage management |
tty |
System shell access |
adm / log |
Log viewer access |
- API keys and cluster tokens retain implicit full-admin rights
- The sidebar dynamically hides items the current user has no permission for
- New
GET /auth/meendpoint returns username, Linux groups and a structuredpermissionsobject - New
GET /infoendpoint exposes the server hostname without requiring admin access
🍪 Session-Cookie Authentication
The auth token has been moved out of localStorage and into an HttpOnly SameSite=Lax cookie, eliminating the entire class of XSS token-theft attacks.
POST /auth/loginissues the session cookie;POST /auth/logoutdeletes it server-side- All frontend
fetchcalls usecredentials: "include"— no more manualAuthorizationheaders - Session is validated on page load via
/auth/me; sidebar does not render until permissions are resolved (no flash of wrong content) - Removed hardcoded
admin:adminBasic-auth fallback fromapi.ts
📦 VM OVA/OVF Export
Virtual machines can now be exported as portable, standards-compliant OVA or OVF packages and imported into any compatible hypervisor (VMware, VirtualBox, Proxmox, etc.).
Export (POST /vms/{name}/export):
- Accepts
{ "format": "ova" | "ovf" } - Converts disks from qcow2 to VMDK (
streamOptimized) viaqemu-img - Builds a standards-compliant OVF 1.0 descriptor with CPU, RAM, network and disk mappings
- SHA-256 manifest file (
.mf) generated and included automatically - OVA → single TAR archive; OVF → named directory under
/etc/upservx/exports/ - VM must be stopped before export — running VMs are rejected with a clear error
Import (POST /vms/import):
- Accepts multipart upload (
.ova/.ovf) plusname,network_mode,bridge_interface,autostart,storage_path - OVA archives extracted with path-traversal protection; OVF directories read directly
- VMDK disks converted to qcow2 via
qemu-img convertwith auto-detected source format - VM registered with libvirt via
virt-install --importand added to the UpservX registry - Export ↓ and Import buttons added to the Virtual Machines UI (Grid + List views)
🛒 App Store — 19 New Templates
The App Store now ships with 19 additional pre-configured one-click applications:
Networking
- RustDesk – Self-hosted remote desktop relay and ID server (
hbbs+hbbr) - Apache Guacamole – Clientless browser-based RDP/VNC/SSH gateway
- Traefik – Modern reverse proxy with automatic Docker service discovery and Let's Encrypt SSL
Development
- Harbor – Enterprise container image registry with RBAC and Trivy vulnerability scanning
- GitLab – Complete DevSecOps platform with CI/CD pipelines and container registry
- Docker Registry – Lightweight private registry with web UI
Security
- Keycloak – Identity and Access Management; SSO, OIDC/OAuth 2.0/SAML 2.0
- OpenLDAP – Centralised LDAP directory with phpLDAPadmin web UI
Productivity
- ONLYOFFICE Community Edition – Full office suite (DocumentServer, CommunityServer, MailServer)
- Roundcube – Browser-based IMAP webmail client
Monitoring
- Loki – Horizontally scalable log aggregation by Grafana Labs
- MotionEye – Web frontend for the motion daemon; supports USB cameras and IP streams
Other / Data
- Apache Kafka – Distributed event streaming platform in KRaft mode with Kafka UI
- Elasticsearch – Search and analytics engine (v8.17.0) with Kibana
- Mailcow – Complete self-hosted mail server suite (17 containers)
- Neo4j – Graph database (v5) with APOC plugin and Browser UI
- RabbitMQ – Message broker with Management UI
- OctoPrint – Web interface for 3D printers with USB and webcam support
- Tunarr – Virtual live TV channels from Plex/Jellyfin/Emby libraries
📄 App Store Pagination
- Configurable page size: 10, 20, 30 or 50 apps per page (default: 20)
- Numbered page buttons with
...ellipsis, Prev/Next navigation - App count ("X Apps gefunden") and page indicator ("Seite X von Y")
- Automatically resets to page 1 on search, category or page-size change
🎨 Application Customization
Admins can now brand the login screen and dashboard without touching any code.
- Login Banner Text: configurable title and subtitle on the login page left panel
- Custom Logo: upload PNG/JPG/SVG/GIF/WebP — replaces the default logo on the login page and in the sidebar
- Custom Banner Image: upload a background image for the login page left panel
- Image previews displayed in the Settings UI; files can be removed to revert to defaults
- Files stored in
/etc/upservx/customization/; text config inconfig.json - All
GETcustomization endpoints are public (no auth required) so the login page can load them before a session exists
🖥️ UI Improvements
- Theme toggle in sidebar: Light/Dark toggle switch + System mode button, placed directly above the user profile row — the top-right header toggle has been removed
- Header removed: the now-empty top bar has been removed entirely, giving content more vertical space
- Logout icon: the logout button is now a compact icon to the right of the username
- Light mode fixes: tabs now have a visible grey background (
slate-200); outline and link button variants usetext-foregroundin light mode instead of hardcodedtext-white - Active sidebar item: removed the white dot indicator from selected navigation items
⚙️ API Changes
New endpoints:
| Method | Path | Description |
|---|---|---|
GET |
/auth/me |
Returns username, groups and permissions |
POST |
/auth/logout |
Deletes the session cookie server-side |
GET |
/info |
Returns server hostname (no admin required) |
POST |
/vms/{name}/export |
Export VM as OVA or OVF |
GET |
/vms/exports/{filename} |
Download exported VM archive |
POST |
/vms/import |
Import VM from OVA or OVF upload |
GET |
/settings/customization |
Get customization config |
POST |
/settings/customization |
Save banner text config |
POST |
/settings/customization/logo |
Upload custom logo |
DELETE |
/settings/customization/logo |
Remove custom logo |
GET |
/settings/customization/logo/file |
Serve custom logo file |
POST |
/settings/customization/banner |
Upload custom banner image |
DELETE |
/settings/customization/banner |
Remove custom banner |
GET |
/settings/customization/banner/file |
Serve custom banner file |
Changed:
- Auth middleware resolves Linux groups and enforces
check_path_permission()on every request - System shell WebSocket now uses
has_shell_access()instead ofis_admin()—ttygroup members can access the shell getAuthHeaders()/getJsonHeaders()no longer injectAuthorizationheaders; auth is handled via session cookie
Security:
- HTTP 403 returned for any path the caller's Linux groups do not cover
admin:adminBasic-auth fallback permanently removed- Session token stored in
HttpOnlycookie — not accessible to JavaScript
📦 Upgrade Notes
On first start after updating, the backend will automatically resolve the groups of authenticated users on every request — no database migration or manual step required.
Action required for multi-user setups: Ensure each user that needs access is in the appropriate Linux group (e.g. docker, libvirt, tty) before updating. Users not in any recognised group will receive HTTP 403 on all protected endpoints after the update.
The localStorage-based token is no longer used. Existing sessions will be invalidated on upgrade — users will need to log in once after the update.
Release v0.2.0 - Notifications, Activity Logging & Cluster Replication 🔔
Release Date: 2026-03-01
🎉 What's New in UpservX v0.2.0
This release focuses on observability, alerting and cluster operations. Every important action on your node is now logged to a structured activity log, critical events trigger instant push notifications via Email or Webhook (Discord, Slack, custom), and the cluster now supports full container and VM replication between nodes.
✨ Highlights
🔔 Notification System
- Email (SMTP) and Webhook (Discord / Slack / custom) push notifications
- Node hostname included in every message — useful in multi-node setups
- 12 per-event toggles: Container create/start/stop/crash/delete, VM create/start/stop/delete, Backup success/failure, System alert
- Rich context per event (image, ports, CPU, memory, backup size/path, error messages)
- New Notifications tab in Settings UI
📋 Structured Activity Logging
- All service modules write to
/var/log/upservx/activity.log - Consistent
YYYY-MM-DD HH:MM:SS [TAG] Messageformat with INFO / ERROR levels - 174 cluster
print()calls now dual-write via_clog()helper
🔁 Cluster Replication
- Replicate Docker containers and KVM VMs between nodes from the Cluster UI
- Full export/import including volumes, disk images, port mappings and environment variables
- Manual trigger per replication entry
🗄️ Persistent Storage Mounts
- Drives mounted via UI are persisted to
/etc/fstabwith UUID-based identification - Automatic fstab cleanup on unmount, backup before every modification
🔒 12 Security Fixes
WebSocket shell auth, debug endpoint removal, path traversal (ISO, tarfile, SSH keys), SSRF, exception leak, rate limiting, input validation, shell allowlist, logout bug.
📄 Full Release Notes
See releases/0.2.0.md for complete details including all API changes and upgrade notes.
Release v0.1.0 - Initial Pre-Release 🚀
🎉 What's New in UpservX v0.1.0
UpservX is a comprehensive web-based server management platform that simplifies managing your server infrastructure with a modern, user-friendly interface.
✨ Key Features
📦 Container & VM Management
- Full container lifecycle management
- Real-time logs and monitoring
- Image management and registry integration
- VM management with VNC support
🏪 Integrated App Store
Over 25 pre-configured application templates for quick deployments:
- CMS & Web: WordPress, TYPO3, Nextcloud, Jitsi
- Media: Jellyfin, Emby, Plex, Ombi
- Development: Gitea, n8n, Jenkins, Jupyter
- Databases: MySQL, PostgreSQL, MongoDB, InfluxDB, Redis
- Monitoring: Grafana, Prometheus, Uptime Kuma
- Network: Nginx Proxy Manager, Pi-hole, TeamSpeak
- Security: Vaultwarden, Paperless-ngx
💾 Automated Backup System
- Scheduled backups with Cron
- Local and SSH remote storage
- Encryption and compression
- Recovery functions
👥 User & Group Management
- System user management
- SSH key management
- Permissions and access control
🌐 Network Management
- Network interface configuration
- IP address management
- Firewall rules
🛠️ System Services
- SystemD service management
- Service monitoring and control
📊 System Monitoring
- Real-time metrics (CPU, RAM, Disk, Network)
- Resource monitoring
- Performance analysis
🗄️ Storage Management
- Disk management
- ZFS pool support
- Mount point configuration