Deploy NextCloud with Docker and Traefik

还记得我在刚了解可以通过Docker和Traefik简单部署服务的时候的那种兴奋劲儿。甚至在一段时间之内我一直在各种搜索和尝试不同的已经dockerized的服务,寄希望可以最大限度地压榨我VPS的性能。经过不同的尝试,最后选下来我自己一直在用的服务也就WordPress,BitWarden和NextCloud。前两个服务在我之前的文章里面已经讲过了,今天就讲讲怎么搭建NextCloud好了。

视频已经更新,请点击阅读全文查看视频。

言归正传,先把docker-compose.yml文件发出来。

请注意,我的docker-compose.yml文件需要搭配我的Traefik配置才能使用。Traefik配置可以在这个页面获取。

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
version: '3.7'

services:
db:
image: mariadb:latest
container_name: nextcloud-db
volumes:
- nextcloud-db-data:/var/lib/mysql
networks:
- default
restart: always
environment:
TZ: UTC
MYSQL_ROOT_PASSWORD: supersecretpassword
MYSQL_DATABASE: db
MYSQL_USER: dbuser
MYSQL_PASSWORD: dbpassword

redis:
image: redis:latest
restart: always
networks:
- default
volumes:
- redis:/var/lib/redis

nextcloud:
depends_on:
- redis
- db
image: nextcloud:stable
container_name: nextcloud
volumes:
- ./files:/var/www/html
networks:
- proxy
- default
restart: always
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.nextcloud-secure.entrypoints=websecure"
- "traefik.http.routers.nextcloud-secure.rule=Host(`cloud.yourdomain`)"
- "traefik.http.routers.nextcloud-secure.service=nextcloud-service"
- "traefik.http.services.nextcloud-service.loadbalancer.server.port=80"
environment:
REDIS_HOST: redis
MYSQL_HOST: db:3306
MYSQL_DATABASE: db
MYSQL_USER: dbuser
MYSQL_PASSWORD: dbpassword

networks:
proxy:
external: true

volumes:
nextcloud-db-data:
name: nextcloud-db-data
redis:
name: nextcloud-redis

可以看对这个文件其实跟我之前WordPress教程里面的差不多,不一样的地方一是我添加了Redis的service为网站加速。 另外就是我在NextCloud这里用的stable的tag而WordPress用的Latest。我觉得网盘最重要的就是稳定,因此应该尽量使用稳定的版本。

有兴趣了解具体设置有什么用的朋友,可以参考之前WordPress的文章。接下来我会跟之前一样把本文视频化,想看视频的朋友可以等等我之后的视频。

感谢收看,咱们下次再见