# Nginx Templates

# Overview

Nginx templates allow you to customize the Nginx site configuration that Forge uses when creating your new site. It is not possible to change the Nginx template after a site has been created.

Broken Nginx Templates May Cause Downtime

Nginx templates that are not valid will prevent Nginx from properly working and your existing sites may stop responding. You should proceed with caution when creating and deploying custom Nginx templates.

# Creating Templates

You may create your own Nginx templates from within a server's management dashboard. When creating a new template, you need to provide a template name and the template's content. Forge will provide a default template that you may alter as required.


Although the default template does not show support for TLSv1.3, Forge will automatically update a site to support it if the server is able to do so.

# Template Variables

Forge provides several variables that can be used within your templates to dynamically alter their content for new sites:

Variable Description
DIRECTORY The site's configured web directory, e.g. /public
DOMAINS The site's configured domains to respond to, e.g. laravel.com alias.laravel.com
PATH The site's web accessible directory, e.g. /home/forge/laravel.com/public
PORT The IPv4 port the site should listen to (:80). If the site name is default, this variable will also contain default_server
PORT_V6 The IPV6 port to listen to ([::]:80). If the site name is default, this variable will also contain default_server
PROXY_PASS The PHP socket to listen on, e.g. unix:/var/run/php/php8.0-fpm.sock
ROOT_PATH The root of the configured site, e.g. /home/forge/laravel.com
SERVER_PUBLIC_IP The public IP address of the server
SERVER_PRIVATE_IP The private IP address of the server, if available
SITE The site's name, e.g. laravel.com. This differs from DOMAINS in that it does not include site aliases.
SITE_ID The site's ID, e.g. 12345
USER The site's user, e.g. forge

The variables above may be used by wrapping them in double "curly braces". All of the following examples are examples of valid variable usage:

  • {{ PORT }}
  • {{PORT}}
  • {{ port }}
  • {{port}}

# Managing Templates

You may edit the name and content of your Nginx template at any time. Changes to a template will not affect existing sites that use the template.

Deleting a template will not remove any sites which were configured to use it.