forked from crazy-max/docker-nextcloud
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
122 lines (114 loc) · 3.06 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
version: "3.2"
services:
traefik:
image: traefik:1.7-alpine
container_name: traefik
command:
- "--logLevel=INFO"
- "--defaultentrypoints=http,https"
- "--entryPoints=Name:http Address::80 Redirect.EntryPoint:https"
- "--entryPoints=Name:https Address::443 TLS"
- "--docker"
- "--docker.exposedbydefault=false"
- "--docker.domain=example.com"
- "--acme=true"
- "--acme.acmelogging=true"
- "--acme.email=webmaster@example.com"
- "--acme.storage=acme.json"
- "--acme.entryPoint=https"
- "--acme.onhostrule=true"
- "--acme.httpchallenge=true"
- "--acme.httpchallenge.entrypoint=http"
ports:
- target: 80
published: 80
protocol: tcp
- target: 443
published: 443
protocol: tcp
volumes:
- "./acme.json:/acme.json"
- "/var/run/docker.sock:/var/run/docker.sock"
restart: always
db:
image: mariadb:10.2
container_name: nextcloud_db
volumes:
- "db:/var/lib/mysql"
environment:
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE=nextcloud"
- "MYSQL_USER=nextcloud"
- "MYSQL_PASSWORD=asupersecretpassword"
restart: always
redis:
image: redis:4.0-alpine
container_name: nextcloud_redis
restart: always
collabora:
image: collabora/code
container_name: nextcloud_collabora
cap_add:
- MKNOD
labels:
- "traefik.enable=true"
- "traefik.backend=collabora"
- "traefik.port=9980"
- "traefik.frontend.entryPoints=http"
- "traefik.frontend.rule=Host:collabora.example.com"
environment:
- "DONT_GEN_SSL_CERT=true"
- "domain=collabora.example.com"
- "extra_params=--disable-ssl"
restart: always
nextcloud:
image: crazymax/nextcloud:latest
container_name: nextcloud
depends_on:
- db
- redis
volumes:
- "nextcloud:/data"
labels:
- "traefik.enable=true"
- "traefik.backend=nextcloud"
- "traefik.port=8000"
- "traefik.frontend.rule=Host:nextcloud.example.com"
- "traefik.frontend.redirect.permanent=true"
- "traefik.frontend.redirect.regex=https://(.*)/.well-known/(card|cal)dav"
- "traefik.frontend.redirect.replacement=https://$$1/remote.php/dav/"
env_file:
- "./nextcloud.env"
restart: always
cron:
image: crazymax/nextcloud:latest
container_name: nextcloud_cron
depends_on:
- nextcloud
volumes:
- "nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "SIDECAR_CRON=1"
- "CRON_PERIOD=*/15 * * * *"
restart: always
news_updater:
image: crazymax/nextcloud:latest
container_name: nextcloud_news_updater
depends_on:
- nextcloud
volumes:
- "nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "SIDECAR_NEWSUPDATER=1"
- "NC_NEWSUPDATER_THREADS=10"
- "NC_NEWSUPDATER_TIMEOUT=300"
- "NC_NEWSUPDATER_INTERVAL=900"
- "NC_NEWSUPDATER_LOGLEVEL=error"
restart: always
volumes:
db:
nextcloud: