运行 Dat 服务器,让文件保持在线

关于 Dat 的介绍,请见这里

因为 Dat 是一个分布式的数据分享工具,你的电脑需要保持运行 Dat 分享服务。出于便利的考虑,你可能需要一个独立的服务器来代替你的电脑做这项工作,这样你的电脑可以安心地关机,并且分享过的数据还能在网络上保持可用。同时,一个 Dat 服务器还可以实时备份你的数据和历史状态。

下面以一个运行 Debian 9 的 VPS 为例,介绍在 root 用户下搭建 Dat 服务器的步骤。

安装

安装 nodejs:

1
2
curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt install -y nodejs

安装 hypercored:

1
npm install -g hypercored

这里说明一下, hypercored 会根据指定文件夹中的 feeds 来进行 re-host,re-host 中的文件是保持实时同步的,故这个想要保持实时同步的服务器自身也成为了一个数据节点。

配置

建立一个文件夹用于存储 Dat 文件:

1
mkdir ~/dat

feeds 文件中填写一个或多个 dat:// 地址,这里以一个为例:

1
echo 'dat://你的hash地址 >> ~/dat/feeds

添加 systemd 服务:

1
vim /etc/systemd/system/hypercored.service
/etc/systemd/system/hypercored.service
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Dat Hypercored Re-host Service
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
ExecStart=/usr/bin/hypercored --cwd /root/dat
Restart=always
WorkingDirectory=/root

[Install]
WantedBy=multi-user.target

运行

启动服务并查看运行状态:

1
2
3
systemctl enable hypercored
systemctl start hypercored
systemctl status hypercored

你会看到如下的输出:

Watching ~/dat/feeds for a list of active feeds
Archiver key is xxxxxxxxxxxxxxxxxxxxx...
Swarm listening on port 3238
Adding xxxxxxxxxxxxxxxxxx...

systemctl status hypercored 出现 Full sycned 时,证明所分享的文件已经完全上载好,你可以关掉本地的分享服务了。

额外说明

根据 Dat Project 的官方文档,他们推荐使用 add-to-systemdlil-pids 这两个工具代替手工添加 systemd 服务。我在试验过后,发现通过 lil-pids 运行 hypercored 后,hypercored 一直卡在 Archiver key is... 阶段,也不会创建 archiver 文件夹。所以我后来采取了上文中手动添加服务的方法,运行正常。至于官方推荐方法失效的原因暂不明确,有兴趣的朋友可以试验一下:

1
2
3
4
npm install -g add-to-systemd lil-pids
mkdir ~/dat
echo "hypercored --cwd ~/dat" > ~/dat/services
add-to-systemd dat-lil-pids $(which lil-pids) ~/dat/services ~/dat/pids

Give a hand

码字不易,如果你已经按照本文教程运行成功了,你可以添加此行:

dat://07dc95f064cecda12f48b6860c354a43439929ecf02668e8cb138c951fe6e129/

feeds 文件中,帮助本站(目前 90 MB)在茫茫的互联网留存。谢谢!

本文由 Chaos | Dreamcreator108 原创,转载请标明来源,转载时请勿篡改 dat 链接,感谢你的配合!

相关文章

Mastodon