Debian安装Seafile
前言
Debian 无图形化界面通过 docker 安装 Seafile。我安装 Seafile12 没有成功,按照之前经验安装。
方法
安装docker
参考官方文档 Install Docker Engine on Debian。
- 设置 Docker’s
apt
repository.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- 安装最新docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 测试安装
sudo docker run hello-world
安装 Seafile
参考Seafile官方安装文档及Seafile docker-compose.yml 。
新建Seafile文件夹
新建一个seafile 文件夹,在其下新建 seafile-data 和 seafile-mysql 两个文件夹。在seafile-data中新建 docker-compose.yml 文件。
sudo vim docker-compose.yml
我把官方Seafile docker-compose.yml V11 拷贝粘贴进去,然后按照下面对应修改。
docker-compose.yml 文件解析
需要修改的地方:
- /opt/seafile-mysql/db:/var/lib/mysql # 指定宿主机路径 /opt/seafile-mysql/db 持久化 MySQL 数据,这里改为创建的 seafile-mysql/db
- /opt/seafile-data:/shared # 指定宿主机路径 /opt/seafile-data 用于存储 Seafile 数据,改为创建的 seafile-data
- 端口映射 “80:80” # 将宿主机的 80 端口映射到容器的 80 端口(HTTP)
- DB_ROOT_PASSWD=db_dev # 设置数据库 root 用户的密码,必须与 db 服务中的密码一致
- SEAFILE_ADMIN_EMAIL=me@example.com # 设置 Seafile 管理员的电子邮件地址
- SEAFILE_ADMIN_PASSWORD=asecret # 设置 Seafile 管理员的密码
后续登录 seafile需要用到上面设置好的用户名me@example.com
,密码:asecret
。
services: # 定义服务(容器)部分
db: # 数据库服务
image: mariadb:10.11 # 使用 MariaDB 10.11 版本的镜像
container_name: seafile-mysql # 容器名称为 seafile-mysql
environment: # 设置环境变量
- MYSQL_ROOT_PASSWORD=db_dev # 设置 MySQL root 用户的密码,默认为 db_dev============
- MYSQL_LOG_CONSOLE=true # 启用控制台日志输出
- MARIADB_AUTO_UPGRADE=1 # 启用 MariaDB 自动升级功能
volumes: # 挂载数据卷,用于持久化存储
- /mnt/SeafileDir/seafile-mysql/db:/var/lib/mysql # 指定宿主机路径 /opt/seafile-mysql/db 持久化 MySQL 数据============
networks: # 定义服务所连接的网络
- seafile-net # 连接到 seafile-net 网络
restart: always
memcached: # 缓存服务
image: memcached:1.6.18 # 使用 Memcached 1.6.18 版本的镜像
container_name: seafile-memcached # 容器名称为 seafile-memcached
entrypoint: memcached -m 256 # 设置 Memcached 启动时的命令,指定内存大小为 256MB
networks: # 定义服务所连接的网络
- seafile-net # 连接到 seafile-net 网络
restart: always
seafile: # Seafile 主服务
image: seafileltd/seafile-mc:11.0-latest # 使用 Seafile 官方提供的最新版本镜像
container_name: seafile # 容器名称为 seafile
ports: # 映射端口
- "80:80" # 将宿主机的 80 端口映射到容器的 80 端口(HTTP)============
# - "443:443" # 如果启用了 HTTPS,可以取消注释该行来映射 443 端口
volumes: # 挂载数据卷,用于持久化存储
- /mnt/SeafileDir/seafile-data:/shared # 指定宿主机路径 /opt/seafile-data 用于存储 Seafile 数据============
environment: # 设置环境变量
- DB_HOST=db # 指定 MySQL 数据库主机为 db(即上面的 db 服务)
- DB_ROOT_PASSWD=db_dev # 设置数据库 root 用户的密码,必须与 db 服务中的密码一致
- TIME_ZONE=Asia/Shanghai # 设置时区为上海时区(可选,默认为 UTC)
- SEAFILE_ADMIN_EMAIL=me@example.com # 设置 Seafile 管理员的电子邮件地址============
- SEAFILE_ADMIN_PASSWORD=asecret # 设置 Seafile 管理员的密码============
- SEAFILE_SERVER_LETSENCRYPT=false # 是否使用 Let's Encrypt 来生成证书(false 表示不使用)
- SEAFILE_SERVER_HOSTNAME=seafile.example.com # 设置 Seafile 服务器的主机名
depends_on: # 依赖的服务
- db # 依赖数据库服务 db
- memcached # 依赖缓存服务 memcached
networks: # 定义服务所连接的网络
- seafile-net # 连接到 seafile-net 网络
restart: always
networks: # 网络定义部分
seafile-net: # 定义名为 seafile-net 的网络
相比我之前安装方法新增了 restart: always
,让容器自动重启。
在 seafile-data 文件夹中(含docker-compose.yml文件)下执行
docker compose up -d
安装完成,浏览器输入机器IP地址,登录seafile。
登录后的配置
参考 Ubuntu 24.04 LTS 通过 docker desktop 安装 seafile 搭建个人网盘。