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
.htaccesssupport 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_basedirper 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.