Skip to content

Changelog

  • Monitoring endpoints admin-only — /api/monitoring/* restricted (was accessible to any authenticated user)
  • System stats filtered for non-admin — only returns own resource counts
  • Terminal blocks viewer role — prevents viewers from getting a shell
  • DB lookup correctness — backup/restore/restic/clone/staging now constrain by site owner + oldest (site_id was not unique, LIMIT 1 could target wrong DB)
  • delete_database hardened — 3-layer fail-safe (wp-config.php → FK linkage → naming convention)
  • WP install_quick permission — db_id requires _can_access_db(write=True)
  • Backup restore uses stored db_name — new backups.db_name column
  • Auto-backup fixed — moved to root crontab (user crontab couldn’t write /var/log)
  • Staging fixed — _find_staging_dbs uses FK + wp-config.php (domain derivation was silently skipping DB sync)
  • Site delete staging DB — uses site_id FK
  • Remote DB password encryption — AES-256-GCM with enc: prefix
  • Robust wp-config.php parsing — catches OSError
  • Independent auto-backup script — iterates active sites, resolves DB via FK + wp-config.php
  • 20+ silent error handlers — service restart, install, backup, clone, restore etc. show alerts on failure
  • Service restart loading state — spinner + success/failure feedback
  • Version check field name fix — frontend was reading latest but API returns stable
  • Version check error display — shows reason for network failures
  • Three-layer selector: installed (read-only) + recommended (grouped) + search (REMI cache)
  • PHP /versions stays @require_auth (non-admin site ops need it)
  • Extension search endpoint admin-only
  • Extension cache fully invalidated after install
  • 9 modules, 32 subcommands
  • Colored output + secure password handling + destructive op confirmations
  • --yes flag for automation
  • Symlink resolution via readlink -f
  • Redis password via temp file (not sudo env)
  • MySQL RPM auto-version adaptation
  • PostgreSQL versioned unit detection (postgresql-{18..14}-server)
  • MariaDB GPG key updated to supplychain.mariadb.com
  • Full MySQL/MariaDB/Percona triple engine support
  • Redis/Valkey dual support end-to-end
  • db-create.sh SQL injection fix (backslash escape)
  • wp-auto-update-check.sh runs as site user + input validation
  • install.sh uses public IP (3-service fallback: ipify / ifconfig.me / icanhazip)
  • 30s TTL + thread lock on detection functions
  • Auto-invalidate on Setup Wizard install + service install complete

  • llstack-ctl Unified CLI — 9 modules, 32 subcommands (site/php/db/redis/wordpress/backup/ssl/user/system), colored output, secure password handling, destructive operation confirmations
  • Post-Setup Service Install — Install additional database engines and Redis after initial setup wizard
  • PHP Extension Management — Install REMI PHP extensions from the panel UI with loading state and error feedback
  • WP Auto-Update Execution — System cron executes updates with pre-backup + auto-rollback on failure + HTTP health check
  • Site Delete Database Option — Optional database deletion when removing a site (confirmation dialog)
  • Redis Delete Dependency Check — Scans wp-content for Redis plugins before deletion, requires confirmation
  • Remote DB Password Encryption — AES-256-GCM encrypted storage (PyCryptodome)
  • Full MySQL/MariaDB/Percona support — unified detection, script engine mapping, three-level CREATE USER fallback
  • Redis/Valkey dual support — CLI, systemd, monitoring, notifications all compatible
  • Optimizer engine-aware — query_cache only for MariaDB, correct service unit for restart
  • MySQL 9.4→9.6, PHP 8.1 EOL, Node.js 20→22 LTS, MariaDB GPG key, PostgreSQL aarch64
  • Terminal blocks viewer role, monitoring admin-only, system stats filtered for non-admin
  • Unified can_access_site() across 7 modules, DB permission cascade via site_id FK
  • Backup schedule admin-only, cron writes ownership-only
  • SQL injection fix in db-create.sh, firewall port protection with range detection
  • Protected system databases, Adminer SSO fail-closed decryption
  • wp-auto-update runs as site user (not root)

  • File Manager Security — file manager restricted to site document root directories only, with symlink escape protection
  • MySQL 9.4 Innovation support added
  • MariaDB, MySQL, and Percona Server are now mutually exclusive (one at a time)
  • PostgreSQL coexists with any MySQL-compatible engine
  • One version per engine enforced

  • Enhanced Setup Wizard — now includes timezone configuration, Swap setup for low-memory servers, ACME email, Panel SSL, and PHP extensions advanced option
  • Mandatory Security Baseline — WP-CLI and automatic security updates (dnf-automatic) are now installed by default during setup

  • Staging Environment — one-click staging site creation with Push/Pull (all/files/database modes), automatic wp search-replace for WordPress domain replacement
  • CDN Integration (Cloudflare) — API Token + Zone ID setup, cache purge, CDN removal
  • Wordfence CVE Database — vulnerability scanning powered by Wordfence Intelligence with CVSS scores, CVE IDs, and severity levels (Critical/High/Medium/Low)
  • Auto-Update Schedule — daily/weekly/monthly auto-updates for WordPress core, plugins, and themes with auto-rollback on failure
  • RBAC Multi-User — 4 roles (Owner/Admin/Developer/Viewer), site-level permissions, plan quotas (max_sites/max_databases/disk_quota)
  • Automated Backup Schedule — configurable frequency (1h/3h/6h/12h/24h) via cron
  • Selective Restore — restore mode: all / files only / database only
  • Redis ACL Management — create and manage Redis ACL users
  • Fixed staging push not replacing serialized URLs in WordPress database
  • Fixed CDN purge timeout on large zones
  • Fixed auto-update rollback not restoring database
  • Fixed RBAC viewer role able to access terminal endpoint

  • Incremental Backup — restic-based with dedup + AES-256 encryption + multi-backend
  • LSCache Configuration — per-site cache enable/disable, TTL, private cache, purge
  • WordPress Security Scan — check plugins/themes for known vulnerabilities
  • disable_functions UI — per-site PHP dangerous function blocking
  • In-app Upgrade — one-click panel upgrade with double confirmation
  • Service Upgrade — MariaDB/PostgreSQL/Redis minor version upgrades
  • Redis Monitoring — memory/connections/hit rate history
  • cgroup Pressure Monitoring — CPU/memory/IO pressure metrics
  • CI/CD — GitHub Actions automated testing
  • Fixed 7 scripts using non-existent lswsctrl configtest
  • Fixed acme.sh path discovery
  • Fixed remote Redis password exposure
  • Fixed PHP install missing php-cli package
  • Fixed WordPress scan only searching /home

  • WordPress Toolkit — 24 endpoints for complete WP management
  • Database Enhancements — import/export/clone/maintenance/Adminer SSO
  • Remote Database Support — connect to cloud MySQL/PostgreSQL/Redis
  • Site Security — per-site phpIniOverride, custom config insertion points
  • SSL Enhancements — per-vhost SNI, force-HTTPS, cert upload
  • Version Check — panel update detection
  • Structured Logging — JSON format + X-Request-ID
  • 12 security review rounds, ~63 fixes

  • Core backend functionality (Phase 1-5)
  • Multi-PHP management (REMI + php-litespeed)
  • Site management + LiteHttpd vhost configuration
  • User management + RBAC
  • File manager, cron jobs, system monitoring
  • React 19 + Radix UI frontend