Bootstrap

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 服务中的密码一致
  • [email protected] # 设置 Seafile 管理员的电子邮件地址
  • SEAFILE_ADMIN_PASSWORD=asecret # 设置 Seafile 管理员的密码
    后续登录 seafile需要用到上面设置好的用户名 [email protected],密码: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)
      - [email protected]  # 设置 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 搭建个人网盘

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;