前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 Docker 搭建 Seafile 私有云流程记录

使用 Docker 搭建 Seafile 私有云流程记录

作者头像
2Broear
发布于 2024-03-12 02:38:25
发布于 2024-03-12 02:38:25
1.3K02
代码可运行
举报
文章被收录于专栏:2B博客2B博客
运行总次数:2
代码可运行

前言

自之前的那篇静态文章 “Docker 安装 Seafile 私有云记录” 丢失后就一直搁置,这之间因为各种原因在服务器和本地都来回重装了几次,那么今天就简单来聊下这个私有云的搭建流程,也当做个记录了(@一下催更本文的Ying酱/滑稽)

私有云

一般来说,线上网盘用的最多的是百度云盘,不过限速的尿性大家都知道,然后其他比较良心的要不就没得赚开不了几天,要不就用户少直接没了,总之线上网盘市场早就被百度垄断了。那么后续就衍生出了私人 nas 存储系统,市面上常见的 nas 服务商有群晖(synology)威联通等,用户可以购买他们的硬件设备及硬盘后使用他们提供的 nas 软件存储服务,市场上是比较认可的。

另外还有一些比如坚果云,oneDrive、ownCloud、Syncthing、Seafile、Nextcloud 这类云储存服务商,提供付费计划及开发私有部署支持,这里我选的是 Seafile 作为私人网盘来使用。

Seafile

