Go
Go 为主语言的开源软件
glance ---> 自托管仪表板
相比与 homepage 等仪表盘,glance 更像是一个消息聚合器,你可以在一个页面中查看来自多方的自己关注的消
例如 YouTube 的某个 channel,或者 Hacker New 上的头条,GitHub 关注的某些仓库的 issues、pr 等信息。甚至股票信息、天气等等
subtrace ---> API 观测工具
通过将后端连接到 Chrome DevTools,可以查看服务端接收和响应的请求情况。假设后端程序是基于 NodeJs 的,用法如下:
安装:
$ curl -fSLO "https://subtrace.dev/download/$(uname -s)/$(uname -m)/subtrace" && chmod +x ./subtrace运行:
- node server.js
+ ./subtrace run -- node server.jsbeszel ---> 轻量的服务监控程序
使用 Docker 轻松部署
services:
beszel:
image: henrygd/beszel
container_name: beszel
restart: unless-stopped
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
beszel-agent:当想要监控某台机器的时候,需要在对应机器上安装 agent,通过例如 45876 端口抛出机器的信息。
如果你想添加当前的机器到监控中,可以直接使用如下的 docker-compose.yaml 配置
services:
beszel:
image: henrygd/beszel
container_name: beszel
restart: unless-stopped
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
beszel-agent:
image: "henrygd/beszel-agent"
container_name: "beszel-agent"
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# monitor other disks / partitions by mounting a folder in /extra-filesystems
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
environment:
PORT: 45876
KEY: "xxxx"
networks: {}httpstat ---> 显示 HTTP 请求的统计信息
$ go install github.com/davecheney/httpstat@latest
$ httpstat https://www.google.com输出:
Connected to 142.250.197.100:443
Connected via TLSv1.3
HTTP/2.0 302 Found
Server: gws
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Cache-Control: private
Content-Length: 372
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-VyypTMVFAjhqY5eUFbO5cA' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
Content-Type: text/html; charset=UTF-8
Date: Mon, 13 Jan 2025 14:27:03 GMT
Location: https://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=https://www.google.com.hk/&ust=1736778453241792&usg=AOvVaw0Cqu8JUQEycz2WVYUZh0gO
P3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Set-Cookie: xxx[0m
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 0
DNS Lookup TCP Connection TLS Handshake Server Processing Content Transfer
[ 6ms | 0ms | 244ms | 120ms | 0ms ]
| | | | |
namelookup:6ms | | | |
connect:7ms | | |
pretransfer:252ms | |
starttransfer:372ms |
total:373ms
%
diun ---> 监控 Docker 镜像更新
监控本地 Docker 实例的所有正在运行的容器,如果镜像有更新,则发出通知,通知的形式可以是 Amqp/MQTT、邮件、Webhook、Discord 等15种方式
这是通过 docker 形式使用部署的示例配置:
name: diun
services:
diun:
image: crazymax/diun:latest
container_name: diun
command: serve
volumes:
- "./data:/data"
- "./diun.yml:/diun.yml:ro"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "TZ=Europe/Paris"
- "LOG_LEVEL=info"
- "LOG_JSON=false"
restart: always
Prometheus ---> Prometheus监控系统
配合 prometheus/node_exporter 和 prometheus/mysqld_exporter 这样的 exporter,轻易实现 Linux 系统监控和数据库监控
ddns-go ---> ipv6 内网穿透
如果当前电脑有公网的 IPv6 地址,并且外网访问链路是通的话(解决光猫、路由、运营商等问题),可以使用此工具进行 ipv6 的内网穿透
用 docker 启动:
$ docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go当然,作为 DDNS 工具,可以动态配置 DNS,例如配置 cloudflare 的 DNS 记录。适用于 IP 经常变化的情况,设置好后,一键修改 DNS 记录非常轻松
watchtower ---> 自动更新 Docker 容器基础镜像
但是使用 watchtower 可以自动更新
下面的命令作用是自动检测当前 docker 中的所有容器,并自动更新。通常让 watchtower 常驻后台,定时检查并更新镜像
$ docker run --detach \
--name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower可以通过命令行参数候指定要监控更新的容器,例如下面的命令就只会更新 nginx 和 redis。同时,可以通过 --run-once 参数来限制只执行一次,不让 watchtower 常驻后台
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once \
nginx redis
memos ---> 自托管个人知识库
一个开源、轻量级的笔记解决方案。以轻松的方式创建有意义的笔记
dozzle ---> docker 实时日志查看器
一键启动:
$ docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest
tailscale ---> 虚拟组网
功能非常强大,内网穿透、异地组网、全隧道模式等等