Sites

Go to Sites → New Site and enter your domain (without www) to create a new site. Nginx config and SSL certificate are set up automatically.

Creating a Site

Go to Sites → New Site and enter your domain name without www. Herne will:

  • Create an Nginx server block for your domain
  • Create the site container at /var/www/{domain} and the project root at /var/www/{domain}/web_root
  • Use /var/www/{domain}/web_root/public as the initial document root
  • Automatically obtain an SSL certificate via Let's Encrypt (Certbot)
  • Reload Nginx so the site is immediately accessible over HTTPS

Document Root Options

Open Sites → Settings → General to choose which top-level folder inside web_root should be served by Nginx.

  • The default is /public for Laravel-style apps
  • You can switch to /, /docs, /dist, or any other real top-level folder found inside web_root
  • Use Refresh folders after uploading a static build so the select box re-reads the filesystem

Settings Dropdown

The site Settings navigation is split into focused pages: General, SSL / HTTPS, PHP Limits, Redis Defaults, Additional Domains / Aliases, and Danger Zone.

Use the dedicated Settings documentation for runtime limits, SSL re-sync, Redis defaults, and destructive actions.

Optional www Alias

If your site uses an apex domain such as example.com, you can enable the optional www alias during creation or later from Sites → Settings → General.

  • Add a DNS record for www before enabling it
  • Herne keeps the apex domain canonical and redirects both HTTP and HTTPS www traffic back to the apex host
  • When SSL is enabled, Herne requests certificates for both hostnames

Additional Domains / Aliases

Use Sites → Settings → Additional Domains / Aliases when the same Herne site should answer for other hostnames.

  • Aliases use the existing site directory and document root; Herne does not rename or move the site root.
  • Active serving aliases are added to the generated Nginx server_name list.
  • Aliases marked Redirect to primary receive canonical redirect blocks instead of serving the app directly.
  • Aliases marked Include in SSL are included when SSL is enabled or re-synced.
  • Alias creation does not require a Herne-managed DNS zone; external DNS is supported.

The aliases page uses modal-based add, edit, and destructive delete flows. The www checkbox only manages the primary domain's own www host. Use canonical domain migration when the primary domain itself needs to change.

SSL Management

Sites → Settings → SSL / HTTPS lets you review and control the live certificate state.

  • Enable SSL requests a certificate for the current hostnames
  • Disable SSL removes HTTPS from the site configuration
  • Re-sync SSL re-checks the live certificate files on disk and updates the stored panel status
  • Aliases marked Include in SSL are part of SSL enable and re-sync flows

<strong>Setup Wizard</strong> — After creation you are redirected to the Setup Wizard. Use it to configure your Git repository, <code>.env</code> file, and database in one guided flow before the first deploy.

Hosting a Static Site

You can also use Herne to host static sites such as exported marketing pages, prebuilt frontend output, or documentation sites.

  1. Create the site normally. The initial document root starts at /web_root/public.
  2. Upload your static build files or a ZIP archive from Sites → Files.
  3. If your build lives in another top-level folder such as dist or build, go to Sites → Settings → General.
  4. Use Refresh folders to reload the available directories from disk, then choose the folder you want Nginx to serve as the document root.

This works well for static exports that contain files like <code>index.html</code>, CSS, JavaScript bundles, images, and other front-end assets.

Changing the PHP Version

Go to Sites → Settings → General and choose a PHP version from the dropdown. Herne updates the Nginx FastCGI socket path (php8.x-fpm.sock) and reloads Nginx automatically.

The corresponding PHP-FPM service must already be installed on the server (<code>php8.x-fpm</code>). If it is not installed, the site will return a 502 error.

PHP Limits and Runtime Config

Use Sites → Settings → PHP Limits for upload size, POST size, memory, timeout, and client_max_body_size behavior. Herne stages runtime config changes, validates the active Nginx config, and rolls back if verification fails.

Site Status

A site can be Active or Inactive. The status is currently informational — it does not disable the Nginx config.

Deleting a Site

Deleting a site from Sites → Settings → Danger Zone permanently:

  • Removes the Nginx server block
  • Revokes the SSL certificate (certbot delete)
  • Removes the web root directory (/var/www/{domain})

This action is irreversible. Make sure you have a backup before deleting.

Plan Limits

The number of sites you can create is determined by your plan (max_sites). If you hit the limit, the New Site button will show an error. Upgrade your plan from Billing → Plan & Billing.