.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 配置
Metadata Server 配置
-
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 (后端)。