How to install seafile pro and use caddy proxy fronted on Ubuntu 18.04

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

  • 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 个账号的长期试用。

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

CE1B8731-2622-4363-A3BC-EE9BE9512EB0.png

来源: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—

本文链接:

https://fun2ex.com/tech/how-to-install-seafile-pro-and-use-caddy-proxy-fronted-on-ubuntu-18-04.html
1 + 4 =
快来做第一个评论的人吧~