feat: dev & prod compose files

This commit is contained in:
pwgen2155 2024-03-21 20:15:25 +11:00
parent ca05497fa0
commit fbc3261f45
4 changed files with 62 additions and 37 deletions

7
Makefile Normal file
View file

@ -0,0 +1,7 @@
phony: dev
dev:
@docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
phony: prod
prod:
@docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

6
docker-compose.dev.yml Normal file
View file

@ -0,0 +1,6 @@
version: "3"
services:
nginx:
ports:
- 8142:80

38
docker-compose.prod.yml Normal file
View file

@ -0,0 +1,38 @@
version: "3"
services:
dawdle:
web:
networks: web
nginx:
labels:
- traefik.enable=true
- traefik.http.middlewares.https-compress-ircl3.compress=true
- traefik.http.middlewares.header_ircl3.headers.sslRedirect=true
- traefik.http.middlewares.header_ircl3.headers.sslHost=irc.l3.lv
- traefik.http.middlewares.header_ircl3.headers.stsSeconds=3600
- traefik.http.middlewares.header_ircl3.headers.stsPreload=true
- traefik.http.middlewares.header_ircl3.headers.forceSTSHeader=true
- traefik.http.middlewares.header_ircl3.headers.frameDeny=true
- traefik.http.middlewares.header_ircl3.headers.contentTypeNosniff=true
- traefik.http.middlewares.header_ircl3.headers.customRequestHeaders.Cache-Control='public, max-age=3600'
- traefik.http.routers.ircl3.rule=Host(`irc.l3.lv`)
- traefik.http.routers.ircl3.tls=true
- traefik.http.routers.ircl3.tls.certresolver=le
- traefik.http.routers.ircl3.entrypoints=secure
- traefik.http.routers.ircl3.middlewares=header_ircl3,https-compress-ircl3
- traefik.http.services.ircl3.loadbalancer.server.port=80
- traefik.http.routers.ircl3_http.rule=Host(`irc.l3.lv`)
- traefik.http.routers.ircl3_http.service=ircl3
- traefik.http.routers.ircl3_http.entrypoints=web
- traefik.http.routers.ircl3_http.middlewares=header_ircl3,https-compress-ircl3
networks: web
networks:
web:
external: true

View file

@ -4,11 +4,17 @@ services:
dawdle:
build: .
volumes:
- ./:/data
command:
- 'python'
- '/data/dawdle.py'
- '/data/af/dawdle.conf'
# Your specific data
- ./af/backups:/data/af/backups
- ./af/events.txt:/data/af/events.txt
- ./af/dawdle.conf:/data/af/dawdle.conf
- ./af/dawdle.log:/data/af/dawdle.log
# Bot Code
- ./dawdle:/data/dawdle
- ./dawdle.py:/data/dawdle.py
# Database
- ./site:/data/site
command: python /data/dawdle.py /data/af/dawdle.conf
restart: unless-stopped
web:
@ -18,8 +24,6 @@ services:
working_dir: /site
restart: unless-stopped
command: python manage.py runserver 0.0.0.0:8000
networks:
- web
nginx:
image: docker.io/library/nginx:stable-alpine
@ -27,33 +31,3 @@ services:
- ./site/static:/usr/share/nginx/html:ro
- ./nginx.conf.template:/etc/nginx/templates/default.conf.template
restart: unless-stopped
networks:
- web
labels:
- traefik.enable=true
- traefik.http.middlewares.https-compress-ircl3.compress=true
- traefik.http.middlewares.header_ircl3.headers.sslRedirect=true
- traefik.http.middlewares.header_ircl3.headers.sslHost=irc.l3.lv
- traefik.http.middlewares.header_ircl3.headers.stsSeconds=3600
- traefik.http.middlewares.header_ircl3.headers.stsPreload=true
- traefik.http.middlewares.header_ircl3.headers.forceSTSHeader=true
- traefik.http.middlewares.header_ircl3.headers.frameDeny=true
- traefik.http.middlewares.header_ircl3.headers.contentTypeNosniff=true
- traefik.http.middlewares.header_ircl3.headers.customRequestHeaders.Cache-Control='public, max-age=3600'
- traefik.http.routers.ircl3.rule=Host(`irc.l3.lv`)
- traefik.http.routers.ircl3.tls=true
- traefik.http.routers.ircl3.tls.certresolver=le
- traefik.http.routers.ircl3.entrypoints=secure
- traefik.http.routers.ircl3.middlewares=header_ircl3,https-compress-ircl3
- traefik.http.services.ircl3.loadbalancer.server.port=80
- traefik.http.routers.ircl3_http.rule=Host(`irc.l3.lv`)
- traefik.http.routers.ircl3_http.service=ircl3
- traefik.http.routers.ircl3_http.entrypoints=web
- traefik.http.routers.ircl3_http.middlewares=header_ircl3,https-compress-ircl3
networks:
web:
external: true