Skip to content

Commit af68dd2

Browse files
committed
addind docker compose file for traefik
1 parent 03cda37 commit af68dd2

File tree

3 files changed

+106
-4
lines changed

3 files changed

+106
-4
lines changed

src/docker/docker-compose.yaml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,31 @@
1-
version: '3.9'
1+
networks:
2+
web:
3+
external: true
24

35
services:
46
django:
5-
image: ghcr.io/spokanetech/spokanepythonweb:latest
67
container_name: django
8+
image: ghcr.io/spokanetech/spokanepythonweb:latest
79
build:
810
context: ../..
911
dockerfile: src/docker/Dockerfile
1012
env_file:
1113
- ../envs/.env.docker-compose
12-
command: ./entrypoint.sh
14+
command: "./entrypoint.sh"
1315
ports:
14-
- "8000:8000"
16+
- "8000:8000"
17+
labels:
18+
- "traefik.enable=true"
19+
20+
# Router for HTTPS
21+
- "traefik.http.routers.django.rule=Host(`davidslusser.website`) || Host(`www.davidslusser.website`)"
22+
- "traefik.http.routers.django.entrypoints=websecure"
23+
- "traefik.http.routers.django.tls.certresolver=myresolver"
24+
25+
# Service settings
26+
- "traefik.http.services.django.loadbalancer.server.port=8000"
27+
networks:
28+
- web
1529
depends_on:
1630
- db
1731
restart: unless-stopped
@@ -25,6 +39,8 @@ services:
2539
- "5432:5432"
2640
env_file:
2741
- ../envs/.env.docker-compose
42+
networks:
43+
- web
2844
restart: unless-stopped
2945

3046
volumes:

src/docker/local-compose.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
services:
2+
django:
3+
image: ghcr.io/spokanetech/spokanepythonweb:latest
4+
container_name: django
5+
build:
6+
context: ../..
7+
dockerfile: src/docker/Dockerfile
8+
env_file:
9+
- ../envs/.env.docker-compose
10+
command: ./entrypoint.sh
11+
ports:
12+
- "8000:8000"
13+
depends_on:
14+
- db
15+
restart: unless-stopped
16+
17+
db:
18+
image: postgres:17
19+
container_name: postgres
20+
volumes:
21+
- spokanepython_postgres:/var/lib/postgresql/data
22+
ports:
23+
- "5432:5432"
24+
env_file:
25+
- ../envs/.env.docker-compose
26+
restart: unless-stopped
27+
28+
volumes:
29+
spokanepython_postgres:

src/docker/traefik-compose.yaml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
version: '3.9'
2+
3+
networks:
4+
web:
5+
external: true
6+
7+
services:
8+
traefik:
9+
image: traefik:v3.0
10+
container_name: traefik
11+
env_file:
12+
- src/docker/.env.traefik
13+
command:
14+
- "--api.dashboard=true"
15+
- "--providers.docker=true"
16+
- "--providers.docker.exposedbydefault=false"
17+
18+
# Entry points
19+
- "--entrypoints.web.address=:80"
20+
- "--entrypoints.websecure.address=:443"
21+
22+
# Redirect HTTP to HTTPS
23+
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
24+
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
25+
26+
# Let's Encrypt
27+
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
28+
- "--certificatesresolvers.myresolver.acme.email=admin@davidslusser.website"
29+
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
30+
31+
ports:
32+
- "80:80"
33+
- "443:443"
34+
- "8080:8080"
35+
36+
volumes:
37+
- "/var/run/docker.sock:/var/run/docker.sock:ro"
38+
- "letsencrypt:/letsencrypt"
39+
40+
networks:
41+
- web
42+
restart: unless-stopped
43+
44+
labels:
45+
- "traefik.enable=true"
46+
47+
# Dashboard route
48+
- "traefik.http.routers.traefik.rule=Host(`traefik.davidslusser.website`)"
49+
- "traefik.http.routers.traefik.service=api@internal"
50+
- "traefik.http.routers.traefik.entrypoints=websecure"
51+
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
52+
# Auth middleware for dashboard
53+
- "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_DASH_AUTH}"
54+
- "traefik.http.routers.traefik.middlewares=traefik-auth"
55+
56+
volumes:
57+
letsencrypt:

0 commit comments

Comments
 (0)