fix: 修正

This commit is contained in:
zxr
2026-07-31 18:27:53 +08:00
parent 2d4e9b1a7c
commit 6fbf857bfa
8 changed files with 56 additions and 35 deletions

4
.gitignore vendored
View File

@@ -31,6 +31,8 @@ demo/
demo/ demo/
docs/ docs/
bin/ bin/
dist/
# OS # OS
@@ -39,4 +41,4 @@ Thumbs.db
web/node_modules/ web/node_modules/
dist/ dist/
etc/license.yaml etc/license.yaml

View File

@@ -171,44 +171,45 @@ go run .\cmd\root-keygen `
## Linux 部署 ## Linux 部署
项目提供了 Linux systemd 和 Nginx 配置模板: 项目提供了 Linux systemd 和 Caddy 配置模板:
- `deploy/ops-licence.service` - `deploy/ops-licence.service`
- `deploy/nginx.conf` - `deploy/ops-license-ca.conf`Caddy
- `deploy/ops-license.conf`Nginx可选
### 文件位置 ### 文件位置
建议按模板放置: 建议按模板放置:
```text ```text
/usr/local/bin/ops-licence /data/app/ops-licence
/etc/ops-licence/ops-licence.yaml /data/app/etc/license.yaml
/etc/ops-licence/keys/signing-private.pem /data/app/etc/signing-private.pem
/etc/ops-licence/keys/signing-certificate.json /data/app/etc/signing-certificate.json
/var/lib/ops-licence
``` ```
Linux YAML 示例: Linux YAML 示例:
```yaml ```yaml
server: server:
listen_addr: "127.0.0.1:8080" listen_addr: "127.0.0.1:14522"
database: database:
dsn: "postgresql://username:password@database-host:5432/ops_licence?sslmode=disable" dsn: "postgresql://username:password@database-host:5432/ops_licence?sslmode=disable"
signing: signing:
private_key_file: "/etc/ops-licence/keys/signing-private.pem" private_key_file: "/data/app/etc/signing-private.pem"
certificate_file: "/etc/ops-licence/keys/signing-certificate.json" certificate_file: "/data/app/etc/signing-certificate.json"
``` ```
### systemd ### systemd
创建与模板一致的 `ops-licence` 系统用户和目录后,安装并启动服务: 文件放到 `/data/app` 后,安装并启动服务:
```bash ```bash
sudo install -m 0755 dist/ops-licence /usr/local/bin/ops-licence cd /data/app
sudo install -m 0644 deploy/ops-licence.service /etc/systemd/system/ops-licence.service chmod 0755 ./ops-licence
sudo install -m 0644 etc/ops-licence.service /etc/systemd/system/ops-licence.service
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl enable --now ops-licence sudo systemctl enable --now ops-licence
sudo systemctl status ops-licence sudo systemctl status ops-licence
@@ -220,12 +221,25 @@ sudo systemctl status ops-licence
sudo journalctl -u ops-licence -f sudo journalctl -u ops-licence -f
``` ```
### Nginx ### Caddy
`deploy/nginx.conf` 将 HTTPS 请求反向代理到 `127.0.0.1:8080`。部署时将其中证书路径替换为实际路径,并把配置放入 Nginx 的站点配置目录后重新加载 Nginx。 `deploy/ops-license-ca.conf``licence.apinb.com` 的 HTTPS 请求反向代理到 `127.0.0.1:14522`,并使用本地证书文件。部署时按实际域名和证书路径修改后,并入主 Caddyfile 或单独加载:
Go 可执行文件已经包含前端资源Nginx 只需要代理所有路径,不需要另外复制 `web/dist` ```bash
sudo caddy validate --config deploy/ops-license-ca.conf
sudo systemctl reload caddy
```
配置示例:
```caddyfile
licence.apinb.com {
tls /data/licence/apinb.com.pem /data/licence/apinb.com.key
reverse_proxy 127.0.0.1:14522
}
```
Go 可执行文件已经包含前端资源Caddy 只需要反向代理所有路径,不需要另外复制 `web/dist`
## Go SDK 接入 ## Go SDK 接入
将整个 `sdk/licence` 目录复制到目标 Go 项目中,保持目录内所有文件完整。目标项目不需要连接许可证管理系统。 将整个 `sdk/licence` 目录复制到目标 Go 项目中,保持目录内所有文件完整。目标项目不需要连接许可证管理系统。
@@ -329,7 +343,7 @@ go build -buildvcs=false -o dist\ops-licence .\cmd\ops-licence
```text ```text
cmd/ops-licence 服务与签发密钥命令 cmd/ops-licence 服务与签发密钥命令
cmd/root-keygen 根密钥生成工具 cmd/root-keygen 根密钥生成工具
deploy Linux systemd 与 Nginx 模板 deploy Linux systemd 与 Caddy/Nginx 模板
docs 设计、实施与使用文档 docs 设计、实施与使用文档
etc 本地 YAML 配置 etc 本地 YAML 配置
internal 服务端实现、数据库迁移和内嵌前端 internal 服务端实现、数据库迁移和内嵌前端

View File

@@ -1,11 +0,0 @@
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/tls/ops-licence.crt;
ssl_certificate_key /etc/nginx/tls/ops-licence.key;
location / {
proxy_pass http://127.0.0.1:8080;
}
}

View File

@@ -4,10 +4,8 @@ After=network.target
[Service] [Service]
Type=simple Type=simple
User=ops-licence WorkingDirectory=/data/app
Group=ops-licence ExecStart=/data/app/ops-licence serve --config /data/app/etc/license.yaml
WorkingDirectory=/var/lib/ops-licence
ExecStart=/usr/local/bin/ops-licence serve --config /etc/ops-licence/ops-licence.yaml
Restart=on-failure Restart=on-failure
[Install] [Install]

View File

@@ -0,0 +1,4 @@
licence.apinb.com {
tls /data/licence/apinb.com.pem /data/licence/apinb.com.key
reverse_proxy 127.0.0.1:14522
}

11
deploy/ops-license.conf Normal file
View File

@@ -0,0 +1,11 @@
server {
listen 443 ssl;
server_name licence.apinb.com;
ssl_certificate /data/licence/apinb.com.pem;
ssl_certificate_key /data/licence/apinb.com.key;
location / {
proxy_pass http://127.0.0.1:14522;
}
}

BIN
dist/ops-licence vendored

Binary file not shown.

View File

@@ -5,5 +5,8 @@ database:
dsn: "postgresql://postgres:Weidong2023~!@8.137.107.29:19432/ops_licence?sslmode=disable" dsn: "postgresql://postgres:Weidong2023~!@8.137.107.29:19432/ops_licence?sslmode=disable"
signing: signing:
private_key_file: 'D:\work\license-secrets\issuer-a\signing-private.pem' private_key_file: "/data/app/etc/signing-private.pem"
certificate_file: 'D:\work\license-secrets\issuer-a\signing-certificate.json' certificate_file: "/data/app/etc/signing-certificate.json"
# signing:
# private_key_file: 'D:\work\license-secrets\issuer-a\signing-private.pem'
# certificate_file: 'D:\work\license-secrets\issuer-a\signing-certificate.json'