mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 15:53:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			271 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			271 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # WARNING: This is a DEVELOPMENT docker-compose file, it should not be used for production.
 | |
| services:
 | |
|   fullstack:
 | |
|     image: npm2dev:core
 | |
|     container_name: npm2dev.core
 | |
|     build:
 | |
|       context: ./
 | |
|       dockerfile: ./dev/Dockerfile
 | |
|     ports:
 | |
|       - 3080:80
 | |
|       - 3081:81
 | |
|       - 3443:443
 | |
|     networks:
 | |
|       nginx_proxy_manager:
 | |
|         aliases:
 | |
|           - website1.example.com
 | |
|           - website2.example.com
 | |
|           - website3.example.com
 | |
|     environment:
 | |
|       TZ: "${TZ:-Australia/Brisbane}"
 | |
|       PUID: 1000
 | |
|       PGID: 1000
 | |
|       FORCE_COLOR: 1
 | |
|       # specifically for dev:
 | |
|       DEBUG: "true"
 | |
|       DEVELOPMENT: "true"
 | |
|       LE_STAGING: "true"
 | |
|       # db:
 | |
|       # DB_MYSQL_HOST: 'db'
 | |
|       # DB_MYSQL_PORT: '3306'
 | |
|       # DB_MYSQL_USER: 'npm'
 | |
|       # DB_MYSQL_PASSWORD: 'npm'
 | |
|       # DB_MYSQL_NAME: 'npm'
 | |
|       # db-postgres:
 | |
|       DB_POSTGRES_HOST: "db-postgres"
 | |
|       DB_POSTGRES_PORT: "5432"
 | |
|       DB_POSTGRES_USER: "npm"
 | |
|       DB_POSTGRES_PASSWORD: "npmpass"
 | |
|       DB_POSTGRES_NAME: "npm"
 | |
|       # DB_SQLITE_FILE: "/data/database.sqlite"
 | |
|       # DISABLE_IPV6: "true"
 | |
|       # Required for DNS Certificate provisioning testing:
 | |
|       LE_SERVER: "https://ca.internal/acme/acme/directory"
 | |
|       REQUESTS_CA_BUNDLE: "/etc/ssl/certs/NginxProxyManager.crt"
 | |
|     volumes:
 | |
|       - npm_data:/data
 | |
|       - le_data:/etc/letsencrypt
 | |
|       - "./dev/resolv.conf:/etc/resolv.conf:ro"
 | |
|       - ../backend:/app
 | |
|       - ../frontend:/frontend
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
|     healthcheck:
 | |
|       test: ["CMD", "/usr/bin/check-health"]
 | |
|       interval: 10s
 | |
|       timeout: 3s
 | |
|     depends_on:
 | |
|       - db
 | |
|       - db-postgres
 | |
|       - authentik
 | |
|       - authentik-worker
 | |
|       - authentik-ldap
 | |
|     working_dir: /app
 | |
| 
 | |
|   db:
 | |
|     image: jc21/mariadb-aria
 | |
|     container_name: npm2dev.db
 | |
|     ports:
 | |
|       - 33306:3306
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     environment:
 | |
|       TZ: "${TZ:-Australia/Brisbane}"
 | |
|       MYSQL_ROOT_PASSWORD: "npm"
 | |
|       MYSQL_DATABASE: "npm"
 | |
|       MYSQL_USER: "npm"
 | |
|       MYSQL_PASSWORD: "npm"
 | |
|     volumes:
 | |
|       - db_data:/var/lib/mysql
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
| 
 | |
|   db-postgres:
 | |
|     image: postgres:17
 | |
|     container_name: npm2dev.db-postgres
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     environment:
 | |
|       POSTGRES_USER: "npm"
 | |
|       POSTGRES_PASSWORD: "npmpass"
 | |
|       POSTGRES_DB: "npm"
 | |
|     volumes:
 | |
|       - psql_data:/var/lib/postgresql/data
 | |
|       - ./ci/postgres:/docker-entrypoint-initdb.d
 | |
| 
 | |
|   stepca:
 | |
|     image: jc21/testca
 | |
|     container_name: npm2dev.stepca
 | |
|     volumes:
 | |
|       - "./dev/resolv.conf:/etc/resolv.conf:ro"
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
|     networks:
 | |
|       nginx_proxy_manager:
 | |
|         aliases:
 | |
|           - ca.internal
 | |
| 
 | |
|   dnsrouter:
 | |
|     image: jc21/dnsrouter
 | |
|     container_name: npm2dev.dnsrouter
 | |
|     volumes:
 | |
|       - ./dev/dnsrouter-config.json.tmp:/dnsrouter-config.json:ro
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
| 
 | |
|   swagger:
 | |
|     image: swaggerapi/swagger-ui:latest
 | |
|     container_name: npm2dev.swagger
 | |
|     ports:
 | |
|       - 3082:80
 | |
|     environment:
 | |
|       URL: "http://npm:81/api/schema"
 | |
|       PORT: "80"
 | |
|     depends_on:
 | |
|       - fullstack
 | |
| 
 | |
|   squid:
 | |
|     image: ubuntu/squid
 | |
|     container_name: npm2dev.squid
 | |
|     volumes:
 | |
|       - "./dev/squid.conf:/etc/squid/squid.conf:ro"
 | |
