Add nginx-proxy
This commit is contained in:
parent
278c4018ea
commit
6fe27ae76f
3 changed files with 81 additions and 0 deletions
14
nginx-proxy/README.md
Normal file
14
nginx-proxy/README.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
# nginx-proxy
|
||||
|
||||
Automatic ssl-terminating reverse proxy.
|
||||
|
||||
This project contains three containers:
|
||||
The nginx container works as the proxy.
|
||||
The docker-gen container listens for new containers and manages the config file for nginx.
|
||||
The acme-companion container generates and manages the ssl certificates for the hosts.
|
||||
|
||||
## Important step when deploying
|
||||
The docker-gen container needs a template file called `nginx.tmpl` which can be found [here](https://github.com/nginx-proxy/nginx-proxy/blob/main/nginx.tmpl)
|
||||
Place this file next to the docker-compose file when deploying locally.
|
||||
Deploy the stack and upload the file to the named volume. Restart the docker-gen container afterwards.
|
||||
|
51
nginx-proxy/docker-compose.yaml
Normal file
51
nginx-proxy/docker-compose.yaml
Normal file
|
@ -0,0 +1,51 @@
|
|||
version: '2.1'
|
||||
services:
|
||||
nginx:
|
||||
image: nginx
|
||||
container_name: nginx
|
||||
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
|
||||
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
|
||||
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
|
||||
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:
|
||||
certs:
|
||||
vhost:
|
||||
html:
|
||||
acme:
|
||||
|
||||
networks:
|
||||
webproxy:
|
||||
name: webproxy
|
16
nginx-proxy/exmaple-service.yaml
Normal file
16
nginx-proxy/exmaple-service.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
version: "3"
|
||||
services:
|
||||
service_name:
|
||||
image: image
|
||||
environment:
|
||||
- VIRTUAL_HOST=test.jfreudenberger.de # the domain where the service should be reached
|
||||
- VIRTUAL_PORT=8000 # the port the service listens in the container
|
||||
- LETSENCRYPT_HOST=test.jfreudenberger.de # the same domain as VIRTUAL_HOST; this enables ssl
|
||||
networks:
|
||||
- webproxy
|
||||
|
||||
networks:
|
||||
webproxy:
|
||||
external:
|
||||
name: webproxy
|
||||
|
Loading…
Reference in a new issue