环境变量

.env
.env 文件 用于指定 Seafile-docker 实例 所使用的组件,以及每个组件所需的环境变量。
            
                
                
#################################
# Docker compose configurations #
#################################
COMPOSE_FILE='seafile-server.yml,caddy.yml,seadoc.yml,elasticsearch.yml'
COMPOSE_PATH_SEPARATOR=','

## Images
SEAFILE_IMAGE=seafileltd/seafile-pro-mc:13.0-latest
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_REDIS_IMAGE=redis
SEAFILE_ELASTICSEARCH_IMAGE=elasticsearch:8.15.0
SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9-alpine
SEADOC_IMAGE=seafileltd/sdoc-server:2.0-latest
NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:13.0-latest
#SEASEARCH_IMAGE=seafileltd/seasearch-nomkl:1.0-latest # Apple's Chip for SeaSearch
SEASEARCH_IMAGE=seafileltd/seasearch:1.0-latest
MD_IMAGE=seafileltd/seafile-md-server:13.0-latest

## Storage

### Storage type
SEAF_SERVER_STORAGE_TYPE=disk # disk, s3, multiple
MD_STORAGE_TYPE=$SEAF_SERVER_STORAGE_TYPE # disk, s3
SS_STORAGE_TYPE=$SEAF_SERVER_STORAGE_TYPE # disk, s3

### Local storage path
BASIC_STORAGE_PATH=/opt
SEAFILE_VOLUME=$BASIC_STORAGE_PATH/seafile-data
SEAFILE_MYSQL_VOLUME=$BASIC_STORAGE_PATH/seafile-mysql/db
SEAFILE_ELASTICSEARCH_VOLUME=$BASIC_STORAGE_PATH/seafile-elasticsearch/data
SEAFILE_CADDY_VOLUME=$BASIC_STORAGE_PATH/seafile-caddy
SS_DATA_PATH=$BASIC_STORAGE_PATH/seasearch-data
SEADOC_VOLUME=$BASIC_STORAGE_PATH/seadoc-data

### Storage configurations for S3 (only valid in XXX_STORAGE_TYPE=s3)
S3_COMMIT_BUCKET=<your commit bucket name>
S3_FS_BUCKET=<your fs bucket name>
S3_BLOCK_BUCKET=<your block bucket name>
S3_SS_BUCKET=<your seasearch bucket name> # for seasearch
S3_MD_BUCKET=<your metadata bucket name> # for metadata-server
S3_KEY_ID=<your-key-id>
S3_SECRET_KEY=<your-secret-key>
S3_USE_V4_SIGNATURE=true
S3_PATH_STYLE_REQUEST=false
S3_AWS_REGION=us-east-1
S3_HOST=
S3_USE_HTTPS=true
S3_SSE_C_KEY=

#################################
# Startup parameters #
#################################
SEAFILE_SERVER_HOSTNAME=seafile.example.com
SEAFILE_SERVER_PROTOCOL=http
TIME_ZONE=Etc/UTC
JWT_PRIVATE_KEY=

#####################################
# Third-party service configuration #
#####################################

## Database
SEAFILE_MYSQL_DB_HOST=db
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=PASSWORD
SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db

## Cache
CACHE_PROVIDER=redis # options: redis (recommend), memcached

### Redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

### Memcached
MEMCACHED_HOST=memcached
MEMCACHED_PORT=11211

######################################
# Initial variables #
# (Only valid in first-time startup) #
######################################

## Database root password, Used to create Seafile users
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD

## Seafile admin user
INIT_SEAFILE_ADMIN_EMAIL=me@example.com
INIT_SEAFILE_ADMIN_PASSWORD=asecret

## SeaSearch admin user
## (valid in enabling SeaSearch and use Seafile admin by default)
INIT_SS_ADMIN_USER=$INIT_SEAFILE_ADMIN_EMAIL
INIT_SS_ADMIN_PASSWORD=$INIT_SEAFILE_ADMIN_PASSWORD

############################################
# Additional configurations for extensions #
############################################

## SeaDoc service
ENABLE_SEADOC=true

## SeaSearch

### Local cache
SS_MAX_OBJ_CACHE_SIZE=10GB

### Log
SS_LOG_TO_STDOUT=false
SS_LOG_OUTPUT=true
SS_LOG_LEVEL=info

## Notification
ENABLE_NOTIFICATION_SERVER=false
NOTIFICATION_SERVER_URL=

## Seafile AI
ENABLE_SEAFILE_AI=false
SEAFILE_AI_LLM_URL=
SEAFILE_AI_LLM_KEY=

## Metadata server
MD_FILE_COUNT_LIMIT=100000
Seafile-docker 配置
组件配置
  • COMPOSE_FILE :Seafile-docker 各组件的 .yml 文件,多个文件之间必须使用 COMPOSE_PATH_SEPARATOR 定义的符号分隔。核心组件包括 seafile-server.yml caddy.yml ,它们必须被指定。
  • COMPOSE_PATH_SEPARATOR :用于分隔 COMPOSE_FILE .yml 文件的符号,默认是 ,
