diff --git a/seafile/.env b/seafile/.env new file mode 100644 index 0000000..19186a8 --- /dev/null +++ b/seafile/.env @@ -0,0 +1,10 @@ +MYSQL_ROOT_PASSWORD=root_pass +SEAFILE_DB_PASSWORD=user_pass +INIT_SEAFILE_ADMIN_EMAIL=mail@example.com +INIT_SEAFILE_ADMIN_PASSWORD=password +SEAFILE_SERVER_HOSTNAME=seafile.example.com +JWT_PRIVATE_KEY=random_string_32_char # pwgen -s 40 1 +MYSQL_DATA_VOLUME=/path/to/data/mariadb +SEAFILE_DATA_VOLUME=/path/to/data/seafile_data +TIME_ZONE=Europe/Warsaw +SEAFILE_SERVER_PROTOCOL=https \ No newline at end of file diff --git a/seafile/docker-compose.yaml b/seafile/docker-compose.yaml new file mode 100644 index 0000000..ce3dc5b --- /dev/null +++ b/seafile/docker-compose.yaml @@ -0,0 +1,67 @@ +services: + db: + image: mariadb:latest + container_name: seafile-mysql + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_LOG_CONSOLE=true + - MARIADB_AUTO_UPGRADE=1 + volumes: + - "${MYSQL_DATA_VOLUME:-/opt/seafile-mysql/db}:/var/lib/mysql" + networks: + - seafile-net + healthcheck: + test: + [ + "CMD", + "/usr/local/bin/healthcheck.sh", + "--connect", + "--mariadbupgrade", + "--innodb_initialized", + ] + interval: 20s + start_period: 30s + timeout: 5s + retries: 10 + + + memcached: + image: memcached + container_name: seafile-memcached + entrypoint: memcached -m 256 + restart: unless-stopped + networks: + - seafile-net + + seafile: + image: seafileltd/seafile-mc:12.0-latest + container_name: seafile + ports: + - "80:80" + volumes: + - ${SEAFILE_DATA_VOLUME:-/opt/seafile-data}:/shared + environment: + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=seafile + - DB_ROOT_PASSWD=${MYSQL_ROOT_PASSWORD} + - DB_PASSWORD=${SEAFILE_DB_PASSWORD} + - TIME_ZONE=${TIME_ZONE:-Etc/UTC} + - INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL} + - INIT_SEAFILE_ADMIN_PASSWORD=${INIT_SEAFILE_ADMIN_PASSWORD} + - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY} + - SEAFILE_LOG_TO_STDOUT=true + - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL} + depends_on: + db: + condition: service_healthy + memcached: + condition: service_started + restart: unless-stopped + networks: + - seafile-net + +networks: + seafile-net: + name: seafile-net \ No newline at end of file