Back

Deploy Seafile using Caddy

现在云服务提供商漫天飞,但是要找一个安全可靠的却很难。国内的提供商出于隐私方面考虑,我显然不会选;国外提供商出于网络方面考虑,也被我放弃了,那就只剩一下一条路,靠自己。NAS 我是买不起的,所以最后选择在自己的服务器上搭建一个。

那么问题来了,搭建哪一个呢?最开始我尝试了一下 NextCloud/OwnCloud,但是很快就放弃了,主要是因为这套系统需要依靠 PHP、MySQL 和 Apache 这一套我觉得非常臃肿的组合。而且就算我把它成功跑起来了,还是有不少奇奇怪怪的错误。最后找到了 Seafile 这个比较轻便,搭建起来也方便的系统。

安装 Seafile

先从这里下载对应的服务器端到服务器上。

wget https://download.seadrive.org/seafile-server_6.1.1_x86-64.tar.gz

为了方便以后的管理、升级操作,Seafile 的文件自有一套结构。首先创建一个文件夹,名字随意,这里以 seafile 为例,把下载好的压缩包移动到该文件夹下,接着解压,最后把压缩包移动到 installed 文件夹中归档:

mkdir seafile
mv seafile-server_* seafile
cd seafile
tar -xzf seafile-server_*
mkdir installed
mv seafile-sever_* installed

然后安装 Seafile 的依赖:

#on Debian/Ubuntu 14.04 server
apt-get update
apt-get install python2.7 libpython2.7 python-setuptools python-ldap python-urllib3 sqlite3 python-requests

# on Ubuntu 16.04 server or over
apt-get update
apt-get install python
apt-get install python2.7 libpython2.7 python-setuptools python-ldap python-urllib3 ffmpeg python-pip sqlite3 python-requests
pip install Pillow==4.3.0
pip install moviepy  # used in movie file thumbnails

最后就是安装了:

cd seafile-server-*
./setup-seafile.sh

只要按照提示一次输入服务器名、服务器IP或域名等信息即可。

安装完毕后运行

./seafile.sh start # Start Seafile service
./seahub.sh start  # Start Seahub website

其中,seafile 是的核心服务,seahub 我目测是网页端服务。

启动后通过浏览器打开 http://:8000 (8000为默认端口,在安装的时候改了的请自行更改为对应端口)应该就能看到 Seafile 的页面了。

配置 Caddy

现在 Seafile 已经可以正常使用了,但是使用 IP 地址访问显然是不方便的,添加一个域名岂不是美滋滋。Seafile 的官方文档中提供了 Nginx 和 Apache 的配置文件实例,但是我还是想使用我之前一直在用的 Caddy,稍微研究了一下,以下是配置过程。

用在安装时创建的管理员账号登陆,点击右上角头像,选择 “System Admin” 进入管理页面,左侧选择 “Settings”,更改右侧的 “SERVICE_URL” 为你的域名(比如 http://example.com ),“FILE_SERVER_ROOT” 为 你的域名+/seafhttp(比如 http://example.com/seafhttp ,seafhttp 也可以改成别的,于 Caddy 的配置文件中保持一致即可),点击右侧绿色的勾保存。

然后在 Caddy 的配置文件中添加以下内容:

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

example.com/seafhttp {
        proxy / 127.0.0.1:8082 {
                without /seafhttp
                transparent
        }
        gzip
}

example.com/media {
	# 下面的路径根据自己的存放的位置更改
        root /var/www/seafile/seafile-server-latest/seahub/media
        gzip
}

保存并重启 Caddy 即可通过自己的域名来访问了。

尾巴

Seafile 可以算是一个全平台的解决方案了,在 iOS、Android 上都有客户端,桌面端也很齐全(好像是用 Qt 开发的)。我自己使用了一个月,感觉稳定性还是不错的,没有出过错误。功能上可以开启加密、文件历史、有快照、可以分享、直链等等非常丰富。

Licenced under CC BY-NC-SA 4.0