Docker 镜像配置
  • SEAFILE_IMAGE :Seafile-server 镜像,默认值 seafileltd/seafile-pro-mc:12.0-latest
  • SEAFILE_DB_IMAGE :数据库服务器镜像,默认值 mariadb:10.11
  • SEAFILE_MEMCACHED_IMAGE :缓存服务器镜像,默认值 memcached:1.6.29
  • SEAFILE_ELASTICSEARCH_IMAGE :仅适用于专业版。Elasticsearch 镜像,默认值 elasticsearch:8.15.0
  • SEAFILE_CADDY_IMAGE :Caddy 服务器镜像,默认值 lucaslorentz/caddy-docker-proxy:2.9-alpine
  • SEADOC_IMAGE :仅在集成 SeaDoc 后有效。SeaDoc 服务器镜像,默认值 seafileltd/sdoc-server:2.0-latest
  • NON_ROOT :以非 root 用户运行 Seafile 容器,默认值 false
持久卷配置
  • SEAFILE_VOLUME :Seafile 数据卷目录,默认值 /opt/seafile-data
  • SEAFILE_MYSQL_VOLUME :MySQL 数据卷目录,默认值 /opt/seafile-mysql/db
  • SEAFILE_CADDY_VOLUME :Caddy 数据卷目录,用于存储从 Let's Encrypt 获取的证书,默认值 /opt/seafile-caddy
  • SEAFILE_ELASTICSEARCH_VOLUME :仅适用于专业版。Elasticsearch 数据卷目录,默认值 /opt/seafile-elasticsearch/data
  • SEADOC_VOLUME :仅在集成 SeaDoc 后有效。SeaDoc 数据卷目录,默认值 /opt/seadoc-data
MySQL 配置
  • SEAFILE_MYSQL_DB_HOST :MySQL 主机地址,默认值为 Seafile-docker 实例中的预定义服务名 db
  • SEAFILE_MYSQL_DB_PORT :MySQL 端口,默认值 3306
  • INIT_SEAFILE_MYSQL_ROOT_PASSWORD :仅在 首次部署 时需要,MySQL 的 root 密码。
  • SEAFILE_MYSQL_DB_USER :MySQL 用户(数据库用户可在 conf/seafile.conf 中找到)。
  • SEAFILE_MYSQL_DB_PASSWORD :MySQL 用户 seafile 的密码。
  • SEAFILE_MYSQL_DB_SEAFILE_DB_NAME :Seafile 数据库名称,默认值 seafile_db
  • SEAFILE_MYSQL_DB_CCNET_DB_NAME :ccnet 数据库名称,默认值 ccnet_db
  • SEAFILE_MYSQL_DB_SEAHUB_DB_NAME :seahub 数据库名称,默认值 seahub_db
缓存配置
  • CACHE_PROVIDER :Seafile 使用的缓存服务类型,可选值为 redis 或 memcached。从 Seafile 13 开始,推荐使用 redis 以支持新功能,memcached 将不再默认集成进 Seafile Docker。默认值为 redis。
Redis 配置 (仅在 CACHE_PROVIDER=redis 时有效)
  • REDIS_HOST :Redis 服务器主机名,默认值 redis
  • REDIS_PORT :Redis 服务器端口,默认值 6379
  • REDIS_PASSWORD :Redis 服务器密码。
Memcached 配置 (仅在 CACHE_PROVIDER=memcached 时有效)
  • MEMCACHED_HOST :Memcached 服务器主机名,默认值 memcached
  • MEMCACHED_PORT :Memcached 服务器端口,默认值 11211
Seafile-server 配置
  • JWT_PRIVATE_KEY :一个 不少于 32 个字符 的随机字符串。生成示例: pwgen -s 40 1
  • SEAFILE_SERVER_HOSTNAME :Seafile 服务器的主机名或域名。
  • SEAFILE_SERVER_PROTOCOL :Seafile 服务器使用的协议( http https )。
  • TIME_ZONE :时区(默认值为 UTC )。
  • INIT_SEAFILE_ADMIN_EMAIL :管理员用户名(邮箱格式)。
  • INIT_SEAFILE_ADMIN_PASSWORD :管理员密码。
