-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
102 lines (102 loc) · 3.51 KB
/
docker-compose.yml
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
services:
traefik:
container_name: ${COMPOSE_PROJECT_NAME}-traefik
image: docker.io/library/traefik:3.2
command:
# - "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
ports:
- "${MD_TOOLS_PROXY_PORT}:80"
- "8081:8080"
volumes:
- ${DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock:ro
restart: unless-stopped
perlite:
image: sec77/perlite:latest
container_name: ${COMPOSE_PROJECT_NAME}-perlite
restart: unless-stopped
env_file: ./perlite.env
volumes:
- ${PERLITE_DIR}:/var/www/perlite/Notes
perlite-web:
image: nginx:stable-alpine
container_name: ${COMPOSE_PROJECT_NAME}-perlite-web
restart: unless-stopped
ports:
- 8765:80
volumes_from:
- perlite
volumes:
- ./containers/perlite/perlite.conf:/etc/nginx/conf.d/default.conf:ro # bind mount the necessary nginx config into container
depends_on:
- perlite
labels:
- traefik.enable=true
- traefik.http.routers.perlite.rule=Host(`${PERLITE_DOMAIN}`)
- traefik.http.routers.perlite.entrypoints=web
- traefik.http.services.perlite.loadbalancer.server.port=80
- traefik.docker.network=proxy
# # Part for optional traefik middlewares
# - traefik.http.routers.perlite.middlewares=basic-auth@file
quartz:
build:
context: ./containers/quartz
dockerfile: quartz.Dockerfile
container_name: ${COMPOSE_PROJECT_NAME}-quartz
environment:
- WORKDIR_PATH=/app/quartz
volumes:
- ${QUARTZ_DIR}/content:/app/quartz/content
- ${QUARTZ_DIR}/public:/app/quartz/public
labels:
- traefik.enable=true
- traefik.http.routers.quartz.rule=Host(`${QUARTZ_DOMAIN}`)
- traefik.http.routers.quartz.entrypoints=web
- traefik.http.services.quartz.loadbalancer.server.port=80
ports:
- 3000:80
restart: unless-stopped
slidev:
build:
context: ./containers/slidev
dockerfile: slidev.Dockerfile
container_name: ${COMPOSE_PROJECT_NAME}-slidev
volumes:
- ${SLIDEV_ROOT_DIR}/slidev:/app/slidev
# Uncomment after first launch and default script migration if using demo!
# - ${SLIDEV_ROOT_DIR}/slides/${SLIDEV_SLIDE_DIR}/slides.md:/app/slidev/slides.md
# - ${SLIDEV_ROOT_DIR}/slides/${SLIDEV_SLIDE_DIR}/pages:/app/slidev/pages
ports:
- 3030:3030
labels:
- traefik.enable=true
- traefik.http.routers.slidev.rule=Host(`${SLIDEV_DOMAIN}`)
- traefik.http.routers.slidev.entrypoints=web
- traefik.http.services.slidev.loadbalancer.server.port=3030
flatnotes:
container_name: ${COMPOSE_PROJECT_NAME}-flatnotes
image: dullage/flatnotes:latest
env_file: ./flatnotes.env
environment:
PUID: 1000
PGID: 1000
FLATNOTES_PORT: 3031
ports:
- 3031:3031
volumes:
# flatnotes only works on flat structure, so the edit feature is limited.
- "./notes/flatnotes:/data"
# - "./notes/quartz:/data/quartz"
# - "./notes/perlite:/data/perlite"
# - "./slides:/data/slides"
# Optional. Allows you to save the search index in a different location:
# - "./index:/data/.flatnotes"
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.http.routers.flatnotes.rule=Host(`${FLATNOTES_DOMAIN}`)
- traefik.http.routers.flatnotes.entrypoints=web
- traefik.http.services.flatnotes.loadbalancer.server.port=3031