作为一款开源的企业云盘,首先 seafile 提供了各平台客户端(Windows, Mac, Linux, iOS, Android)以便在任意环境中搭建使用,而在云存储服务方面提供了文件实时同步、支持多人协同工作、以及类似微软 onedrive 的挂载盘等特性(更多特性查看官网:Seafile – 开源的企业私有网盘 私有云存储软件 企业维基 知识管理

ok,切回正题。

搭建 Seafile 环境

在 seafile 官方文档 中,seafile可在 windows(已过时) Linux 环境下部署,建议在 linux 环境下搭建 seafile,但如果你像我一样有在 windows 下搭建 seafile 的需求,那么可以在 windows 下的 WSL(windows subsystem for linux)环境下进行搭建(此环境下需安装 docker desktop 客户端,详见:Windows Docker 安装)。因为我是在 wsl2 中使用 docker 进行搭建的,其他搭建环境请在 seafile 官方文档中查阅。

docker 部署

seafile 分为 社区开源版 及 付费专业版,选择需要的版本后再进行安装。首先安装 docker

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for CentOS
yum -y install docker
# for Ubuntu
apt-get install docker -y

设置开机自动启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for CentOS
systemctl start docker
systemctl enable docker

安装 docker-compose 管理依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for CentOS
yum install docker-compose -y
# for Ubuntu
apt-get install docker-compose -y

下载并修改 docker-compose.yml (此处演示 9.0 社区版,其他版本 yml 配置下载在 用Docker部署Seafile.md 文档中查阅)一般情况只需要修改 seafile 中的 ports(seafile服务访问端口)、SEAFILE_ADMIN_EMAIL (默认管理员邮箱)、SEAFILE_ADMIN_PASSWORD (默认管理员密码)即可。

注意:如需搭建专业版,此处需提前注册 seafile 并在用户中心查看密码后通过 docker login docker.seadrive.org 登入 seafile 后使用 docker 选择并拉取最新专业版镜像:docker pull docker.seadrive.org/seafileltd/seafile-pro-mc:latest

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '2.0'
services:
  db:
    image: mariadb:10.5
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=db_dev  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - seafile-net

  memcached:
    image: memcached:1.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
          
  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "9527:80" # 自定义 80 访问端口
#      - "443:443"  # If https is enabled, cancel the comment. 
    volumes:
      - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # Requested, the value shuold be root's password of MySQL service.
#      - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=asecret     # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether use letsencrypt to generate cert.
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # Specifies your host name.
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

修改完 docker-compose.yml 配置文件后,将其放入需要安装 seafile 的文件夹路径中(此处为 /opt )后启动 Seafile 服务:

注意 seafile 9.0 专业版 需要手动在宿主机上创建 elasticsearch 的映射路径,并且给 777 权限,否则 elasticsearch 启动会报路径权限问题:mkdir -p /opt/seafile-elasticsearch/data && chmod 777 -R /opt/seafile-elasticsearch/data这个很坑,会导致 seafile 专业版搜索服务自动停止,需要多尝试几次

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt  # 定位 docker-compose.yml 所在路径
docker-compose up -d  # 启动 seafile 服务

此时,在浏览器中访问 localhost(或你的服务器外网域名)+ docker-compose.yml 配置文件中绑定的 80 端口即可访问 seafile 服务(默认管理员邮件及密码均在 docker-compose.yml 中),如果需要以域名方式访问服务,可以使用 nginx 反代()或配置本地路由ddns转发(tplink支持tpddns免费域名)

记得登录后在 系统管理 中设置 SERVICE_URLFILE_SERVER_ROOT 为实际域名路径,否则将影响文件上下载等问题。

到这里如果是搭建在云服务器上就已经搭建完成了,但如果用作本地 nas 存储则还需要在本地路由上将 seafile 配置文件中的端口转发到本机ip内外网端口上(如绑定端口9527,本机ip为192.168.0.108,则在路由上设置如下:

外部端口

内部端口

IP地址

协议类型

9527

9527

192.168.0.108

ALL

另外如需在内网环境下访问时速度最大化,需要路由器支持 端口回流Nat Loopback) 功能,或做内网穿透)另外为防止开关机后本机 ip 变动,还需将本机 ip 与 mac 地址进行绑定(类似tp路由上的 IP与MAC绑定

部署 onlyOffice

搭建完 seafile 服务后,如需使用 office 在线协同编辑功能,需要另外部署 onlyoffice 免费版,以下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull onlyoffice/documentserver  # 使用 docker 拉取 onlyoffice 镜像

# 安装 onlyoffice
cd /opt
mkdir seafile-onlyoffice 
cd seafile-onlyoffice 
mkdir log 
mkdir data 
mkdir lib
mkdir db

# 初始化 onlyoffice(默认8088端口,可选 -p 8088:443)
docker run -i -t -d -p 8088:80 --name onlyoffice --restart=always -v /opt/seafile-onlyoffice/log:/var/log/onlyoffice -v /opt/seafile-onlyoffice/data:/var/www/onlyoffice/Data -v /opt/seafile-onlyoffice/lib:/var/lib/onlyoffice -v /opt/seafile-onlyoffice/db:/var/lib/postgresql onlyoffice/documentserver

完成之后在浏览器输入 localhost+绑定端口(8088)即可查看其是否正常运行,之后在 /opt/seafile-data/seafile/conf 中编辑 seahub_settings.py 配置文件,在其末尾添加如下代码以启用 onlyoffice(其中需要修改 ONLYOFFICE_APIJS_URL 中的 localhost 为绑定域名)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http://localhost:8088/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')

完成后 cd /opt 使用 docker-compose restart 命令重启 seafile 服务即可。需要注意的是,其 8088 端口也需在路由器设置端口转发,如下

外部端口

内部端口

IP地址

协议类型

8088

8088

192.168.0.108

ALL

其他事项

基本上配置完成就能满足个人使用了,因为专业版免费用户 3 个,社区开源版则无限制(功能上有些区别,可上官网查看),如果需要开放用户注册,管理员身份登录后在后台设置中勾选 允许用户注册发送激活邮件,发送邮件需在 seahub_settings.py 配置文件中添加如下 smtp 内容(示例为腾讯企业邮箱)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.exmail.qq.com'  # 服务商 host
EMAIL_HOST_USER = 'admin@example.com'  # 邮件地址
EMAIL_HOST_PASSWORD = 'smtppassword'  # smtp邮件密码
EMAIL_PORT = 465
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER

保存后执行同样执行 docker-compose restart 命令重启 seafile 服务即可生效。

专业版搜索问题

专业版需要设置 elasticsearch 目录的 777 权限,我设置过好几次,有时候不生效,有时候又可以,问题就是导致其搜索服务一直返回错误(开源版则没有这个问题)seafile 论坛基本已经没人了,提了几个问题都没有人回答。

配置默认用户容量大小在 seafile.conf 中配置,其他配置项参考:seafile.conf 配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[quota]
default = 5

最后附带一些常用的 seahub_settings.py 配置项,其他配置项参考:Seahub 配置(注意修改后执行 docker-compose restart 重启 seafile 生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在线预览的文件大小上限,默认为 30M.
FILE_PREVIEW_MAX_SIZE = 30 * 1024 * 1024

# 缩略图
ENABLE_THUMBNAIL = True
THUMBNAIL_IMAGE_SIZE_LIMIT = 300
THUMBNAIL_ROOT = '/opt/seahub-data/thumbnail/thumb/'
THUMBNAIL_SIZE_FOR_ORIGINAL = 1024

# Disable Admin Dashboard Controls
# ENABLE_SETTINGS_VIA_WEB = False

# Enable Admin view any repo but encrypted
ENABLE_SYS_ADMIN_VIEW_REPO = True

垃圾回收

docker gc:docker exec seafile /scripts/gc.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[history]
keep_days = 7

[library_trash]
expire_days = 30
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/12/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
自建 seafile pro 网盘
Seafile 是国产开源的一个自建网盘,作为网盘十分优越,客户端支持多平台,支持团队协作,可以在线编辑Office文件,最重要的是支持自行部署。
鹏程
2023/07/24
1.2K0
自建 seafile pro 网盘
云同步网盘-seafile
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/17
5.5K0
docker安装seafile
项目需求 使用seafile搭建一个内网网盘 安装过程 官方给的例子如下: https://docs.seafile.com/d/cb1d3f97106847abbf31/files/?p=/dock
2023/07/04
6950
Seafile-开源企业云盘和文档协作平台
这些功能的结合使得Seafile成为一个协作流畅、可控和高效的工具,助力团队在共享文件和协作过程中取得更好的效果。无论是小型团队还是跨部门合作,Seafile都能提供强大的共享协作支持,促进团队的协同工作和创造力。
huolong
2024/03/02
7190
Seafile开源私有云自定义首页Logo图片
一 在启动页面找到logo的地址有两处 /opt/seafile/seafile-server-7.1.5/seahub/frontend/src/assets/seafile-logo.png /opt/seafile/seafile-server-7.1.5/seahub/media/img/seafile-logo.png 二 利用挂载把他们顶掉即可 version: '2.0' services: db: image: mariadb:10.1 container_name:
ydymz
2021/01/05
1.6K0
使用Seafile搭建个人专属私有云盘
Seafile是一款强大优秀的云同步软件,拥有跨平台文件同步、移动端文件访问、挂载盘、文件共享和权限控制、文件锁定、文件版本管理和资料库镜像、在线编辑和协同编辑、审计日志等功能。下面演示一下该软件安装步骤。
兔云小新LM
2021/01/04
11.4K0
使用Seafile搭建个人专属私有云盘
seafile配置全文搜索
可以在 seafevents.conf 中设置 [INDEX FILES] 选项来控制文件搜索的行为。你需要重新启动 seafile 和 seahub 使它们生效。
鹏程
2023/07/24
9710
Ubuntu 搭建 Seafile
本文档用来说明通过预编译好的安装包来安装并运行基于 MySQL/MariaDB 的 Seafile 服务器。(MariaDB 是 MySQL 的分支)
木制robot
2018/10/09
3.6K0
腾讯轻量应用服务器部署seafile私有云盘
Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux, iOS, Android 平台。支持文件同步或者直接挂载到本地访问。下面就来介绍使用腾讯轻量应用服务器部署seafile私有云盘。
zuantou
2021/07/21
18.9K0
腾讯轻量应用服务器部署seafile私有云盘
[seafile]seafile迁移和onlyoffice整合
要点是数据库同步,我使用mysql,所以先导入mysql数据库再执行seafile安装脚本即可。基本步骤分三部:
用户9314062
2022/05/20
1.5K0
CentOS7下使用 Seafile安装搭建私有云盘
[root@seafile ~]# yum -y install epel-release [root@seafile ~]# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro [root@seafile ~]# yum -y install Python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel [root@seafile ~]# yum -y install python-pip [root@seafile ~]# pip install --upgrade pip [root@seafile ~]# pip install pillow moviepy [root@seafile ~]# yum install -y mariadb-server ##安装数据库 [root@seafile ~]# systemctl enable mariadb ##设置数据库开机启动 [root@seafile ~]# systemctl start mariadb ##启动数据库 [root@seafile ~]# mysql_secure_installation ##为数据库设置密码 [root@seafile ~]# wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.3_i386.tar.gz ##下载seafile软件包 [root@seafile ~]# tar -zxf seafile-server_6.2.3_x86-64.tar.gz ##解压软件包 [root@seafile ~]# mkdir -p seafile/installed/ ##创建安装包存放位置 [root@seafile ~]# mv seafile-server_6.2.3_x86-64.tar.gz seafile/installed/ [root@seafile ~]# mv seafile-server-6.2.3/ seafile/ [root@seafile ~]# cd seafile/ [root@seafile seafile]# cd seafile-server-6.2.3/ [root@seafile seafile-server-6.2.3]# ./setup-seafile-mysql.sh ##会要填很多信息,按要求填就可以了
星哥玩云
2022/07/19
4.4K0
如何使用 Seafile 搭建个人网盘
Seafile 是一款安全、高性能的开源网盘(云存储)软件。Seafile 提供了主流网盘(云盘)产品所具有的功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。由于 Seafile 是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。
硬盘侠
2018/10/22
21.8K2
如何使用 Seafile 搭建个人网盘
【玩转Lighthouse】Seafile网盘与K8s集群
疫情期间被封闭在家,唯有动手玩弄轻量服务器给我带来快感。Seafile搭建私人网盘并使用K8s集群进行部署是一项非常不错的消磨时间的好选择。
用户8987928
2022/04/12
1.4K1
搭建一个属于自己 可多平台同步的私有云盘 —— Seafile
前段时间,各个网盘纷纷下线,导致目前能用的大网盘,也就几个,还都限速… 然后很早的时候就有人想让我写个 自建私有云盘(网盘)的教程了,我以前用过 owncloud,但是这个玩意,安装后进去一看,一堆报错的,看着就头大,然后网上查了查,也有人安利,最终我选择了 Seafile,我对这类程序也不了解,就先写个Seafile教程好了。 Seafile 简介 Seafile 是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问题,注重安全和性能。 Seafile 通过“资料库”来分类管理文件,每个资料
Zip
2018/07/20
5.6K0
Docker 部署Django博客项目
我之前部署我的博客项目(Django应用),没用Docker,直接借助的宝塔Linux服务器面板在服务器上部署的,部署起来也是十分的方便,使用了Django+Nginx+Supervisor+Gunicorn部署,可查看我写过的一片博客:Centos安装python3并使用Nginx+Gunicorn+virtualenv+supervisor来部署django项目。
緣來
2020/01/02
1.5K0
Docker 部署Django博客项目
【腾讯云的1001种玩法】如何利用腾讯云搭建个人网盘( Seafile )
YingJoy_
2017/03/15
33.6K0
【腾讯云的1001种玩法】如何利用腾讯云搭建个人网盘( Seafile )
CENTOS安装seafile专业版
seafile是个很好的开源云盘系统,服务端和客户端都支持WINDOWS、linux、苹果等系统,客户端也支持安卓手机系统。在国内各大云盘厂商集体“跑路”货服务缩水的的情况下,自建一个云盘是个不错的选择。之前360关闭云盘后,我买了百度云盘一年。但是百度云盘后来的文件“历史版本”功能严重缩水,只支持.txt后缀的文本文件,而以前是所有文件都可以有“历史版本”。所以就果断停止续费了。 回来说正题,seafile服务器端有社区版和专业版。其中专业版可以免费使用3个用户。我是自用,3个用户足够用, 所以首选安装专
用户2135432
2018/06/04
5.1K0
基于Docker部署4.4版本的zabbix监控平台
提供两种不同的安装方式,两种方式都可以,自己根据实际情况选择,也可以跟我文档一样搭建两套,为了方便后期管理yml,个人建议使用3.2小节的安装方式,单机编排
没有故事的陈师傅
2020/04/10
2.7K1
基于Docker部署4.4版本的zabbix监控平台
搭建 Harbor 私有镜像仓库
什么是 Harbor? ---- harbor 是 VMware 公司开源的企业级 DockerRegistry 项目,项目地址为 https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。它以 Docker 公司开源的 registry 为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还
keepyan
2018/12/13
1.8K0
搭建 Harbor 私有镜像仓库
在Ubuntu 16.04上安装Seafile并配置Nginx
Seafile是一个跨平台的文件托管工具,包含了适用于Linux和Windows的服务器应用程序,以及适用于Android,iOS,Linux,OS X和Windows的GUI客户端。它支持文件版本控制和快照,双重身份验证,WebDAV(Web-based Distributed Authoring and Versioning),并且可以配合Nginx和Apache使用以启用HTTPS。
Techeek
2018/09/06
4.2K0
相关推荐
自建 seafile pro 网盘
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验