SeaDoc 配置(仅在集成SeaDoc后生效)
  • ENABLE_SEADOC :是否启用 SeaDoc 服务器,默认值为 false
  • SEADOC_SERVER_URL :仅在 ENABLE_SEADOC=true 时有效。SeaDoc 服务器地址(如 http://seafile.example.com/sdoc-server )。
S3 存储后端配置(专业版)
  • SEAF_SERVER_STORAGE_TYPE :用于存储 Seafile 数据的存储类型。可选项为 disk (本地磁盘)、 s3 multiple (详见多存储后端的详细说明)。
  • S3_COMMIT_BUCKET :S3 存储后端中用于保存 commit 对象的存储桶。
  • S3_FS_BUCKET :S3 存储后端中用于保存 fs 对象的存储桶。
  • S3_BLOCK_BUCKET :S3 存储后端中用于保存块(block)对象的存储桶。
  • S3_SS_BUCKET :SeaSearch 数据的 S3 存储桶(当服务启用时有效)。
  • S3_MD_BUCKET :元数据服务器数据的 S3 存储桶(当服务可用时有效)。
  • S3_KEY_ID :S3 存储后端的密钥 ID。
  • S3_SECRET_KEY :S3 存储后端的密钥。
  • S3_USE_V4_SIGNATURE :启用时使用 S3 的 V4 协议,默认值为 true
  • S3_AWS_REGION :桶所在的区域(仅 AWS 有效),默认值为 us-east-1
  • S3_HOST :桶的主机地址(不使用 AWS 时必填)。
  • S3_USE_HTTPS :启用时使用 HTTPS 连接到 S3,默认值为 true
  • S3_PATH_STYLE_REQUEST :此选项让 Seafile 使用如下 URL 格式访问对象: https://192.168.1.123:8080/bucketname/object 在 Amazon S3 中,默认的 URL 格式是虚拟主机风格,例如: https://bucketname.s3.amazonaws.com/object 但这种方式依赖高级 DNS 服务器配置,所以大多数自建存储系统只实现了路径风格的格式。默认值为 false
  • S3_SSE_C_KEY :一个 32 字符的字符串,可以通过 openssl rand -base64 24 生成,也可以是任意 32 字符的随机字符串。如果启用 SSE-C,则必须使用 V4 认证协议和 HTTPS。
更简单的 S3 配置(适用于 Seafile 及其组件):
自 Seafile Pro 13.0 起 ,为了方便用户在未来部署 Seafile 的相关扩展组件和其他服务, .env 文件中提供了一个专门的配置区块,用于存放 Seafile 及部分扩展组件(如 SeaSearch Metadata server )的 S3 配置。你可以通过标题 Storage configurations for S3 找到该区块。
.env 文件中的 S3 配置仅支持单一 S3 存储后端模式
Seafile 服务器仅支持在 .env 文件中配置 S3,用于单一存储后端模式 (即 SEAF_SERVER_STORAGE_TYPE=s3 )。
如果你想使用其他存储后端(例如 Ceph Swift )或需要更高级的配置(如 多存储后端 ),请将 SEAF_SERVER_STORAGE_TYPE 设置为 multiple ,并在 seafile.conf 中根据实际情况配置 MD_STORAGE_TYPE SS_STORAGE_TYPE
S3 配置仅在至少一个 STORAGE_TYPE 设置为 s3 时才会生效
.env 文件中目前提供了 三种(专业版) 一种(集群版) STORAGE_TYPE
1. SEAF_SERVER_STORAGE_TYPE (专业版 & 集群版)
2. MD_STORAGE_TYPE (专业版,用于 Metadata server,详见对应章节)
3. SS_STORAGE_TYPE (专业版,用于 SeaSearch,详见对应章节)
4. Cluster 模式下的存储类型(仅集群版)
你必须在上述选项中 至少指定一个为 s3 ,S3 相关配置才会生效。
SeaSearch 配置
关于 SeaSearch 的配置 .env ,请参考 这里 了解详情。
Metadata Server 配置
关于Metadata Server 的配置 .env ,请参考 这里 了解详情。
  • MD_FILE_COUNT_LIMIT :元数据功能允许的单个仓库最大文件数。如果仓库中文件数超过该值,元数据管理功能将不会启用。对于已启用元数据管理的仓库,如果记录数达到此值,但仍有部分文件未被记录到 Metadata server,则未记录文件的元数据管理将被跳过。默认值为 100000
Notification server 配置
  • ENABLE_NOTIFICATION_SERVER :启用( true )或禁用( false )Seafile 通知功能,默认值为 false
  • NOTIFICATION_SERVER_URL :客户端(浏览器)与通知服务器通信的地址,默认值为 https://seafile.example.com/notification
  • INNER_NOTIFICATION_SERVER_URL :Seafile 服务器与通知服务器通信的内部地址,默认值为 http://notification-server:8083
集群初始化配置
  • CLUSTER_INIT_MODE :仅在专业版首次部署有效。集群初始化模式,会生成服务运行所需的配置文件(但不会启动服务)。如果配置文件已存在,则不执行任何操作。默认值为 true 。生成配置文件后,请将此项设置为 false
  • CLUSTER_INIT_ES_HOST :仅在专业版首次部署有效。集群 Elasticsearch 服务器主机地址。
  • CLUSTER_INIT_ES_PORT :仅在专业版首次部署有效。集群 Elasticsearch 服务器端口,默认值为 9200
  • CLUSTER_MODE :Seafile 服务节点类型,即 frontend (前端,默认)或 backend (后端)。