Zypher Systems ui for proxmox to bring it up to 2026 standards.
  • TypeScript 98.5%
  • CSS 0.6%
  • Dockerfile 0.5%
  • Shell 0.3%
  • JavaScript 0.1%
Find a file
2026-05-03 17:14:06 -04:00
.github/workflows Implemented some fixes around backup restores. 2026-05-03 03:34:36 -04:00
apps Fixed a race condition causng the shell to not connect for the hosts. 2026-05-03 15:06:50 -04:00
docker fixed node.js 17 dns issue 2026-05-03 07:20:42 -04:00
packages/proxmox-types Update layout, added create new vm menu. 2026-05-03 14:13:07 -04:00
patches feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00
screenshots Updated readme and instructions 2026-05-03 17:14:06 -04:00
scripts Unify into single ghcr.io image: root Dockerfile, entrypoint, nginx.single.conf, updated compose + release script 2026-04-03 12:35:31 -04:00
.dockerignore Add Docker deployment: compose file, release script, .dockerignore, README deploy docs 2026-04-03 12:11:41 -04:00
.env.example Updated docker-compose.yml and .env.example for deployment 2026-05-03 16:17:16 -04:00
.gitignore bug and cve fixes 2026-05-03 06:53:06 -04:00
.npmrc feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00
.nvmrc feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00
docker-compose.yml Updated docker-compose.yml and .env.example for deployment 2026-05-03 16:17:16 -04:00
Dockerfile bug and cve fixes 2026-05-03 06:53:06 -04:00
eslint.config.js feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00
package.json Implemented some fixes around backup restores. 2026-05-03 03:34:36 -04:00
pnpm-lock.yaml Update layout, added create new vm menu. 2026-05-03 14:13:07 -04:00
pnpm-workspace.yaml feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00
prettier.config.js feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00
README.md Updated readme and instructions 2026-05-03 17:14:06 -04:00
scratch.mjs Fixed a race condition causng the shell to not connect for the hosts. 2026-05-03 15:06:50 -04:00
test-ws.mjs Fixed a race condition causng the shell to not connect for the hosts. 2026-05-03 15:06:50 -04:00
tsconfig.base.json feat: initial ZypherCenter scaffold 2026-03-30 18:47:31 -04:00

ZypherCenter

ZypherCenter Logo

ZypherCenter A modern, selfhosted web UI for Proxmox VE and related services. It provides a fast, beautiful, and secure replacement for the stock Proxmox interface.


Table of Contents


Overview

ZypherCenter connects to Proxmox clusters via a Fastify proxy backend that performs authentication, session handling, and API proxying the browser never sees raw credentials. The frontend is a React + TypeScript SPA powered by Vite, using TanStack Query for data fetching, Tailwind CSS for styling, Recharts for performance charts, Sonner for toast notifications, and LucideReact for icons.

It is delivered as a single Docker image (or DockerCompose stack), making deployment trivial no separate services, no build tools required on the host.


Core Features

ZypherCenter aims to expose all Proxmox functionality through a clean UI. Below is a concise, yet exhaustive list of the implemented features.

Authentication & Session Management

  • Login page supporting PVE, PBS, and PAM realms.
  • Cookiebased session handling in the Fastify proxy credentials never reach the browser.
  • Automatic redirect to /login on 401 (session expiry).

Dashboard (/)

  • Cluster quorum status badge.
  • Summary stat cards: total nodes, online nodes, running VMs, running LXCs, storage pools.
  • Aggregate resource gauges: CPU, memory, storage.
  • Node grid with pernode health, CPU/memory/rootFS gauges, and 1hour RRD sparkline.
  • Top5 CPU & Memory consumers across the cluster.
  • Recent tasks strip (last 8 tasks) with type, VMID, node, time, status badge.
  • Global command palette (Ctrl+K/⌘K).

Virtual Machines (/vms)

  • Crossnode VM list with sortable columns, filters, and bulk actions.
  • Full Create VM dialog (node, VMID, name, OS type, resources, storage, network).
  • PerVM detail page with ten tabs:
    • Summary live status, gauges, RRD charts, power actions, migrate, clone.
    • Hardware CPU, memory, disks, NICs, PCI/USB passthrough, display, BIOS.
    • Agent guestagent OS info, network interfaces, filesystem usage.
    • Snapshots create, delete, rollback, inline description edit.
    • Options, CloudInit, Tasks, Firewall, Backups, Console.
  • Bulk operations (start, stop, reboot, delete, etc.).

Containers LXC (/lxc)

  • Mirrors the VM experience with a full list, create dialog, and detail page (7 tabs).
  • Supports hardware configuration, snapshots, firewall, backups, and console.

