[Unit] Description=Seafile Application Container After=seafile-db.service seafile-redis.service Requires=seafile-db.service seafile-redis.service [Container] ContainerName=seafile Image=docker.io/seafileltd/seafile-mc:13.0-latest Network=seafile.network # Publish internal port 80 to 127.0.0.1:18080 on the host PublishPort=127.0.0.1:18080:80 # Volume mapping for Seafile shared data Volume=/mnt/ajmal-data/seafile/seafile-data:/shared # Database connection configuration (matches MariaDB setup) Environment=DB_HOST=seafile-mysql Environment=DB_PORT=3306 Environment=DB_USER=root Environment=DB_PASSWORD=Sf_Db_Root_Secure_Pass_2026 Environment=DB_ROOT_PASSWD=Sf_Db_Root_Secure_Pass_2026 # Mappings for SEAFILE_MYSQL_ prefixed variables for absolute safety across releases Environment=SEAFILE_MYSQL_DB_HOST=seafile-mysql Environment=SEAFILE_MYSQL_DB_PORT=3306 Environment=SEAFILE_MYSQL_DB_USER=root Environment=SEAFILE_MYSQL_DB_PASSWORD=Sf_Db_Root_Secure_Pass_2026 Environment=INIT_SEAFILE_MYSQL_ROOT_PASSWORD=Sf_Db_Root_Secure_Pass_2026 # Explicit database names (fixes the empty string default bug in bootstrap.py) Environment=SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db Environment=SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db Environment=SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db # Redis settings (accessible via container name 'seafile-redis') Environment=CACHE_PROVIDER=redis Environment=REDIS_HOST=seafile-redis Environment=REDIS_PORT=6379 Environment=REDIS_PASSWORD=Sf_Redis_Secure_Pass_2026 # General Seafile settings Environment=SEAFILE_SERVER_HOSTNAME=seafile.ajmalbuv.duckdns.org Environment=SEAFILE_SERVER_PROTOCOL=https Environment=TIME_ZONE=Asia/Kolkata Environment=JWT_PRIVATE_KEY=Sf_Jwt_Secret_Key_Secure_2026_x # Admin settings (used for first run database & admin user creation) Environment=INIT_SEAFILE_ADMIN_EMAIL=admin@seafile.ajmalbuv.duckdns.org Environment=INIT_SEAFILE_ADMIN_PASSWORD=Sf_Admin_Web_Access_Pass_2026 [Service] Restart=always [Install] WantedBy=default.target