2023-05-02 14:24:30 +00:00
|
|
|
# vi: ft=yaml
|
|
|
|
version: '3'
|
|
|
|
|
|
|
|
networks:
|
|
|
|
traefik:
|
|
|
|
external: true
|
|
|
|
seafile:
|
|
|
|
|
2023-06-19 18:17:17 +00:00
|
|
|
volumes:
|
|
|
|
data:
|
|
|
|
driver_opts:
|
|
|
|
type: "nfs"
|
|
|
|
o: "addr=192.168.30.10,nolock,soft,rw"
|
|
|
|
device: ":/mnt/data/seafile/data"
|
|
|
|
db:
|
|
|
|
driver_opts:
|
|
|
|
type: "nfs"
|
|
|
|
o: "addr=192.168.30.10,nolock,soft,rw"
|
|
|
|
device: ":/mnt/data/seafile/db"
|
|
|
|
|
2023-05-02 14:24:30 +00:00
|
|
|
services:
|
|
|
|
db:
|
|
|
|
image: mariadb:10.5
|
|
|
|
environment:
|
|
|
|
- MYSQL_ROOT_PASSWORD={{ db_root_passwd }}
|
|
|
|
- MYSQL_LOG_CONSOLE=true
|
|
|
|
volumes:
|
2023-06-19 18:17:17 +00:00
|
|
|
- type: volume
|
|
|
|
source: db
|
2023-05-02 14:24:30 +00:00
|
|
|
target: /var/lib/mysql
|
2023-06-19 18:17:17 +00:00
|
|
|
volume:
|
|
|
|
nocopy: true
|
2023-05-02 14:24:30 +00:00
|
|
|
networks:
|
|
|
|
- seafile
|
|
|
|
deploy:
|
|
|
|
placement:
|
|
|
|
constraints:
|
|
|
|
- "node.labels.seafile == true"
|
|
|
|
|
|
|
|
memcached:
|
|
|
|
image: memcached:1.6
|
|
|
|
entrypoint: memcached -m 256
|
|
|
|
networks:
|
|
|
|
- seafile
|
|
|
|
deploy:
|
|
|
|
placement:
|
|
|
|
constraints:
|
|
|
|
- "node.labels.seafile == true"
|
|
|
|
|
|
|
|
seafile:
|
|
|
|
image: seafileltd/seafile-mc:9.0.10
|
|
|
|
volumes:
|
2023-06-19 18:17:17 +00:00
|
|
|
- type: volume
|
|
|
|
source: data
|
2023-05-02 14:24:30 +00:00
|
|
|
target: /shared
|
2023-06-19 18:17:17 +00:00
|
|
|
volume:
|
|
|
|
nocopy: true
|
2023-05-02 14:24:30 +00:00
|
|
|
environment:
|
|
|
|
- DB_HOST=db
|
|
|
|
- DB_ROOT_PASSWD={{ db_root_passwd }}
|
|
|
|
- TIME_ZONE=Europe/Amsterdam
|
|
|
|
- SEAFILE_ADMIN_EMAIL={{ seafile_admin_email }}
|
|
|
|
- SEAFILE_ADMIN_PASSWORD={{ seafile_admin_password }}
|
|
|
|
- SEAFILE_SERVER_LETSENCRYPT=false
|
|
|
|
- SEAFILE_SERVER_HOSTNAME={{ seafile_domain }}
|
|
|
|
deploy:
|
|
|
|
placement:
|
|
|
|
constraints:
|
|
|
|
- "node.labels.seafile == true"
|
|
|
|
labels:
|
|
|
|
- traefik.enable=true
|
|
|
|
- traefik.http.routers.seafile.entrypoints=websecure
|
|
|
|
- traefik.http.routers.seafile.rule=Host(`{{ seafile_domain }}`)
|
|
|
|
- traefik.http.routers.seafile.tls=true
|
|
|
|
- traefik.http.routers.seafile.tls.certresolver=letsencrypt
|
|
|
|
- traefik.http.services.seafile.loadbalancer.server.port=80
|
|
|
|
- traefik.http.routers.seafile.service=seafile
|
|
|
|
- traefik.docker.network=traefik
|
|
|
|
depends_on:
|
|
|
|
- db
|
|
|
|
- memcached
|
|
|
|
networks:
|
|
|
|
- traefik
|
|
|
|
- seafile
|