WebLLN 使用 vue3 编写,并使用 LLN 服务器提供的 API LLN 对接 Google OpenID Connect 使用 Google 账号系统,并使用 ETCD 存储持久化状态
https://github.com/rkonfj/weblln
https://github.com/rkonfj/lln
https://github.com/etcd-io/etcd
https://github.com/caddyserver/caddy
git clone https://github.com/rkonfj/weblln
# 编辑 src/config.js,llnApi 更改为第2步部署的 lln 服务公开的 https 地址
npm run build
etcd
。 https://etcd.io/docs/v3.5/op-guide/客户端 ID
,客户端密钥
以及重定向 URI
lln
caddy
包装 lln 为 https
。https://caddyserver.com/docs/quick-starts/https下面是一些提示: 先拉源码
git clone https://github.com/rkonfj/lln
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w"
编辑 config.yml, 做个填空题
listen: 127.0.0.1:8876
oidc:
- provider: google
issuer: https://accounts.google.com
clientID: _________________________
clientSecret: _________________________
redirect: _________________________
scopes:
- profile
- email
state:
etcd:
endpoints:
- _________________________
把 lln
和 config.yml
复制到目标服务器,并创建 systemd 服务
[Unit]
Description=LLN
After=network.target network-online.target
Requires=network-online.target
[Service]
ExecStartPre=/bin/mkdir -p /opt/lln
WorkingDirectory=/opt/lln
ExecStart=/usr/bin/lln -c /etc/lln.yml
[Install]
WantedBy=multi-user.target
运行 caddy
[Unit]
Description=Caddy
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/caddy reverse-proxy --from https://api.lowlevelnews.com --to localhost:8876
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
[Install]
WantedBy=multi-user.target