Panel capabilities

Organized by workflow, not by feature count.

Most of what TulioCP does falls into four jobs an operator repeats every week. Here's what's actually implemented in each, with the real CLI commands behind it.

01

Host

The core serving stack — web, DNS, mail, and databases — configured to work together instead of as four separate installs.

Web

  • Apache2 and nginx, with PHP-FPM and per-domain routing
  • Five PHP branches side by side, 5.6 through 8.5, switchable per user or per domain
  • nginx FastCGI cache, and nginx-as-proxy in front of Apache2
  • One-click installers: WordPress, Laravel, Drupal, Joomla, Nextcloud, and eight more

DNS & mail

  • Bind-based DNS with clustering and DNSSEC
  • Exim and Dovecot with SpamAssassin, ClamAV, and Sieve filtering
  • Roundcube webmail, with SnappyMail as an alternative
  • Adjustable per-account rate limits to control outbound abuse

Databases

  • MariaDB and MySQL 8, or PostgreSQL
  • phpMyAdmin and phpPgAdmin bundled and pre-wired
admin@edge01 — provisioning
v-add-web-domain admin example.com
# vhost, TLS stub, and doc root created
v-add-mail-domain admin example.com
# exim/dovecot config and DNS records written
v-add-database admin exampledb exampleuser
# database, grants, and user created together
02

Secure

Security defaults that assume the panel is a target, not just a convenience layer.

Perimeter

  • iptables + ipset firewall with fail2ban brute-force detection built in
  • SSH and SFTP chroot jails per user
  • SSH key-based login for SFTP/SSH accounts

Transport & access

  • Let's Encrypt with wildcard certificate support, auto-renewed via cron
  • Per-domain TLS for both web and mail (Exim, Dovecot, webmail)
  • Two-factor authentication on the admin panel
admin@edge01 — hardening
v-add-user-2fa admin
# prints the TOTP secret to enrol an authenticator
v-add-letsencrypt-domain admin example.com
# issues the cert and schedules its renewal
v-add-firewall-ban 203.0.113.4 22
# drops the source in iptables until unbanned
03

Automate

Every panel action has a scriptable equivalent. The web UI is one client of the same interface the CLI and API use.

CLI

  • 500+ v-* commands covering users, domains, DNS, mail, databases, backups, and firewall
  • Consistent verb-noun naming: add / list / change / delete / backup / restore
  • Per-user PHP CLI version switching

API & scheduling

  • REST API authenticated by IP-restricted access keys
  • Cron job management, including scheduled Let's Encrypt renewal and reports
  • Packages system for defining reusable resource-limit templates per plan
admin@edge01 — cli reference
v-list-user-package default
# prints the plan's limits as a key/value table
v-add-cron-job admin 0 2 '*' '*' '*' /scripts/nightly.sh
# each of these exits 0 and prints nothing
04

Recover

Backups are a first-class object, not a script someone bolts on after the fact.

Backup destinations

  • SFTP and FTP targets
  • 50+ cloud storage providers via Rclone
  • Restic-based incremental backup and restore

Restore granularity

  • Full-user restore
  • Per-domain, per-database, and per-file restore via Restic
admin@edge01 — backup
v-backup-user admin
# writes a full user archive to the backup target
v-restore-database-restic admin exampledb latest
# restores from the newest restic snapshot

Next

See how TulioBilling turns these into billable services.