这篇文章指导从零开始搭建一个 cozy 网盘的过程,由于官方文档还不是很完善,只给出了 Debian 和 Raspbian 系统下的安装指南。我们这里抛开指南中的繁琐步骤,使用 docker 简单几步安装,支持所有操作系统环境。

要求

所使用的技术栈

安装步骤

1. 修改 DNS 解析

第一步是设定一个 二级域名 给 cozy 服务使用,我们这里设定为 cozy,进入你的 DNS 解析服务提供商(国内推荐 DNSPod,国外推荐 Cloudflare)的网站,修改 DNS 解析记录如下:

假设域名为 example.com,IP 地址为 x.x.x.x

类型 域名 记录值 说明
A cozy.example.com x.x.x.x 将这个二级域名解析到服务器的 IP 上
CNAME *.cozy.example.com cozy.example.com 将该二级域名的所有子域名解析到自身上

TTL(Time-To-Live,域名解析记录存留时间)使用默认的就好。
距离 DNS 解析生效还有一段时间,我们进行下一步。

2. 安装 Docker 和 Docker-compose

在 Docker 列出的 受支持平台 中找到你的系统,点击对应的安装教程,按照步骤安装。
Docker 支持的平台

Docker 安装完成后,接下来是安装 Docker-compose,同样按照官方的 安装指南,选择对应的系统平台安装。
选择 Docker 安装指南

3. 安装 Cozy

github 上有一个 非官方 的 Cozy 的 Docker 项目,叫做 easy-cozy,作者在 readme 中也给出了安装步骤,本文就是在这个基础上稍加修改写成的。
3.1 下载这个仓库到本地

git clone https://github.com/vsellier/easy-cozy
cd easy-cozy

3.2 修改配置文件

cp env-template .env

将修改文件中 COZY_TLDEMAIL 两项 ,其他可以使用默认配置。COZY_TLD 是你的服务器二级域名,即第一步中设定的域名。EMAIL 用于向 let’s encrypt 申请 https 证书时使用,作用是 90 天后证书到期时发邮件提醒你续签。

DATABASE_DIRECTORY=/var/lib/cozy/db
STORAGE_DIRECTORY=/var/lib/cozy/storage
COZY_TLD=cozy.example.com
EMAIL=name@example.com

3.3 创建数据目录
这里的两个目录需要和配置文件中的一致

mkdir -p /var/lib/cozy/db /var/lib/cozy/storage

赋予权限读写权限

sudo chown 1000 /var/lib/cozy /var/lib/cozy/db /var/lib/cozy/storage

3.4 启动 Cozy 容器

docker-compose up -d

耐心等待 3 个容器启动,通过命令

docker-compose ps

查看容器状态,等到 3 个容器都 up 以后,执行下一步
3.5 初始化数据库

sudo ./init.sh

正确的返回应该为三个 ok,如果出现错误,可能是容器还没有准备好,检查上一步。
3.6 创建个人网盘

docker-compose exec cozy ./cozy instances add --passphrase yourpassword --apps drive,settings cozy.example.com

命令中 yourpassword 是登录所需要的密码,可以登录后在网页端修改。cozy.example.com 是你设置的域名。
这一步和 eazy-cozy 中的步骤有所不同,eazy-cozy 中介绍的是创建一个四级域名的链接(比如 myuser.cozy.example.com),而我们这里为了方便访问,创建的是三级域名的链接(cozy.example.com)。
如果需要创建多用户网盘的(四级域名),请使用以下命令创建一个子网盘:

sudo ./create-instance.sh myuser

了解更多请查阅 easy-cozy

4. 完成

打开浏览器,输入网址即可访问到创建好的网盘,输入密码登录即可。
Cozy 登录窗口
恭喜,你已成功搭建你的个人网盘!

卸载

要完整卸载的话,打开终端,进入 eazy-cozy 目录中,运行以下命令清除 docker 镜像

docker-compose -f down

删除本地所有数据文件

rm -rf /var/lib/cozy/db /var/lib/cozy/storage