version: '3'

services:
  seafile-db:
    container_name: seafile-db
    environment:
      MYSQL_LOG_CONSOLE: "true"
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
    image: mariadb:10.1
    networks:
      - srv
    volumes:
      - seafile_db:/var/lib/mysql:rw
    restart: unless-stopped
  seafile-memcached:
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    image: memcached:1.5.6
    networks:
      - srv
    restart: unless-stopped
  seafile:
    container_name: seafile
    depends_on:
      - seafile-db
      - seafile-memcached
    environment:
      DB_HOST: seafile-db
      DB_ROOT_PASSWD: ${DB_ROOT_PASSWORD}
      SEAFILE_ADMIN_EMAIL: ${ADMIN_EMAIL}
      SEAFILE_ADMIN_PASSWORD: ${SEAFILE_ADMIN_PASSWORD}
      SEAFILE_SERVER_HOSTNAME: ${HOST_SEAFILE}.${DOMAIN}
      SEAFILE_SERVER_LETSENCRYPT: "false"
      TIME_ZONE: ${TZ}
    image: seafileltd/seafile-mc:latest
    networks:
      - srv
    restart: unless-stopped
    expose:
      - 80
    volumes:
      - seafile_data:/shared:rw
      - type: bind
        source: ${ROOT_INSTALL}/data/seafile-fuse
        target: /seafile-fuse
        bind:
          propagation: rshared
    privileged: true
    cap_add:
      - SYS_ADMIN     
    labels:
      - traefik.enable=true
      - traefik.http.routers.seafile.rule=Host(`${HOST_SEAFILE}.${DOMAIN}`)
      - traefik.http.routers.seafile.entrypoints=https
      - traefik.http.routers.seafile.tls=true      

volumes:
  seafile_db:
  seafile_data: