39 lines
1 KiB
Django/Jinja
39 lines
1 KiB
Django/Jinja
---
|
|
version: '3'
|
|
|
|
networks:
|
|
public:
|
|
driver: bridge
|
|
|
|
services:
|
|
# Load Balancer / SSL / Web Server
|
|
revproxy:
|
|
image: traefik:v2.2
|
|
restart: always
|
|
networks:
|
|
- public
|
|
ports:
|
|
{% if traefik.expose_internally | default(False) %}
|
|
- "8181:8080"
|
|
{% endif %}
|
|
- "80:80"
|
|
- "443:443"
|
|
{% if traefik.additional_env_vars | default(False) %}
|
|
environment:
|
|
{% for item in traefik.additional_env_vars | dict2items %}
|
|
- {{item.key}}={{item.value}}
|
|
{% endfor %}
|
|
{% endif %}
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /home/{{ docker_user }}/traefik/traefik.toml:/traefik.toml
|
|
- /home/{{ docker_user }}/traefik/acme.json:/acme.json
|
|
- /home/{{ docker_user }}/traefik/rules:/rules
|
|
{% if traefik.expose_externally | default(False) %}
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.frontend.rule=Host:traefik.{{ traefik_virtual_host }}"
|
|
- "traefik.http.protocol=http"
|
|
- "traefik.http.port=8080"
|
|
{% endif %}
|