Hestia Control Panel Documentation

website·Indexed 35 days ago

https://hestiacp.com

Documentation for HestiaCP, covering server administration, user guides for managing web domains, DNS, databases, and backups. Includes a comprehensive CLI reference for v-commands, REST API documentation, and guides for SSL certificates, mail server setup, and customisation.

Tokens
29.8K
Snippets
275
Records
379
Agent score
70%

What's inside HestiaCP

  1. Host web domains and install applications

    HestiaCP supports hosting multiple domains with the following capabilities:

    • Caching: Nginx FastCGI cache (Nginx + PHP-FPM) and Nginx Proxy cache (Nginx + Apache2).
    • Security: Per-domain TLS certificates.
    • Networking: MultiIP support for Web, Mail, and DNS.
    • PHP Support: Versions from 5.6 up to 8.3 (PHP 8.2 is the default).
    • One-Click App Installation: Available via CLI or Admin Panel for WordPress, Dokuwiki, Drupal, Grav, Laravel, MediaWiki, NextCloud, OpenCart, Prestashop, Symphony, and Joomla.
  2. Manage DNS servers and nameservers

    HestiaCP provides tools to manage a DNS server, including the ability to create custom nameservers, set up DNS clusters, and enable DNSSEC on domains.
  3. Manage server users and access control

    HestiaCP allows sharing server access with multiple users while restricting their available resources. Key security and access features include support for SFTP and SSH chroot jails, Two-Factor Authentication (2FA) for the Admin Panel, and the use of SSH keys for SFTP and SSH logins.
  4. Manage MySQL, MariaDB, and PostgreSQL databases

    HestiaCP supports multiple database engines and management tools:

    • MariaDB: Versions 10.2 through 10.11 (10.11 is default).
    • MySQL: Version 8.
    • PostgreSQL: Full support.
    • Management: Includes the latest versions of phpMyAdmin and phpPgAdmin.
  5. Configure mail hosting and delivery

    HestiaCP allows hosting private email services with the following features:

    • Security: Per-domain TLS certificates for Exim 4, Dovecot, and Webmail; Let’s Encrypt support for mail domains.
    • Delivery: SMTP relay setup for Exim (useful if port 25 is blocked by the provider).
    • Control: Adjustable rate limits per user or email account.
    • Clients: Includes the latest version of Roundcube and optional SnappyMail installation.
  6. Migrate HestiaCP API authentication from passwords to access/secret keys

    Update your API POST request body to replace the user and password fields with a single hash field. The hash field must follow the format access_code:secret_code.
    // Old authentication method
    $postvars = [
    	"user" => $hst_username,
    	"password" => $hst_password,
    	"returncode" => $hst_returncode,
    	"cmd" => $hst_command,
    	"arg1" => $username,
    ];
    
    // New authentication method
    $postvars = [
    	"hash" => "access_code:secret_code",
    	"returncode" => $hst_returncode,
    	"cmd" => $hst_command,
    	"arg1" => $username,
    ];
  7. Report bugs found during HestiaCP beta testing

    If a bug is encountered during beta or release candidate testing, it should be reported via the following channels: GitHub Issues, GitHub Pull Requests, the official HestiaCP forum, or the Discord server.
  8. Create a new Quick Install App for HestiaCP

    To add a new application to the HestiaCP Quick Install list, you must create a dedicated installer directory and a setup file. The application will then appear on the Quick install app page in the HestiaCP dashboard.
    # 1. Create a folder for your app (replace 'Example' with your app name)
    mkdir /usr/local/hestia/web/src/app/WebApp/Installers/Example
    
    # 2. Create the setup file
    touch /usr/local/hestia/web/src/app/WebApp/Installers/Example/ExampleSetup.php
  9. Use Let’s Encrypt with Cloudflare Proxy

    To successfully issue a Let's Encrypt certificate while using Cloudflare, follow these steps to avoid validation failures:

    1. Disable the Cloudflare proxy for the domain.
    2. Wait at least 5 minutes for DNS caches to expire.
    3. Request the certificate via the HestiaCP control panel or CLI.
    4. Re-enable the Cloudflare proxy.
    5. Set the Cloudflare SSL/TLS setting to Full (strict).
  10. Change the default backup folder location

    HestiaCP does not allow symlinks for the backup folder for security reasons. To change the backup location, use a bind mount to map a custom directory to /backup. To make this change permanent across reboots, add the bind mount to /etc/fstab.
    # Temporary bind mount
    mount --bind /path/to/new/backup/folder /backup
    
    # Permanent fix: Add this line to /etc/fstab
    /path/to/new/backup/folder /backup none defaults,bind 0 0