Skip to content
0

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.js

beszel ---> 轻量的服务监控程序

使用 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
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_exporterprometheus/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 ---> 虚拟组网

功能非常强大,内网穿透、异地组网、全隧道模式等等

Released under the MIT License.