服务器项目集合

◇ Nginx Proxy Manager

官方文档:https://nginxproxymanager.com/

docker-compose:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3.8'
services:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- ./html:/html

部署静态网站:

Advanced 一栏填入以下配置:

1
2
3
location / {
root /html/xxx; # 修改成静态文件目录
}

◇ Alist

官方文档:https://alist.nn.ci/

Blog 参考:使用 AList 搭建云盘聚合平台

docker-compose:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3.3'
services:
alist:
image: 'xhofe/alist:latest'
container_name: alist
volumes:
- './data:/opt/alist/data'
- './drive/disk:/mnt/drive/disk'
- './drive/thumbnail:/mnt/drive/thumbnail'
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
restart: unless-stopped

◇ Aria2

官方文档:https://p3terx.com/archives/docker-aria2-pro.html

docker-compose:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
version: "3.8"
services:
aria2-pro:
container_name: aria2-pro
image: p3terx/aria2-pro
environment:
- PUID=0
- PGID=0
- UMASK_SET=022
- RPC_SECRET=xxxxxx # RPC 密钥
- RPC_PORT=6800
- LISTEN_PORT=6888
- DISK_CACHE=64M
- IPV6_MODE=false
- UPDATE_TRACKERS=true
- TZ=Asia/Shanghai
volumes:
- ./aria2-config:/config
- ./aria2-downloads:/downloads
- ../alist/data/temp:/opt/alist/data/temp # alist 离线下载路径
# If you use host network mode, then no port mapping is required.
# This is the easiest way to use IPv6 networks.
network_mode: host
# network_mode: bridge
# ports:
# - 6800:6800
# - 6888:6888
# - 6888:6888/udp
restart: unless-stopped
# Since Aria2 will continue to generate logs, limit the log size to 1M to prevent your hard disk from running out of space.
logging:
driver: json-file
options:
max-size: 1m

# AriaNg is just a static web page, usually you only need to deploy on a single host.
ariang:
container_name: ariang
image: p3terx/ariang
command: --port 6880 --ipv6
network_mode: host
# network_mode: bridge
# ports:
# - 6880:6880
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m

RPC 服务反代:

在 Nginx Proxy Manager Advanced 一栏填入以下配置:

1
2
3
location /jsonrpc {
proxy_pass http://172.18.0.1:6800/jsonrpc;
}

◇ Alist with aria2

💡 建议 AlistAria2 分开部署,方便进阶配置。

官方文档:https://alist.nn.ci/

Blog 参考:使用 AList 搭建云盘聚合平台

docker-compose:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: '3.3'
services:
alist:
image: 'xhofe/alist-aria2:latest'
container_name: alist
volumes:
- './data:/opt/alist/data' # 改为自己的路径
- './drive/disk:/mnt/drive/disk'
- './drive/thumbnail:/mnt/drive/thumbnail'
# network_mode: host
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
restart: unless-stopped

更新 tracker:

1
docker exec alist sh -c "cd /root/.aria2 && ./tracker.sh"

◇ Subconverter

官方文档:https://github.com/tindy2013/subconverter/blob/master/README-docker.md

docker-compose:

1
2
3
4
5
6
7
8
9
version: '3'
services:
subconverter:
image: 'tindy2013/subconverter:latest'
container_name: subconverter
restart: unless-stopped
# network_mode: host
ports:
- "25500:25500"

修改内部配置:

1
docker exec -it subconverter /bin/sh

◇ Netdata

官方文档:https://learn.netdata.cloud/docs/installing/one-line-installer-for-all-linux-systems

验证下载脚本的完整性:

1
[ "d08f083715862c4887b360c595209715" = "$(curl -Ss https://get.netdata.cloud/kickstart.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"

安装:

1
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --disable-telemetry

◇ Adguard Home

官方文档:https://adguard.com/en/adguard-home/overview.html

docker-compose:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: '3'
services:
adguardhome: # 服务名称
container_name: adguardhome # 容器名称
image: adguard/adguardhome:latest
restart: unless-stopped
# network_mode: host
ports:
- 53:53/tcp
- 53:53/udp
- 67:67/udp
- 69:68/udp
- 82:80/tcp
- 444:443/tcp
- 444:443/udp
- 3001:3000/tcp
- 853:853/tcp
- 853:853/udp
- 5443:5443/tcp
- 5443:5443/udp
- 6060:6060/tcp
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf

◇ 常用命令

Vim 粘贴模式:

1
2
3
4
5
# 进入 paste 模式
:set paste

# 解除 paste 模式
:set nopaste

查看端口是否被占用:

1
sudo netstat -tunlp | grep <port_number>​

Docker IP 地址:

1
2
3
4
5
6
7
8
9
# 显示宿主 IP 地址
# docker0 是 Docker 默认创建的网桥,用于连接宿主机和容器之间的网络通信
ip addr show docker0

# 显示指定容器的 IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name_or_id>

# 显示所有容器 IP 地址
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

◇ 参考内容

  1. Vim中复制粘贴缩进错乱问题的解决方案. https://blog.csdn.net/wzy_1988/article/details/50264285
  2. 如何获取 docker 容器(container)的 ip 地址. https://blog.csdn.net/sannerlittle/article/details/77063800
  3. 如何获取 Docker 容器的 IP 地址. https://www.freecodecamp.org/chinese/news/how-to-get-a-docker-container-ip-address-explained-with-examples/
  4. 如何在Nginx Proxy Manager(NPM)上部署静态网站. https://blog.laoda.de/archives/host-static-sites-on-npm
  5. NPM (Nginx Proxy Manager) Reverse Proxy ARIA2’s JSONRPC. https://kingtam.win/archives/aria2-jsonrpc.html