Docker安装dashy面板
参考
https://blog.laoda.de/archives/docker-compose-install-dashy
https://hub.docker.com/r/lissy93/dashy
https://hub.docker.com/r/stefangenov/dashy
搭建环境的时候lissy93/dashy这个docker镜像有问题。所以改用stefangenov/dashy。
注:在我的armbian上无论是lissy93还是stefangenov的最新image都有问题。而这两个包在Oracle VPS(arm64)上都可以正常使用。
服务器192.168.1.100(192.168.1.108)
~/docker/dashy
docker-compose.yml
1 | version: '3.3' |
icons目录来自https://github.com/walkxcode/dashboard-icons
instance启动之后会有错误。可以用docker exec -it da96 /bin/sh命令进到控制台,执行log里提示的命令。
cha256 哈希加密,地址用这个: https://emn178.github.io/online-tools/sha256.html
1 | auth: |
在04上启动dashy
端口4380
1 | ubuntu@instance4-arm64:~/docker/dashy_lissy93$ pwd |
打开防火墙
虚拟机之间10.0.0.0/24之间4000-4999防火墙打开
设置caddy并添加basicauth
1 | ubuntu@instance4-arm64:~/docker$ caddy hash-password |
重启caddy
1 | sudo systemctl restart caddy |
设置反向FRP以映射到内网服务器
FRP默认是把本地的服务映射到在公网服务器上。
我的需求是把在外网服务器上运行的服务映射到本地,在局域网内访问。
本来这个需求可以通过ssh隧道实现。但是不知道是不是外网服务器在GFW的另一侧,ssh隧道可以映射,但是图片显示不出来。除了GFW想不出原因。
于是想借用之前已经建立的FRP作为隧道,在外网服务器运行frpc,在内网服务器运行frps,把外网的dashy(端口4380)映射到本地4380端口。最后通过nginx的反向代理映射到80端口。
原FRP隧道
服务器外网02,端口8888
客户端内网100
在内网100上运行frps
1 | [common] |
参考vaultwarden 用docker搭建vaultwarden(bitwarden)服务器中关于frp的部分
创建/etc/systemd/system/frps.service文件1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=Frp Server Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/home/user/frp/frps -c /home/user/frp/frps.ini
[Install]
WantedBy=multi-user.target
enable并start frps
1 | sudo systemctl enable frps |
这一步完成在100上7000端口启动frps
下一步就是让02服务器借助原有的frp连接访问这个端口
修改100上的frpc.ini并重启frpc
在/home/user/frp/frpc.ini文件添加如下内容1
2
3
4
5[frps]
type = tcp
local_ip = 127.0.0.1
local_port = 7000
remote_port = 7000
重启1
sudo systemctl restart frpc
这一步就把100上的7000端口映射到原frp服务器端(02)上的7000端口。以后在02上访问本机7000端口就相当于访问100的7000端口。
在外网02上运行frpc
注: dashy是运行在04上的(10.0.0.127)
1 | [common] |
frpc连接的是本机的7000端口。把10.0.0.127(04)的4380端口映射到服务器(100)的4380端口。
创建/etc/systemd/system/frpc.service文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# 1. put frpc and frpc.ini under /usr/local/frpc/
# 2. put this file (frpc.service) at /etc/systemd/system
# 3. run `sudo systemctl daemon-reload && sudo systemctl enable frpc && sudo systemctl start frpc`
# Then we can manage frpc with `sudo service frpc {start|stop|restart|status}`
# See also: https://nosame.net/use-frp-to-reverse-proxy-your-nas/
# Alternative for server:
# - Offical: https://github.com/fatedier/frp/blob/a4cfab6/conf/systemd/frpc%40.service
[Unit]
Description=Frp Client Service
After=network.target
Wants=network.target network-online.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/home/ubuntu/frp/frpc -c /home/ubuntu/frp/frpc.ini
[Install]
WantedBy=multi-user.target
enable并start frpc
1 | sudo systemctl enable frpc |
启动后,在内网100的服务器上4380端口就映射了04上的4380端口。
此时,已经可以通过http://192.168.1.100:4380访问04服务器上的dashy了。
在内网100上设置nginx
1 | server { |
第1个11443是https的运行在100上的vaultwarden
第2个80是运行在04上的dashy