1. 简介

最新的 13 版本已经发布,和之前的版本相比主要是增加了 AI 功能以及图片库功能,优化了 sdoc 的版本体验。详细情况可以参考官网说明:https://manual.seafile.com/13.0/changelog/server-changelog/

Seafile server: Seafile core services, see Seafile Components for the details.
MySQL: Database stores data related to Seafile and SeaDoc.
Redis: Cache server.
Caddy: Caddy server enables user to access the Seafile service (i.e., Seafile server and Sdoc server) externally and handles SSL configuration.
Seafile optional extension:
SeaDoc Server: SeaDoc server, provide a lightweight online collaborative document editor,.
Notification Server: Notify clients of updates of the library, providing realtime update feature.
Metadata Server: Provide metadata management for libraries.
Seafile AI & face embedding: Users can enable Seafile AI to support features such as file tags, file and image summaries, text translation, sdoc writing assistance, generating image tags (including objects, weather, color, etc.), face detection and encoding in images, and text detection in images (OCR).

其它版本的安装配置可以参考

13 和 12 版本相比安装配置上最大的变化是 13 版本放弃了原有的缓存方案改用 Redis 作为默认的缓存服务,另外需要注意的是原本在版本12中能运行的相关数据库变量也在新版本中废弃了。如果从版本12升级到版本13的过程中出错,需要重点检查这2方面的配置。

以下的内容是基于从版本12升级到版本13的操作步骤。【本文依然采用内置 nginx 不启用 caddy 的方式】

2. seafile-13.0.8-pro 配置

2.1. .env

env 环境主要是变更了容器版本并增加了 redis 配置相关的内容

COMPOSE_FILE='seafile.yml'
#COMPOSE_PATH_SEPARATOR=','
SEAFILE_REDIS_IMAGE=redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=29329c6e-bac6-4f9f-b291-2dde90c79b3c

SEAFILE_IMAGE=seafileltd/seafile-pro-mc:12.0-latest
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_MEMCACHED_IMAGE=memcached:1.6.29
SEAFILE_ELASTICSEARCH_IMAGE=elasticsearch:8.15.0
#SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9

SEAFILE_VOLUME=/data/seafile/data
SEAFILE_MYSQL_VOLUME=/data/seafile/db
SEAFILE_ELASTICSEARCH_VOLUME=/data/seafile/elasticsearch
#SEAFILE_CADDY_VOLUME=/opt/seafile-caddy

SEAFILE_MYSQL_DB_HOST=db
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=password
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=29329c6e-bac6-4f9f-b291-2dde90c79b3c

TIME_ZONE=Asia/Shanghai
JWT_PRIVATE_KEY=0mucRqrGg4/wC+X7bXxccTpUJdz+ySP3FyhrjCR0k5FVyOOqilk4aYfHVWQKx825
SEAFILE_SERVER_HOSTNAME=192.168.182.53:8003
SEAFILE_SERVER_PROTOCOL=http

INIT_SEAFILE_ADMIN_EMAIL=13671@139.com
INIT_SEAFILE_ADMIN_PASSWORD=password
INIT_S3_STORAGE_BACKEND_CONFIG=false
INIT_S3_COMMIT_BUCKET=<your-commit-objects>
INIT_S3_FS_BUCKET=<your-fs-objects>
INIT_S3_BLOCK_BUCKET=<your-block-objects>
INIT_S3_KEY_ID=<your-key-id>
INIT_S3_SECRET_KEY=<your-secret-key>
INIT_S3_USE_V4_SIGNATURE=true
INIT_S3_AWS_REGION=us-east-1
INIT_S3_HOST=s3.us-east-1.amazonaws.com
INIT_S3_USE_HTTPS=true

SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest
SEADOC_VOLUME=/data/seafile/seadoc-data
ENABLE_SEADOC=true
SEADOC_SERVER_URL=http://192.168.182.53:8003/sdoc-server

NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:12.0-latest
NOTIFICATION_SERVER_VOLUME=/data/seafile/notification-data

SEASEARCH_IMAGE=seafileltd/seasearch:latest
INIT_SS_ADMIN_USER=admin
INIT_SS_ADMIN_PASSWORD=password
SS_DATA_PATH=./data/seasearch

2.2. seafile_13.yml

