Files
nixpanel/CHANGELOG.md
T

5.4 KiB

Changelog

All notable changes to NixPanel are documented here.
Format follows Keep a Changelog.
Versions follow Semantic Versioning.


Unreleased

Planned

  • DNS zone editor (CRUD records via PowerDNS API)
  • Email account management (Dovecot mailbox provisioning)
  • SSL certificate management (Let's Encrypt via Certbot)
  • File manager
  • MySQL/MariaDB database manager (per-account)
  • WordPress one-click installer
  • Backup / restore system
  • Firewall rule editor (CSF/iptables)
  • Multi-server support (Agency plan)
  • NixClient pages: domains, email, databases, FTP, security, stats

0.2.0-alpha — 2026-04-25

Added

  • Rust backend — Cargo workspace with independently compiled + UPX-compressed section executables
    • nixpanel-common — shared SectionRequest / SectionResponse IPC types
    • nixpanel-api — main Axum HTTP server on port 4000
      • POST /api/auth/login — Argon2id password verification, HS256 JWT (8-hour expiry)
      • GET /api/dashboard — real account/domain/database/email counts + system stats
      • GET /api/services — live service status via systemctl
      • POST /api/services/:name/:action — start / stop / restart any managed service
      • GET /api/accounts — list hosting accounts from MariaDB
      • POST /api/accounts — create account (system user, home dir, DB record)
      • Auto-runs DB schema migrations on first start
      • Seeds admin user from /opt/nixpanel/.admin_user + .admin_pass on first run
    • nixpanel-services — section binary; reads JSON from stdin, calls systemctl, writes JSON to stdout
      • Actions: list, start, stop, restart, reload
      • Reports PID and uptime per service
    • nixpanel-sysinfo — section binary; reads /proc/meminfo, /proc/stat, /proc/loadavg, df
      • Actions: stats (CPU, RAM, disk, load, hostname, IP, OS, kernel), versions (Apache, PHP, MariaDB)
  • Database schema (nixpanel-api/migrations/0001_initial.sql)
    • Tables: users, accounts, domains, dns_records, account_databases, email_accounts, ftp_accounts, ssl_certificates, backups
  • Frontend API clients (nixserver/src/api.ts, nixclient/src/api.ts)
    • JWT stored in localStorage, included in all requests as Authorization: Bearer
    • Auto-clears token and reloads on 401

Changed

  • NixServer UI — full redesign matching WHM visual style
    • Dark navy / orange-accent theme
    • Collapsible sidebar with grouped navigation sections
    • Dashboard: live stat bar, server info bar, service manager table, quick-action icon grid
    • List Accounts: real data table with search/filter
    • Create Account: full form wired to API (creates system user, DB record)
    • Login: real JWT auth; session persists across refresh via localStorage
  • NixClient UI — full redesign matching cPanel visual style
    • Blue-accent theme
    • Feature icon grid grouped by category with live search
    • Account sidebar with usage bars
    • Login: real JWT auth
  • Installer (install.sh)
    • Rust build step now copies all nixpanel-* section binaries to /opt/nixpanel/bin/
    • Installs UPX and compresses each binary after build
    • Admin credentials auto-generated with openssl rand (no TTY prompts)
    • Node.js 20 LTS installed as its own idempotent step (nodejs.done)
    • NixClient build uses absolute path to avoid wrong-directory check
    • npm output visible during build (removed --silent) for easier debugging
  • Vite configs — added /api proxy to localhost:4000 for local development
  • Minifier — switched both UIs from terser (not installed) to esbuild

Fixed

  • Login inputs changed from type="email" to type="text" with "Username" label
  • sqlx::query!() macros replaced with non-macro query() / query_as() / query_scalar() so the binary compiles without a live database connection
  • Removed axum_extra import that was never added to Cargo.toml
  • Git clone always removes stale $SRC_DIR before cloning (fixes "couldn't find remote ref master" on re-run)

0.1.0-alpha — 2025-04-25

Added

  • Installer (install.sh) — fully automated Ubuntu 24.04 installer
    • Self-updating: always fetches the latest version from GitHub before running
    • Idempotent step tracking — re-runnable after failures without redoing completed steps
    • Installs Apache 2, PHP 8.2 + 8.3 (via ondrej/php PPA), MariaDB, PowerDNS, Exim 4, Dovecot, SpamAssassin, Fail2ban, Certbot
    • Configures Apache reverse proxy on ports 2083 (NixClient) and 2087 (NixServer)
    • Generates admin credentials automatically; displays them in the completion banner
    • License activation against https://license.nixpanel.io
  • NixServer — WHM-style admin panel (React 18 + TypeScript + Tailwind + Vite, port 2087)
  • NixClient — cPanel-style user panel (React 18 + TypeScript + Tailwind + Vite, port 2083)
  • Licensing — license key validated against https://license.nixpanel.io during install
    • Plans: Free, Solo ($9.99/mo), Host ($29.99/mo), Agency ($79.99/mo)
  • Infrastructure — .gitattributes enforcing LF line endings