61 lines
2.6 KiB
YAML
61 lines
2.6 KiB
YAML
services:
|
|
db:
|
|
image: mariadb:10.11
|
|
container_name: seafile-mysql
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # Required, set the root's password of MySQL service.
|
|
- MYSQL_LOG_CONSOLE=${MYSQL_LOG_CONSOLE}
|
|
- MARIADB_AUTO_UPGRADE=${MARIADB_AUTO_UPGRADE}
|
|
volumes:
|
|
- ./db:/var/lib/mysql # Required, specifies the path to MySQL data persistent store.
|
|
networks:
|
|
- seafile-net
|
|
|
|
memcached:
|
|
image: memcached:1.6.18
|
|
container_name: seafile-memcached
|
|
entrypoint: memcached -m 256
|
|
networks:
|
|
- seafile-net
|
|
|
|
seafile:
|
|
image: seafileltd/seafile-mc:11.0-latest
|
|
container_name: seafile
|
|
volumes:
|
|
- ./data:/shared # Required, specifies the path to Seafile data persistent store.
|
|
environment:
|
|
- DB_HOST=db
|
|
- DB_ROOT_PASSWD=${MYSQL_ROOT_PASSWORD} # Required, the value should be root's password of MySQL service.
|
|
- TIME_ZONE=Europe/Paris
|
|
- SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL} # Specifies Seafile admin user, default is 'me@example.com'.
|
|
- SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD} # Specifies Seafile admin password, default is 'asecret'.
|
|
- SEAFILE_SERVER_LETSENCRYPT=false
|
|
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME} # Specifies your host name if https is enabled.
|
|
- SEAFILE_SERVER_PROTOCOL=https # Protocol used to access Seafile (http or https)
|
|
- SERVICE_URL=https://${SEAFILE_SERVER_HOSTNAME} # Full URL to access Seafile
|
|
- FILE_SERVER_ROOT=https://${SEAFILE_SERVER_HOSTNAME}/seafhttp # URL for file server
|
|
- FORCE_HTTPS_IN_CONF=true # Force HTTPS in all Seafile configuration files
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.seafile.rule=Host(`${SEAFILE_SERVER_HOSTNAME}`)"
|
|
- "traefik.http.routers.seafile.entrypoints=websecure"
|
|
- "traefik.http.routers.seafile.tls=true"
|
|
- "traefik.http.routers.seafile.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.seafile.middlewares=seafile-headers"
|
|
- "traefik.http.services.seafile.loadbalancer.server.port=80"
|
|
- "traefik.http.middlewares.seafile-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
|
|
- "traefik.http.middlewares.seafile-headers.headers.customrequestheaders.X-Forwarded-Host=${SEAFILE_SERVER_HOSTNAME}"
|
|
- "traefik.http.middlewares.seafile-headers.headers.customrequestheaders.X-Scheme=https"
|
|
- "traefik.http.middlewares.seafile-headers.headers.customresponseheaders.X-Frame-Options=SAMEORIGIN"
|
|
depends_on:
|
|
- db
|
|
- memcached
|
|
networks:
|
|
- seafile-net
|
|
- traefik-net
|
|
|
|
networks:
|
|
seafile-net:
|
|
traefik-net:
|
|
external: true
|