fix: 修正
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -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
|
||||||
|
|||||||
48
README.md
48
README.md
@@ -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 服务端实现、数据库迁移和内嵌前端
|
||||||
|
|||||||
@@ -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]
|
[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]
|
||||||
|
|||||||
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"
|
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'
|
||||||
Reference in New Issue
Block a user