Omni itself listens only on localhost, while Nginx handles TLS termination and all external traffic.
Prerequisites
Before proceeding, ensure the following:- Ensure Docker is installed on the machine serving public traffic
- Open ports 80 and 443 on the Nginx machine
- Create the following DNS A records and point them to the public IP address of the Nginx machine:
<omni-domain-name>api.<omni-domain-name>kube.<omni-domain-name>
<omni-domain-name> with your Omni domain name (for example, omni.example.com) in the DNS records above and throughout this guide.
Step 1: Start Omni with the Nginx Flags
Follow the Run Omni On-Prem guide to deploy Omni on-prem.Before starting the Omni instance using either
docker run or docker compose, complete the following steps.
-
Verify that the required environment variables from the on-prem guide are set in your shell:
-
If any variables are missing, export them now:
-
Start Omni using the following flags. Remember to include the authentication flags required by your authentication provider. For more details, see the configure authentication guide:
Example: Starting an Omni instance might look similar to the following:Authentication flags are not included here. Add the appropriate flags for your auth provider as described in the authentication configuration guide.
Step 2: Provision TLS Certificates
Useacme or certbot to generate TLS certificates for all three subdomains. Step 3 expects the certificates at the following paths. If your certificates are stored elsewhere, update the paths in the Nginx config accordingly.
Step 3: Apply the Nginx Configuration
Run the following command to write the Nginx config:The
--net=host flag is required so that Nginx can reach Omni over 127.0.0.1. If Nginx and Omni run on separate machines, replace 127.0.0.1 in the config with the internal IP address of the Omni machine before starting the container.