JoeZhao

跨出界

Hey, I’m JoeZhao, a software engineer, and a gamer.

如何在Ubuntu 18.04上安装Seafile Pro并使用Caddy代理前端

读完这篇文章,你应该能完成安装以下软件:

  • python & python-pip
  • caddy
  • mysql-server
  • jre
  • seafile-pro ```

注意:如果你想流程的跑 Seafile,机器配置建议:

1. 内存 >= 2GB
2. CPU >= 2 Core

环境准备#

以下只针对 ubuntu 18.04 系统,在下一个 LTS 版本出来之前,应该都不会更新。

以下命令没有特殊说明,请不要直接使用 root 用户执行。

# 系统更新
sudo apt update
sudo apt upgrade

# Python 2.7 及其依赖安装
apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache
pip install pillow moviepy

# 注意,在执行 pip install pillow moviepy 的时候,我这边报了一个无法安装的错误,是因为 setuptools 版本过低导致的,如果你也有类似的提示,可以尝试先执行以下代码:
pip install —upgrade setuptools

# install 
sudo apt install default-jre

# mysql install
sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

基本环境依赖到此就完成了。

注:数据库安装详细内容可以点击这里前往: 「如何在 Ubuntu 18.04 安装 MySQL」

Seafile 安装#

下载 Seafile 安装文件#

一、下载地址:社区版
二、下载地址:专业版

需要注册账号,专业版没有 license 文件的情况下,可以支持 3 个账号的长期试用。

差别如图,感兴趣的可以看一下。

661299325

来源:Seafile 功能对照说明

部署和目录设计#

注:这里下载的文件名是 seafile-pro-server_7.0.9_x86-64_Ubuntu.tar.gz,实际操作中因为版本和系统的不同有所差异,请注意替换。

因为 systemd 服务有 ProtectHome 的配置,所以为了遵循相关约定,把 seafile 的目录放在外部,如 /data/fun2ex

sudo mkdir -p /data/fun2ex
cd /data/fun2ex
# 移动安装文件到安装目录下
mv ~/download/seafile-pro-server_* /data/fun2ex
# 将 seafile-pro-server_* 移动到 fun2ex 目录下后
tar -xzfv seafile-pro-server_*
mkdir installed
mv seafile-pro-server_* installed

现在,你的目录结构大致如下:

# tree /data/fun2ex -L 2
/data/fun2ex
├── installed
   └── seafile-pro-server_7.0.9_x86-64_Ubuntu.tar.gz
└── seafile-pro-server-7.0.9
    ├── reset-admin.sh
    ├── runtime
    ├── seafile
    ├── seafile.sh
    ├── seahub
    ├── seahub.sh
    ├── setup-seafile.sh
    └── upgrade

以下为官方说明:

这样设计目录的好处在于
1、和 seafile 相关的配置文件都可以放在 /data/fun2ex 目录下,便于集中管理.
2、后续升级时,你只需要解压最新的安装包到 /data/fun2ex 目录下.

seafile 服务安装#

cd seafile-pro-server-*
./setup-seafile-mysql.sh #运行安装脚本并回答预设问题

安装脚本会检测是否有遗漏的软件包,只需要根据提示一步一步操作过去就 OK 了。

安装完成之后目录看起来如下:

/data/fun2ex
├── ccnet
│   ├── ccnet.sock
│   ├── misc
│   ├── mykey.peer
│   └── seafile.ini
├── conf
│   ├── ccnet.conf
│   ├── gunicorn.conf
│   ├── seafdav.conf
│   ├── ...
├── installed
│   └── seafile-pro-server_7.0.9_x86-64_Ubuntu.tar.gz
├── pro-data
├── seafile-data
├── seafile-pro-server-7.0.9
│   ├── ...
│   ├── seafile-background-tasks.sh
│   ├── seafile.sh
│   ├── seaf-import.sh
│   ├── seafobj_migrate.py
│   ├── seahub
│   ├── seahub-extra
│   ├── seahub.sh
│   ├── setup-seafile-mysql.py
│   ├── setup-seafile-mysql.sh
│   ├── setup-seafile.sh
│   ├── sql
│   └── upgrade
├── seafile-server-latest -> seafile-pro-server-7.0.9
└── seahub-data

seafile 服务管理#

cd /data/fun2ex/seafile-server-lates
./seafile.sh { start | stop | restart }  # Seafile 服务管理
./seahub.sh { start | stop | restart }   # 管理 Seahub 网站 (默认运行在8000端口上)

注意: 你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。

seafile 配置完毕。

Caddy 服务器配置#

安装请直接查看这篇文章 Caddy 安装配置指南 (LCMP)

Caddyfile 配置如下:

example.com {
    proxy / localhost:8000 {
        transparent
    }
    gzip
}

example.com/seafhttp {

    proxy / localhost:8082 {
        without /seafhttp
        transparent
    }
    gzip
}

example.com/media {
    root /data/fun2ex/seafile-server-lates/seahub/media
    gzip
}

然后重新启动 caddy 服务就可以了。

sudo systemctl restart caddy
  1. 如果这里使用的是 /root/fun2ex/seafile-server-lates/seahub/media 的话,caddy 重启会报没有权限的错误。
  2. 如果使用的是 /home/someuser/fun2ex/seafile-server-lates/seahub/media 的目录,caddy 重启则会报告 ProtectHome 的错误。

解决方法有两个,第一个是修改 caddy.service 的配置。
第二种是把 sefile data 目录迁移出去,强烈推荐使用这个方法。

—EOF—

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。