ZHANGYU.dev

October 14, 2023

使用Seafile,Ubuntu下搭建个人网盘

Linux1.0 min to read

这是一个伪需求,实际上,无论是使用iCloud或者是OneDrive,都比个人网盘好使,好用,更快

Seafile

Seafile是一个 高性能的网盘,同时也有在线的Markdown编辑,在Github上有7.2k的star,使用CPython开发,并且支持Docker安装,同时配套有手机客户端

同类开源网盘还有NextCloudOwnCloud,但是它们都是PHP开发的,个人不太喜欢,因为以前用Wordpress卡卡的😂

安装

Seafile 7 只能使用docker,用docker-compose简单配置安装,以下命令都在root用户下执行

  1. 首先需要安装docker-compose

    apt-get install docker-compose -y
  2. 接着需要下载官网的docker-compose.yml,其中# Requested的是必填项(其实有默认值)

    • 修改SEAFILE_ADMIN_EMAILSEAFILE_ADMIN_PASSWORD,登录时的用户邮箱和密码

    • 修改SEAFILE_SERVER_HOSTNAME为服务器域名

    • 如果不想映射到80端口,修改portsxxxx:80

  3. docker-compose.yml目录下执行

    docker-compose up -d
  4. 访问you-domain.com:port,登录进入Seafile

上传出现网络错误

这个问题困扰半天,后面发现需要登录后 => 右上角 => 系统管理 => 左侧设置 => URL => FILE_SERVER_ROOT改为正确的路径

修改docker内应用配置

docker是隔离环境,修改需要使用特殊命令,如果要查看docker内的seafile配置

docker exec -it seafile ls /shared/seafile

非80端口问题

如果不是80端口,用nginx反向代理后,在有子目录情况下,会出现资源文件找不到,是因为资源文件请求是站点路径,不是相对路径,暂时不知道配置nginx能否解决这个问题

我的解决方案就很简单,不用子目录形式的反向代理,直接加个二级域名

目前发现问题

在简单的体验后,觉得这个没啥子用,如果需要文件同步更推荐syncthing