How to Self-Host Nginx Ignition Locally Using Docker Compose and PostgreSQL
What is Nginx Ignition?
Nginx Ignition is an user interface for the nginx web server, aimed at developers and enthusiasts that don't want to manage configuration files manually
Today, I’ll walk you through the steps to self-host Nginx Ignition on your local machine using Docker Compose and connect to a PostgreSQL database.
🧰 Prerequisites
Make sure you have the following installed on your local machine:
- Docker
- Docker Compose
💡 Tip: You can verify the installations by running docker --version and docker compose version in your terminal.
📁 Directory Structure
Create a directory like this for your setup:
nginx-ignition-docker/
├── .env
└── docker-compose.yml(You can name it anything you'd like, but for this example, I’ll use nginx-ignition-docker. )
⚙️ Step 1: Create the docker-compose.yml File
services:
nginx-ignition:
container_name: nginx-ignition
image: dillmann/nginx-ignition:latest
restart: unless-stopped
environment:
NGINX_IGNITION_DATABASE_DRIVER: postgres
NGINX_IGNITION_DATABASE_HOST: ${POSTGRESDB_HOST}
NGINX_IGNITION_DATABASE_PORT: ${POSTGRESDB_PORT}
NGINX_IGNITION_DATABASE_NAME: ${POSTGRES_DB}
NGINX_IGNITION_DATABASE_SSL_MODE: disable
NGINX_IGNITION_DATABASE_USERNAME: ${POSTGRES_USER}
NGINX_IGNITION_DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "80:80" # Web UI
- "8090:8090" # Nginx Ignition Default Port⚙️ Step 2: Create an .env file in the same directory of docker-compose.yml:
POSTGRESDB_HOST=<database_ip> # IP address of the PostgreSQL server
POSTGRESDB_PORT=<database_port> # Port number for PostgreSQL
POSTGRES_DB=<database_name> # Name of the PostgreSQL database
POSTGRES_USER=<username> # PostgreSQL Username
POSTGRES_PASSWORD=<password> # PostgreSQL Password🚀 Step 3: Launch the Containers:
docker-compose up -dAccess to Nginx-ignition from the browser via http://localhost:8090:

If you found this guide helpful, consider supporting me!