initial commit

This commit is contained in:
BeauTroll
2026-01-06 10:38:32 +01:00
commit bcdacb3ed3
3 changed files with 74 additions and 0 deletions

22
.env.example Normal file
View File

@@ -0,0 +1,22 @@
# MySQL Configuration
MYSQL_ROOT_PASSWORD=changeme_secure_password
MYSQL_LOG_CONSOLE=true
MARIADB_AUTO_UPGRADE=1
# Database Configuration for Seafile
DB_HOST=db
DB_ROOT_PASSWD=changeme_secure_password
# Time Zone Configuration
TIME_ZONE=Etc/UTC
# Seafile Admin Configuration
SEAFILE_ADMIN_EMAIL=admin@example.com
SEAFILE_ADMIN_PASSWORD=changeme_admin_password
# HTTPS/SSL Configuration
SEAFILE_SERVER_LETSENCRYPT=false
SEAFILE_SERVER_HOSTNAME=seafile.example.com
# Memcached Configuration
MEMCACHED_MEMORY=256

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.env

51
docker-compose.yml Normal file
View File

@@ -0,0 +1,51 @@
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:
- /opt/seafile-mysql/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 ${MEMCACHED_MEMORY}
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:11.0-latest
container_name: seafile
volumes:
- /opt/seafile-data:/shared # Required, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=${DB_HOST}
- DB_ROOT_PASSWD=${DB_ROOT_PASSWD} # Required, the value should be root's password of MySQL service.
- TIME_ZONE=${TIME_ZONE} # Optional, default is UTC. Should be uncomment and set to your local time zone.
- 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=${SEAFILE_SERVER_LETSENCRYPT} # Whether to use https or not.
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME} # Specifies your host name if https is enabled.
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.services.seafile.loadbalancer.server.port=80"
depends_on:
- db
- memcached
networks:
- seafile-net
- traefik-net
networks:
seafile-net:
traefik-net:
external: true