-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-swarm-traefik.yml
More file actions
87 lines (80 loc) · 2.88 KB
/
docker-swarm-traefik.yml
File metadata and controls
87 lines (80 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
version: "3.8" # https://docs.docker.com/compose/compose-file/compose-file-v3/
services:
caddy:
image: caddy:latest
# https://hub.docker.com/_/caddy
volumes:
- static:/var/www/netbox/static
- media:/var/www/netbox/media
- caddy_data:/data
networks:
- caddy
- traefik
configs:
- source: netbox_caddyfile
target: /etc/caddy/Caddyfile
environment:
# https://caddyserver.com/docs/automatic-https#overview
- DOMAIN=:80
deploy:
labels:
# Essential traefik labels https://doc.traefik.io/traefik/providers/docker/
- "traefik.enable=true"
- "traefik.http.routers.netbox.entrypoints=websecure"
- "traefik.http.routers.netbox.rule=Host(`netbox.yourdomain.test`)"
- "traefik.http.services.netbox.loadbalancer.server.port=80" # Port traefik needs to route traffic to
netbox:
image: zeigren/netbox:latest # ghcr.io/zeigren/netbox_docker:latest
# https://hub.docker.com/r/zeigren/netbox
# https://github.com/netbox-community/netbox
# https://netbox.readthedocs.io/en/stable/
volumes: # https://docs.docker.com/compose/compose-file/compose-file-v3/#volumes
- static:/usr/src/app/netbox/static
- media:/usr/src/media
secrets: # https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets
- netbox_db_password
networks: # https://docs.docker.com/compose/compose-file/compose-file-v3/#networks
- caddy
- netbox
environment: # https://docs.docker.com/compose/compose-file/compose-file-v3/#environment
- DATABASE_PASSWORD=DOCKER-SECRET->netbox_db_password
- ALLOWED_HOSTS=netbox.yourdomain.test
# CREATE SUPERUSER ONCE THEN DELETE THESE
# - CREATE_SUPERUSER=True
# - DJANGO_SUPERUSER_USERNAME=admin
# - DJANGO_SUPERUSER_EMAIL=admin@admin.com
# - DJANGO_SUPERUSER_PASSWORD=admin
postgres:
image: postgres:alpine
# https://hub.docker.com/_/postgres
volumes:
- netbox_db:/var/lib/postgresql/data
secrets:
- netbox_db_password
networks:
- netbox
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/netbox_db_password
- POSTGRES_USER=netbox
- POSTGRES_DB=netbox
redis:
image: redis:alpine
# https://hub.docker.com/_/redis
networks:
- netbox
volumes: # https://docs.docker.com/compose/compose-file/compose-file-v3/#volume-configuration-reference
static:
media:
caddy_data:
netbox_db:
configs: # https://docs.docker.com/compose/compose-file/compose-file-v3/#configs-configuration-reference
netbox_caddyfile:
external: true
secrets: # https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets-configuration-reference
netbox_db_password:
external: true
networks: # https://docs.docker.com/compose/compose-file/compose-file-v3/#network-configuration-reference
caddy:
netbox:
traefik:
external: true