该配置文件注意需要添加 Redis 的容器配置和对应的 seafile 部分配置

version: '3.0'
services:
  db:
    image: mariadb:10.11
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /data/seafile/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - seafile-net
    healthcheck:
      test:
        [
          "CMD",
          "/usr/local/bin/healthcheck.sh",
          "--connect",
          "--mariadbupgrade",
          "--innodb_initialized",
        ]
      interval: 20s
      start_period: 30s
      timeout: 5s
      retries: 10

  redis:
    image: ${SEAFILE_REDIS_IMAGE:-redis}
    container_name: seafile-redis
    restart: unless-stopped
    command:
      - /bin/sh
      - -c
      - redis-server --requirepass "$$REDIS_PASSWORD"
    environment:
      - REDIS_PASSWORD=${REDIS_PASSWORD:-}
    networks:
      - seafile-net

  elasticsearch:
    image: elasticsearch:8.15.0
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      - "xpack.security.enabled=false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 2g
    volumes:
      - /data/seafile/elasticsearch:/usr/share/elasticsearch/data
    networks:
      - seafile-net
 
  seafile:
    image: seafileltd/seafile-pro-mc:13.0.8
    container_name: seafile
    ports:
      - "8003:80"
    volumes:
      - /data/seafile/data:/shared
    environment:
      - INIT_SEAFILE_MYSQL_ROOT_PASSWORD=password
      - SEAFILE_MYSQL_DB_HOST=db
      - SEAFILE_MYSQL_DB_USER=seafile
      - SEAFILE_MYSQL_DB_PASSWORD=29329c6e-bac6-4f9f-b291-2dde90c79b3c
      - TIME_ZONE=Asia/Shanghai
      - SEAFILE_ADMIN_EMAIL=136771@139.com
      - SEAFILE_ADMIN_PASSWORD=password
      - SEAFILE_SERVER_LETSENCRYPT=false
      - SEAFILE_SERVER_HOSTNAME=192.168.182.53:8003
      - SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
      - SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
      - CACHE_PROVIDER=${CACHE_PROVIDER:-redis}
      - REDIS_HOST=${REDIS_HOST:-redis}
      - REDIS_PORT=${REDIS_PORT:-6379}
      - REDIS_PASSWORD=${REDIS_PASSWORD:-}
      - SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db
      - SEAFILE_SERVER_PROTOCOL=http
      - NON_ROOT=false
      - SEAFILE_ELASTICSEARCH_VOLUME=/data/seafile/elasticsearch
      - JWT_PRIVATE_KEY=0mucRqrGg4/wC+X7bXxccTpUJdz+ySP3FyhrjCR0k5FVyOOqilk4aYfHVWQKx825
      - ENABLE_SEADOC=true
      - SEADOC_SERVER_URL=http://192.168.182.53:8003/sdoc-server
    depends_on:
      - db
      - memcached
      - elasticsearch
      - redis
    networks:
      - seafile-net

  seadoc:
    image: seafileltd/sdoc-server:2.0-latest
    container_name: seadoc
    volumes:
      - /data/seafile/seadoc-data:/shared
    ports:
      - "7070:80"
    environment:
      - DB_HOST=db
      - DB_PORT=3306
      - DB_USER=seafile
      - DB_PASSWORD=29329c6e-bac6-4f9f-b291-2dde90c79b3c
      - DB_NAME=seahub_db
      - TIME_ZONE=Asia/Shanghai
      - NON_ROOT=false
      - JWT_PRIVATE_KEY=0mucRqrGg4/wC+X7bXxccTpUJdz+ySP3FyhrjCR0k5FVyOOqilk4aYfHVWQKx825
      - SEAHUB_SERVICE_URL=http://192.168.182.53:8003
    networks:
      - seafile-net

networks:
  seafile-net:

2.3. 调整 seahub_settings.py 配置

取消 data/seafile/conf/seahub_settings.py 配置文件中原有的缓存配置内容

#CACHES = {
#    'default': {
#        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
#        'LOCATION': 'memcached:11211',
#    },
#    'locmem': {
#        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
#    },
#}
#COMPRESS_CACHE_BACKEND = 'locmem'

2.4. 正常启动容器

docker compose -f seafile_13.yml up  -d

3. 参考

相关配置文件

  • 无标签
写评论...