version: '2.1' services: nginx: image: nginx container_name: proxy_nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - nginx_conf:/etc/nginx/conf.d - certs:/etc/nginx/certs - vhost:/etc/nginx/vhost.d - html:/usr/share/nginx/html - htpasswd:/etc/nginx/htpasswd networks: - webproxy dockergen: image: nginxproxy/docker-gen container_name: dockergen command: -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf restart: unless-stopped environment: - ENABLE_IPV6=true volumes_from: - nginx volumes: - /var/run/docker.sock:/tmp/docker.sock:ro # - ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl # use this for the file next to this file - nginx_tmpl:/etc/docker-gen/templates/ # use this for a named volume containing the file networks: - webproxy acme-companion: image: nginxproxy/acme-companion restart: unless-stopped volumes_from: - nginx volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - acme:/etc/acme.sh environment: - NGINX_DOCKER_GEN_CONTAINER=dockergen # - ACME_CA_URI=https://acme-staging-v02.api.letsencrypt.org/directory # set this for staging environment from letsencrypt volumes: nginx_conf: nginx_tmpl: certs: vhost: html: acme: htpasswd: networks: webproxy: name: webproxy