最近 青云QingCloud 在搞特价促销,最便宜的一款主机(VM Instance)已经低至年费只需 89.9 元人民币,味千拉面现在都得 51 块一碗了…,买来之后可以做什么呢?有人搭博客、有人跑 Git、有人做测试,我这里提供一个思路,可以最大程度的榨取这款机器的价值,且解决工作与生活中的实际问题和需求。
从 2007 年逐渐兴起的移动互联网让我们每个人手头都有多款电子设备,比如我自己的日常设备:
- Android Phone - 电话(随时)
- iPad Pro - 移动办公辅助设备(差旅)
- Mac Book Pro - 移动办公主力设备(差旅)
- PC with Arch Linux - 固定办公设备(办公室或家)
还有更多人在使用 Windows 设备,由此可见日常工作和生活中我们跨设备之广。为了解决在这么多不同厂商、不同操作系统的设备之间保持数据同步及一致,大家条件反射会想到 Dropbox 和 百度网盘,但是:
- 前者在墙外,是个强技术活儿、且也不适合用来做数据同步、花销高、还有额外 xx 风险…;
- 后者存在严重的隐私和用户数据安全问题;
- 如果你的数据比较多,免费版将无法支持的了,而付费,则将大大超过 89.9 元。
著名的开源项目 Nextcloud 可以很容易地完美解决此需求,而且因为是自部署(self-hosted),所以不存在隐私问题、免费版限制等问题。当然,Nextcloud 绝不仅仅是一个网盘和文件同步功能,通过其插件体系可以很容易实现一个完整的生产力平台。
以下操作使用的是一台位于 广东 2 区 的 Arch Linux 主机,你可以选择自己喜欢的 Region 和 Linux 分发版。创建主机我就不描述了,随着向导走即可。
1. 准备工作环境
1.1. EIP
主机创建完成之后,需要 EIP(弹性公网 IP 地址)连接互联网。在 Web Console 导航栏中进入 网络与 CDN -> 公网 IP,然后申请一个 IPv4 EIP,绑定到你的主机上即可。
1.2. Docker
修改 pacman 镜像源:
/etc/pacman.d/mirrorlist
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
刷新操作系统:
pacman -Syyu
reboot
安装 Docker:
pacman -S docker
配置 Docker Daemon:
/etc/docker/daemon.json
{
"experimental": true,
"bridge": "none",
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/"
]
}
启动、启用 Docker:
systemctl start docker
systemctl enable docker
2. 运行 nextcloud
创建工作目录:
mkdir -p /srv/nextcloud/{server,data}
拉取最新稳定版、并启动 nextcloud server:
docker pull nextcloud:latest
docker run --name nextcloud --restart unless-stopped \
-v /srv/nextcloud/server:/var/www/html \
-v /srv/nextcloud/data:/var/www/html/data \
--network host -d nextcloud:latest
然后打开浏览器,输入地址 http://your-eip-address,即可开始对 nextcloud server 进行初始化配置。该模版默认使用 TCP 80 端口,请记得去 安全 -> 防火墙,确保 TCP 下行 80 端口为开启状态。
初始化配置很简单,只有三个项目:
- 在初始化界面里,创建的第一个用户拥有管理员权限;
- 保持 Storage & database 不变;
- 取消 (uncheck) Install recommended apps。
然后点击 Finish Setup,等待完成即可。
3. 优化 nextcloud
Nextcloud 是一个庞大的系统,可以调教优化的地方非常多,我这里仅仅指出两点比较适合小团体或个人使用的网盘及文件同步功能的优化,毕竟大家在促销时通常也是购买低配置的机型。
3.1. 禁止没啥用的 apps
使用上一步初始化时创建的 nextcloud 管理员账号登陆后,打开 apps 配置页,地址是 http://your-eip-address/setti...,禁用以下 apps:
- Accessibility
- Activity
- Collaborative tags
- Federation
- First run wizard
- Nextcloud announcements
- Privacy
- Recommendations
- Support
- Usage survey
3.2. cron job
Nextcloud 有一系列的工作是在后台工作的,新建以下两个配置文件:
/etc/systemd/system/nextcloud-cron.service
[Unit]
Description=Nextcloud cron.php job
[Service]
ExecStart=docker exec --user www-data nextcloud php -f /var/www/html/cron.php
/etc/systemd/system/nextcloud-cron.timer
[Unit]
Description=Run Nextcloud cron.php every 10 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=10min
Unit=nextcloud-cron.service
[Install]
WantedBy=timers.target
启用、启动:
systemctl daemon-reload
systemctl enable nextcloud-cron.timer
systemctl start nextcloud-cron.timer
然后,以管理员账号登陆 nextcloud,进入 Settings -> Administration -> Basic settings -> Background jobs,选中 Cron 这个项目,即可。
4. nextcloud 客户端
Nextcloud 客户端 支持市面上全部的操作系统,包括 Windows、Linux、Mac OS X、Android、iOS、iPadOS,从其官网或各移动应用市场均可下载安装。
5.(可选的)极致省钱操作
合理使用青云QingCloud 的一些免费政策,花点儿技术配置时间,可以天长日久的极致省钱,以下举两个例子。
5.1. 使用 IPv6 EIP
若你的日常网络环境(办公室、家庭等)有 IPv6 支持的话,强烈建议在以上配置结束后使用 IPv6 的 EIP 地址替代 IPv4 的,因为青云QingCloud IPv6 地址是免费的。目前在中国多数情况下,IPv6 是默认部署了的,以北京电信为例,其 ADSL 宽带和手机 4G 网络都已良好支持 IPv6,且局方默认均开启。
注意,由于 IPv6 地址无法直接在浏览器地址栏使用,所以必须使用 FQDN 域名解析到 IPv6 地址,青云QingCloud 提供了免费的 DNS 权威解析服务,位于 Web Console 导航栏的 网络与CDN -> DNS。
5.2. 使用对象存储
青云QingCloud 的对象存储在 10GB 容量以内是免费的,而且跟位于同一 Region 的主机之间的流量是内网,速度稳定高速、且完全免费,在 Web Console 导航栏中进入 存储 -> 对象存储,然后创建一个 bucket。
Nextcloud 可以支持 S3 对象存储作为 external storage,而青云QingCloud 对象存储完全兼容 兼容S3 APIs,只需以下三步操作:
- 在管理员界面的 apps 里启用 External storage support。
- 在 Settings -> Administration -> External storages 中选中 All user to mount external storage、并确保 Amazon S3 是被选中的子项。
- 在 Settings -> Personal -> External storages 中选择 Amazon S3,然后输入相应的青云QingCloud 对象存储的信息。
这样就多了 10GB 免费空间了。
更多玩法,大家可以挖掘,have fun !
更多内容可以访问 www.qingcloud.com