fix: 修正
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -31,6 +31,8 @@ demo/
|
||||
demo/
|
||||
docs/
|
||||
bin/
|
||||
dist/
|
||||
|
||||
|
||||
|
||||
# OS
|
||||
@@ -39,4 +41,4 @@ Thumbs.db
|
||||
|
||||
web/node_modules/
|
||||
dist/
|
||||
etc/license.yaml
|
||||
etc/license.yaml
|
||||
|
||||
48
README.md
48
README.md
@@ -171,44 +171,45 @@ go run .\cmd\root-keygen `
|
||||
|
||||
## Linux 部署
|
||||
|
||||
项目提供了 Linux systemd 和 Nginx 配置模板:
|
||||
项目提供了 Linux systemd 和 Caddy 配置模板:
|
||||
|
||||
- `deploy/ops-licence.service`
|
||||
- `deploy/nginx.conf`
|
||||
- `deploy/ops-license-ca.conf`(Caddy)
|
||||
- `deploy/ops-license.conf`(Nginx,可选)
|
||||
|
||||
### 文件位置
|
||||
|
||||
建议按模板放置:
|
||||
|
||||
```text
|
||||
/usr/local/bin/ops-licence
|
||||
/etc/ops-licence/ops-licence.yaml
|
||||
/etc/ops-licence/keys/signing-private.pem
|
||||
/etc/ops-licence/keys/signing-certificate.json
|
||||
/var/lib/ops-licence
|
||||
/data/app/ops-licence
|
||||
/data/app/etc/license.yaml
|
||||
/data/app/etc/signing-private.pem
|
||||
/data/app/etc/signing-certificate.json
|
||||
```
|
||||
|
||||
Linux YAML 示例:
|
||||
|
||||
```yaml
|
||||
server:
|
||||
listen_addr: "127.0.0.1:8080"
|
||||
listen_addr: "127.0.0.1:14522"
|
||||
|
||||
database:
|
||||
dsn: "postgresql://username:password@database-host:5432/ops_licence?sslmode=disable"
|
||||
|
||||
signing:
|
||||
private_key_file: "/etc/ops-licence/keys/signing-private.pem"
|
||||
certificate_file: "/etc/ops-licence/keys/signing-certificate.json"
|
||||
private_key_file: "/data/app/etc/signing-private.pem"
|
||||
certificate_file: "/data/app/etc/signing-certificate.json"
|
||||
```
|
||||
|
||||
### systemd
|
||||
|
||||
创建与模板一致的 `ops-licence` 系统用户和目录后,安装并启动服务:
|
||||
文件放到 `/data/app` 后,安装并启动服务:
|
||||
|
||||
```bash
|
||||
sudo install -m 0755 dist/ops-licence /usr/local/bin/ops-licence
|
||||
sudo install -m 0644 deploy/ops-licence.service /etc/systemd/system/ops-licence.service
|
||||
cd /data/app
|
||||
chmod 0755 ./ops-licence
|
||||
sudo install -m 0644 etc/ops-licence.service /etc/systemd/system/ops-licence.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now ops-licence
|
||||
sudo systemctl status ops-licence
|
||||
@@ -220,12 +221,25 @@ sudo systemctl status ops-licence
|
||||
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 接入
|
||||
|
||||
将整个 `sdk/licence` 目录复制到目标 Go 项目中,保持目录内所有文件完整。目标项目不需要连接许可证管理系统。
|
||||
@@ -329,7 +343,7 @@ go build -buildvcs=false -o dist\ops-licence .\cmd\ops-licence
|
||||
```text
|
||||
cmd/ops-licence 服务与签发密钥命令
|
||||
cmd/root-keygen 根密钥生成工具
|
||||
deploy Linux systemd 与 Nginx 模板
|
||||
deploy Linux systemd 与 Caddy/Nginx 模板
|
||||
docs 设计、实施与使用文档
|
||||
etc 本地 YAML 配置
|
||||
internal 服务端实现、数据库迁移和内嵌前端
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,8 @@ After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=ops-licence
|
||||
Group=ops-licence
|
||||
WorkingDirectory=/var/lib/ops-licence
|
||||
ExecStart=/usr/local/bin/ops-licence serve --config /etc/ops-licence/ops-licence.yaml
|
||||
WorkingDirectory=/data/app
|
||||
ExecStart=/data/app/ops-licence serve --config /data/app/etc/license.yaml
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
|
||||
4
deploy/ops-license-ca.conf
Normal file
4
deploy/ops-license-ca.conf
Normal 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
11
deploy/ops-license.conf
Normal 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
BIN
dist/ops-licence
vendored
Binary file not shown.
@@ -5,5 +5,8 @@ database:
|
||||
dsn: "postgresql://postgres:Weidong2023~!@8.137.107.29:19432/ops_licence?sslmode=disable"
|
||||
|
||||
signing:
|
||||
private_key_file: 'D:\work\license-secrets\issuer-a\signing-private.pem'
|
||||
certificate_file: 'D:\work\license-secrets\issuer-a\signing-certificate.json'
|
||||
private_key_file: "/data/app/etc/signing-private.pem"
|
||||
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'
|
||||
Reference in New Issue
Block a user