Node Management (/nodes/:node)

  • Node summary with CPU, memory, rootFS gauges, uptime, subscription info.
  • Network interface table, create/edit/delete bridges, bonds, VLANs, OVS.
  • Disks physical disks, SMART viewer, GPT init, wipe.
  • ZFS pool overview, create, scrub, destroy.
  • LVM VG & thinpool management.
  • Firewall, Updates, Services, Syslog, Shell, DNS, Time, Certificates.

Storage (/storage)

  • List of all storage pools with type, content, status, and capacity gauge.
  • Create/Edit/Delete storage supporting every Proxmox storage type.
  • Storage detail view with content tabs (ISO, templates, backups, etc.), upload/download, restore, and prune.

Clusterwide Features

  • Global Tasks unified task view with expandable logs.
  • Resource Pools create, edit, delete, add/remove members.
  • Cluster Options edit global Proxmox options.
  • Backup Jobs schedule, enable/disable, create, edit, delete.
  • Replication Jobs create, edit, toggle.
  • Metrics manage InfluxDB v1/v2 and Graphite metric servers.
  • Notifications SMTP & Gotify endpoints, matchers, severity filtering.
  • ACME Plugins HTTP & DNS challenge plugins (120+ DNS providers).
  • Cluster Firewall rules, security groups, IP sets, aliases, options.
  • SDN VNets, Zones, Subnets with apply workflow.
  • High Availability HA resources & groups with UI for add/edit/delete.
  • Ceph cluster health, OSD tree, pools, monitors, MDS, with full CRUD.
  • Access Management Users, Groups, Roles, ACL, API Tokens, Realms.

Planned / Not Yet Implemented

  • Dark/Light theme toggle, user preferences, custom columns.
  • Keyboard shortcut help modal, realtime SSE event stream.
  • Mobileresponsive layout, breadcrumb navigation, polished confirmation dialogs.
  • Bulk edit of tags, HA fencing, audit logs, help tooltips, etc.

Getting Started

Prerequisites

  • Docker Engine24 (or DockerCompose2.20).
  • Optional for development: Node.js22, pnpm9.
  • Access to a running Proxmox VE (or PBS) cluster.

Quick Deploy Docker (Single Container)

# Run ZypherCenter in a single container
docker run -d \
  -p 80:80 \
  -e PROXMOX_HOST=https://YOUR_PROXMOX_IP:8006 \
  -e PROXMOX_TLS_VERIFY=false \
  -e SESSION_SECRET=$(openssl rand -hex 32) \
  --name zyphercenter \
  --restart unless-stopped \
  codevault.sh/zypher-systems/zyphercenter:${IMAGE_TAG:-v0.7.0}
  • Open http://YOUR_SERVER_IP and log in with your Proxmox credentials.
  1. Download the compose file and env template
    curl -O https://codevault.sh/zypher-systems/ZypherCenter/raw/branch/main/docker-compose.yml
    curl -O https://codevault.sh/zypher-systems/ZypherCenter/raw/branch/main/.env.example
    cp .env.example .env
    
  2. Edit .env at minimum provide the following:
    PROXMOX_HOST=https://YOUR_PROXMOX_IP:8006   # required
    PROXMOX_TLS_VERIFY=false                  # set true for valid certs
    SESSION_SECRET=$(openssl rand -hex 32)    # 32byte cookie secret
    
  3. Start the stack
    docker compose pull
    docker compose up -d
    

Updating ZypherCenter

# Docker run users
docker pull codevault.sh/zypher-systems/zyphercenter:${IMAGE_TAG:-v0.7.0}
docker rm -f zyphercenter && docker run …   # same command as before

# Dockercompose users
docker compose pull && docker compose up -d

Configuration Reference

Variable Default Description
PROXMOX_HOST (empty) URL of the Proxmox API, e.g. https://192.168.1.100:8006.
PROXMOX_TLS_VERIFY false Set true to enforce TLS verification.
SESSION_SECRET (random) Secret for signing cookies at least 32 characters.
COOKIE_SECURE false Set true when serving over HTTPS.
HTTP_PORT 80 Host port for the container (compose only).
LOG_LEVEL info API log verbosity (error, warn, info, debug).
IMAGE_TAG latest Pin a specific image tag when using compose.
IMAGE_REGISTRY codevault.sh/zypher-systems Registry prefix for the Docker image.

Screenshots

ZypherCenter Dashboard

ZypherCenter dashboard after successful deployment.

VM Details View

Example VM details page.


The backend proxy runs at http://localhost:3001 and the UI at http://localhost:5173. CORS is preconfigured for local development.


License

ZypherCenter is licensed under the MIT License. See the LICENSE file for details.


Crafted with ❤️ by the Zypher Systems team.