|       - "./dev/resolv.conf:/etc/resolv.conf:ro"
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     ports:
 | |
|       - 8128:3128
 | |
| 
 | |
|   pdns:
 | |
|     image: pschiffe/pdns-mysql:4.8
 | |
|     container_name: npm2dev.pdns
 | |
|     volumes:
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
|     environment:
 | |
|       PDNS_master: "yes"
 | |
|       PDNS_api: "yes"
 | |
|       PDNS_api_key: "npm"
 | |
|       PDNS_webserver: "yes"
 | |
|       PDNS_webserver_address: "0.0.0.0"
 | |
|       PDNS_webserver_password: "npm"
 | |
|       PDNS_webserver-allow-from: "127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8"
 | |
|       PDNS_version_string: "anonymous"
 | |
|       PDNS_default_ttl: 1500
 | |
|       PDNS_allow_axfr_ips: "127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8"
 | |
|       PDNS_gmysql_host: pdns-db
 | |
|       PDNS_gmysql_port: 3306
 | |
|       PDNS_gmysql_user: pdns
 | |
|       PDNS_gmysql_password: pdns
 | |
|       PDNS_gmysql_dbname: pdns
 | |
|     depends_on:
 | |
|       - pdns-db
 | |
|     networks:
 | |
|       nginx_proxy_manager:
 | |
|         aliases:
 | |
|           - ns1.pdns
 | |
|           - ns2.pdns
 | |
| 
 | |
|   pdns-db:
 | |
|     image: mariadb
 | |
|     container_name: npm2dev.pdns-db
 | |
|     environment:
 | |
|       MYSQL_ROOT_PASSWORD: "pdns"
 | |
|       MYSQL_DATABASE: "pdns"
 | |
|       MYSQL_USER: "pdns"
 | |
|       MYSQL_PASSWORD: "pdns"
 | |
|     volumes:
 | |
|       - "pdns_mysql:/var/lib/mysql"
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
|       - "./dev/pdns-db.sql:/docker-entrypoint-initdb.d/01_init.sql:ro"
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
| 
 | |
|   cypress:
 | |
|     image: npm2dev:cypress
 | |
|     container_name: npm2dev.cypress
 | |
|     build:
 | |
|       context: ../
 | |
|       dockerfile: test/cypress/Dockerfile
 | |
|     environment:
 | |
|       HTTP_PROXY: "squid:3128"
 | |
|       HTTPS_PROXY: "squid:3128"
 | |
|     volumes:
 | |
|       - "../test/results:/results"
 | |
|       - "./dev/resolv.conf:/etc/resolv.conf:ro"
 | |
|       - "/etc/localtime:/etc/localtime:ro"
 | |
|     command: cypress run --browser chrome --config-file=cypress/config/ci.js
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
| 
 | |
|   authentik-redis:
 | |
|     image: "redis:alpine"
 | |
|     container_name: npm2dev.authentik-redis
 | |
|     command: --save 60 1 --loglevel warning
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     restart: unless-stopped
 | |
|     healthcheck:
 | |
|       test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
 | |
|       start_period: 20s
 | |
|       interval: 30s
 | |
|       retries: 5
 | |
|       timeout: 3s
 | |
|     volumes:
 | |
|       - redis_data:/data
 | |
| 
 | |
|   authentik:
 | |
|     image: ghcr.io/goauthentik/server:2024.10.1
 | |
|     container_name: npm2dev.authentik
 | |
|     restart: unless-stopped
 | |
|     command: server
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     env_file:
 | |
|       - ci.env
 | |
|     ports:
 | |
|       - 9000:9000
 | |
|     depends_on:
 | |
|       - authentik-redis
 | |
|       - db-postgres
 | |
| 
 | |
|   authentik-worker:
 | |
|     image: ghcr.io/goauthentik/server:2024.10.1
 | |
|     container_name: npm2dev.authentik-worker
 | |
|     restart: unless-stopped
 | |
|     command: worker
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     env_file:
 | |
|       - ci.env
 | |
|     depends_on:
 | |
|       - authentik-redis
 | |
|       - db-postgres
 | |
| 
 | |
|   authentik-ldap:
 | |
|     image: ghcr.io/goauthentik/ldap:2024.10.1
 | |
|     container_name: npm2dev.authentik-ldap
 | |
|     networks:
 | |
|       - nginx_proxy_manager
 | |
|     environment:
 | |
|       AUTHENTIK_HOST: "http://authentik:9000"
 | |
|       AUTHENTIK_INSECURE: "true"
 | |
|       AUTHENTIK_TOKEN: "wKYZuRcI0ETtb8vWzMCr04oNbhrQUUICy89hSpDln1OEKLjiNEuQ51044Vkp"
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - authentik
 | |
| 
 | |
| volumes:
 | |
|   npm_data:
 | |
|     name: npm2dev_core_data
 | |
|   le_data:
 | |
|     name: npm2dev_le_data
 | |
|   db_data:
 | |
|     name: npm2dev_db_data
 | |
|   pdns_mysql:
 | |
|     name: npnpm2dev_pdns_mysql
 | |
|   psql_data:
 | |
|     name: npm2dev_psql_data
 | |
|   redis_data:
 | |
|     name: npm2dev_redis_data
 | |
| 
 | |
| networks:
 | |
|   nginx_proxy_manager:
 | |
|     name: npm2dev_network
 |