0
Documentation / Server Administration

Server Administration

Luminal CMS includes enterprise-grade server management tools: domains, SSL, backups, automated updates, distribution-aware multi-site deployment, firewall/threat detection, and fleet-wide compliance reporting.

Domains Manager

Manage Apache virtual hosts and SSL certificates from the admin panel.

Adding a Domain

  1. Open Domains Manager from the Server Tools section.
  2. Click Add Domain.
  3. Enter the domain name.
  4. The system creates the Apache vhost config, log directories, and site document root.

SSL Certificates

  1. Click SSL on the domain row.
  2. The SSL modal shows available subdomains with DNS status.
  3. Select which subdomains to include (subdomains without DNS are auto-excluded).
  4. Click Install SSL to run Let’s Encrypt certbot.

Tip: Smart subdomain probing checks DNS for each subdomain before adding it to the certbot command, preventing failures when www or other subdomains are not configured.

Backup System

Luminal has three backup layers:

Per-Site Backups (ServerBackupsManager)

  • Create backups of individual sites (app, data, and/or media).
  • Download backups from the admin panel.
  • Restore from backup snapshots.
  • Stored in /var/www/backups/{domain}/ locally and streamed to Google Drive.

Automated Fleet Backups

  • Daily cron: smart-backup.sh (3am) + daily-data-backup.sh (3:30am) — per-site data snapshots to Google Drive.
  • Sun/Wed 5am: full-snapshot-all.sh — full site tarballs (app + data + media).
  • Retention: LIVE → 7-DAY at 7 days → hard-delete at 14 days. 30-DAY tier retired 2026-04-22.
  • PHP BackupEngine (2026-04-22, staged): every upload post-verified via rclone lsjson (filename + size match). Structured JSON reports at /var/www/DEPLOY/logs/backup-reports/{date}.json. Telegram alerts on mismatch. 48-hour validation in progress before crontab swap.
  • Media is included in full-snapshot runs (Sun/Wed); daily runs are data-only.

Rollback Snapshots

Before each deployment push, a rollback snapshot is written to /var/www/DEPLOY/snapshots/. Up to 10 retained. Use rollback.sh to restore.

Cron Manager

Manage automated schedules for updates and backups:

  • Update cron — when each site checks for CMS updates.
  • Backup cron — daily system backup schedule.
  • Stagger sites by configurable minutes to avoid load spikes.
  • Backup scoreboard — tier cards show file counts, sizes, and domain breakdown.
  • Per-site storage cards show backup count, total size, and tier badges.
  • Backup warning widget — admin rail shows a red pulsing indicator if disk space is low or the last backup run failed.

Update Manager + Enforcement

Each site has a built-in update + enforcement system:

  • Checks for new versions on the configured deploy server.
  • Pulls updates when a newer version is available.
  • Configurable: enable/disable, check interval, auto-update toggle.
  • Enforcement: compares installed modules against the tier manifest and distributions.json extension overrides. Unauthorized modules are quarantined to admin/quarantine/YYYY-MM-DD/{Module}/. Reports back to hub via enforcement_report.
  • Configuration in admin/data/update-config.json. Version tracking in admin/data/cms-version.json.

Distribution-Aware Fleet Deploy

Two deploy drivers:

safe-deploy.sh (legacy, still primary)

Tier-based, hardcoded. Pushes to every site in the fleet. Still the driver called by quick-deploy.sh.

deploy-sites.sh (new, 2026-04-23)

Distribution-aware. Reads each site’s distribution from site_registry.jsondistributions.jsonresolve-site-modules.php. Three rsync passes per site: CORE + allowed MODULES + applicable VERTICALS.

deploy-sites.sh --plan DOMAIN       # see plan
deploy-sites.sh --site DOMAIN --commit
deploy-sites.sh --commit            # full fleet

In 48h validation period. Current routing: 34 base, 5 covermysong, 3 music_community, 2 server_spoke, 2 cpanel_sites, 1 financial_platform, 1 trading_cards, 1 pinnacle.

VERTICALS tree

Vertical-specific frontend code (music-agency /pro/, brightborn-arena /member/ + crons) lives at /var/www/DEPLOY/SRC/VERTICALS/ since 2026-04-23. deploy-sites.sh pushes each vertical subtree only to sites with a matching distribution. This prevents the per-site-code problem that caused MarketAnalyst to silently vanish in April.

Farmout Manager

The original hub-and-spoke deploy UI. Still the admin-facing tool for single-site pushes, rollbacks, profile management, and extension overrides. Its resolver is now supplemented by a CLI resolver at /var/www/DEPLOY/scripts/resolve-site-modules.php which the shell tools use.

Important: Deployments only ADD and UPDATE files. They never delete. Module removal requires manual rm -rf on all sites (or use the enforcement engine to quarantine).

Server Sentinel

Unified firewall (UFW) + threat detection (Fail2Ban + custom scanner) for all fleet servers.

  • UFW rule CRUD + dry-run + default policy control.
  • Fail2Ban jail configuration; manual ban/unban; IP whitelist.
  • Threat-detection scanner walks Apache logs hourly, auto-creates adaptive rules for recurring attack patterns (e.g. .env hunting, .git probing).
  • Accepts both log-path conventions (fleet {domain}.http.access.log AND Apache default access.log).
  • Dashboard: top blocked IPs, top targeted ports, ban trend, recent blocks.
  • Hub runs apache-botsearch + apache-wp-probe + sshd jails (since 2026-04-23, parity with spokes).

Site Fleet

Pinnacle-only fleet overview dashboard. Aggregates site_registry.json + profiles + passports. Shows server, distribution, module count, traffic snapshot, and health per site.

Site Guardian

Pinnacle-only, report-only compliance dashboard. Compares each site’s installed modules against the distribution manifest. 180-day scan history reveals drift over time. Does not enforce — UpdateManager’s enforcement engine handles quarantine. SiteGuardian just reports fleet-wide.

Site Statistics (StatsCaptainOG)

Parses Apache access logs from /var/log/vhosts/{domain}/{domain}.http.access.log. Produces per-site dashboards (hits, page views, unique IPs, referrers, top pages) and fleet-wide roll-ups on the pinnacle site. For Amazon-affiliate sites, AmazonAffiliateDashboard layers revenue tracking on top.

All analytics data stays on your server — no data is sent to external services.