-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathcompose.yml
More file actions
120 lines (110 loc) · 3.35 KB
/
Copy pathcompose.yml
File metadata and controls
120 lines (110 loc) · 3.35 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
x-require-env: ${EXTERNAL_NETWORK:?Missing .env file - copy from .env.example and update settings as appropriate}
networks:
default:
name: karakara_default
external: ${EXTERNAL_NETWORK}
services:
frontend:
image: caddy:2-alpine
restart: unless-stopped
mem_limit: 1g
ports:
- "127.0.0.1:${PORT}:80"
volumes:
- ${PATH_HOST_data}/logs:/logs:rw
- ${PATH_HOST_data}/queues:/data/queue/:ro
- ${PATH_HOST_media}/processed:/media/processed:ro
- ${PWD}/tools/:/static/tools/:ro
- ${PWD}/frontend/:/etc/caddy/:ro
labels:
traefik.enable: true
traefik.http.routers.karakara.rule: "Host(`${HOSTNAME}`)"
traefik.http.routers.karakara.middlewares: "kkredir"
traefik.http.middlewares.kkredir.redirectregex.regex: "^https://karakara.uk/$$"
traefik.http.middlewares.kkredir.redirectregex.replacement: "https://karakara.uk/browser3/"
kissycron.job-local.backup.schedule: "31 3 * * *"
kissycron.job-local.backup.command: "backup ${PWD}/.env ${PWD}/data /backups/karakara/"
api_queue:
build: ./api_queue
restart: unless-stopped
mem_limit: 1g
environment:
SANIC_MQTT: mqtt
SANIC_PATH_TRACKS: /media/processed/tracks.json # TODO: same as `processmedia2/config.docker.json` - consider from ENV?
SANIC_PATH_QUEUE: /data/queue/ # See volumes below
SANIC_PROXIES_COUNT: 1
SANIC_REAL_IP_HEADER: x-real-ip
#ports: # for local dev
# - 8000:8000
volumes:
- ${PATH_HOST_media}/processed:/media/processed:ro
- ${PATH_HOST_data}/logs:/logs:rw
- ${PATH_HOST_data}/queues:/data/queue/:rw
#- ${PWD}/api_queue/:/app/:ro # local dev testing only
mqtt:
image: eclipse-mosquitto
restart: unless-stopped
mem_limit: 1g
volumes:
- ${PATH_HOST_data}/mqtt:/mosquitto/data:rw
- ${PWD}/mqtt/:/mosquitto/config/:ro
player3:
build: ./player3
restart: unless-stopped
mem_limit: 1g
browser3:
build: ./browser3
restart: unless-stopped
mem_limit: 1g
processmedia3:
profiles:
- processmedia
build: ./processmedia3
restart: unless-stopped
user: ${UID}:${GID}
mem_limit: 8g
env_file: .env
volumes:
- ${PATH_HOST_media}/source:/media/source:ro
- ${PATH_HOST_media}/processed:/media/processed:rw
syncthing:
profiles:
- syncthing
image: syncthing/syncthing
restart: unless-stopped
mem_limit: 1g
cpu_count: 1
hostname: karakara
environment:
PUID: ${UID}
PGID: ${GID}
UMASK: 002
volumes:
- ${PATH_HOST_data}/syncthing:/var/syncthing:rw
- ${PATH_HOST_media}/source:/media/source:rw
- ${PATH_HOST_media}/processed:/media/processed:rw
- ${PATH_HOST_media}/wip:/media/wip:rw
ports:
- 22000:22000/tcp # TCP file transfers
- 22000:22000/udp # QUIC file transfers
- 21027:21027/udp # Receive local discovery broadcasts
upload:
profiles:
- upload
build: ./upload
restart: unless-stopped
user: ${UID}:${GID}
mem_limit: 1g
env_file: .env
environment:
BASE_PATH: /upload
UPLOAD_DIR: /uploads
volumes:
- ${PATH_HOST_media}/wip:/uploads:rw
lint:
build: ./lint
restart: unless-stopped
mem_limit: 1g
command: serve --host 0.0.0.0 --port 3000
volumes:
- ${PATH_HOST_media}/processed:/media/processed:ro