IPFS安装

IPFS 安装

项目地址: https://github.com/ipfs/go-ipfs/

官方文档: https://docs.ipfs.io/ [GFW…]

个人部署: https://ipfs-doc.fiix.one [基于cf+ipfs网络分发]

IPNS地址: /ipns/ipfs-doc.fiix.one [自行选择支持的网关]

一. 一键安装

  • 适配架构amd64/arm64/arm/386
1
curl -sL https://sh.fiix.one/ipfs_install.sh | sudo bash -

二. Bash自动补齐

1
source /etc/bash_completion.d/ipfs
  • 提示报错
1
2
[root@ipfs ~]# source /etc/bash_completion.d/ipfs
bash: complete: nosort: 无效的选项名
  • 修复方法
1
vim /etc/bash_completion.d/ipfs
  • 将文件最后一行中的-o nosort 去除
1
2
#complete -o nosort -o nospace -o default -F _ipfs ipfs
complete  -o nospace -o default -F _ipfs ipfs
  • 重新执行
1
source /etc/bash_completion.d/ipfs

三. 配置IPFS运行用户/文件路径

IPFS默认文件路径为/root/.ipfs/

1. 停止ipfs daemon 进程

1
systemctl stop ipfs-daemon

2. 转移ipfs 配置及文件

  • 演示路径为/srv/ipfs
1
2
3
sudo mv /root/.ipfs/  /srv/ipfs/
## 更改自定义用户
sudo chown your-user: /srv/ipfs

3. 编辑ipfs-daemon.service 文件

1
sudo vim /etc/systemd/system/ipfs-daemon.service 
  • 文件样本如下:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[Unit]
Description=IPFS daemon
After=network.target

[Service]
User=root
# 如非root用户请自定义
Group=root
# 如非root用户请自定义
LimitCPU=infinity
LimitFSIZE=infinity
LimitDATA=infinity
LimitSTACK=infinity
LimitCORE=infinity
LimitRSS=infinity
LimitNOFILE=infinity
LimitAS=infinity
LimitNPROC=infinity
LimitMEMLOCK=infinity
LimitLOCKS=infinity
LimitSIGPENDING=infinity
LimitMSGQUEUE=infinity
LimitRTPRIO=infinity
LimitRTTIME=infinity
Environment=IPFS_PATH=/srv/ipfs/ 
# 可自定义ipfs根文件储存位置 eg:/srv/ipfs 注意修改权限与上面用户一致
ExecStart=/usr/local/bin/ipfs daemon --enable-gc --enable-pubsub-experiment
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
  • 执行
1
2
sudo systemctl daemon-reload
sudo systemctl start ipfs-daemon
  • 添加到环境变量
1
2
sudo echo 'IPFS_PATH="/srv/ipfs/"'  >>  /etc/environment
source /etc/environment

四. 防火墙放行/端口转发

  • 在路由器端配置公网4001 tcp/udp 转发至服务器主机4001 tcp/udp
1
2
3
sudo firewall-cmd --zone=public --add-port=4001/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4001/udp --permanent
sudo firewall-cmd --reload
  • 如需对外或内网设备提供网关功能/开启API等操作
  • 需酌情开启端口转发及服务器防火墙端口5001/API /8080/Gateway
  • 注意: 需配置$IPFS_PATH/config文件中的相关选项