TNS Panel changelog

What was added, changed, fixed and hardened in each TNS Panel release, with its date.

0.1.0

Initial release. Single-node hosting control panel for AlmaLinux 9/10 and Rocky Linux 9/10.

Added

  • Admin, reseller and client interfaces, plus a public API that the web interface itself uses, and a command-line client.
  • Sites with one PHP-FPM pool per client, six web-stack layouts, per-site PHP extensions from a closed catalogue, full .htaccess support and per-site extra directives.
  • Git deploy, staging sites and a one-click installer for ten applications.
  • Containers for Node.js, Python, Ruby and other apps, with per-client private networks.
  • Mail: Postfix, Dovecot, Rspamd and ClamAV, automatic SPF, DKIM and DMARC, DKIM key rotation, aliases, catch-all, filters, autoresponders, quotas per mailbox and webmail.
  • DNS: BIND with dynamic zones, DNSSEC, secondary servers and a mirror to Cloudflare.
  • Databases: MariaDB and PostgreSQL, with phpMyAdmin single sign-on.
  • FTPS accounts per client (plain FTP is off) and a file manager with an in-browser terminal.
  • Backups with restic: local, SFTP, S3, B2 and rclone destinations, scheduled per plan, and self-service restore of a file, a database or a mailbox.
  • Plans, quotas, resellers and white-label branding; accounts can be suspended and reactivated.
  • Firewall on nftables managed from the panel, OWASP CRS web application firewall and a malware scan.
  • Per-client resource limits with cgroups, disk quotas and a Prometheus metrics endpoint with an optional Grafana stack.
  • Statistics with GoAccess, raw access and error logs, and service status and restart from the panel.
  • Migration from CWP, Plesk, DirectAdmin, cPanel and other panels, including from a backup file and from a single account without access to the old server.
  • Licensing, signed updates with rollback, and a WHMCS module.
  • English and Spanish interfaces.

Security

  • Two-factor login with one-time recovery codes, mandatory for admins and resellers.
  • One UNIX user per client, with file-system confinement per client and open_basedir per pool.
  • TLS on every panel interface, CSRF tokens, hashed session and API tokens, and secrets encrypted with a master key kept outside the database.
  • Every action is written to an audit log that can be forwarded to an external syslog over TLS.