deploy(pay): pangolin1 部署脚手架(systemd/config/env/deploy,crypto+nezha 双渠道)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
[Unit]
|
||||
Description=pay v2 收款服务(pangolin1 专用实例;crypto USDT + 哪吒(nezha) CNY 双渠道,MOCK 关)
|
||||
Documentation=https://github.com/wangjia/pay
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
# 崩溃后不放弃自愈,但避免瞬时死循环耗尽资源(呼应 pangolin-agent.service 的自愈风格,
|
||||
# 这里用有限重启而非 Restart=always,因 payd 不是"必须永不停"的网络自愈进程)。
|
||||
# 注:StartLimitIntervalSec=/StartLimitBurst= 是 [Unit] 段指令(现代 systemd,
|
||||
# 与 pangolin-agent.service 的用法一致),不是 [Service] 段——放错段会被忽略。
|
||||
StartLimitIntervalSec=60
|
||||
StartLimitBurst=5
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=payv2
|
||||
Group=payv2
|
||||
WorkingDirectory=/var/lib/pay-v2
|
||||
EnvironmentFile=/etc/pay-v2/pay.env
|
||||
ExecStart=/opt/pay-v2/payd
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
# ── 加固 ─────────────────────────────────────────────────────────────────
|
||||
# ProtectSystem=strict 把整个文件系统挂只读,仅 ReadWritePaths 列出的目录可写
|
||||
# (sqlite 库文件 + 未来任何本地状态都落 /var/lib/pay-v2)。/etc/pay-v2 下的
|
||||
# config.yaml / pay.env 只读挂载即可,不需要写权限。
|
||||
# 仍需正常出网:连 TronGrid(crypto 查链)、哪吒网关(nezha 下单/查单/回调验签)、
|
||||
# 回调 pangolin-server 的 /v1/webhook/pay——因此不设 PrivateNetwork=true,
|
||||
# 也不把 RestrictAddressFamilies 收窄到只剩 AF_UNIX(仍留 AF_INET/AF_INET6)。
|
||||
NoNewPrivileges=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/var/lib/pay-v2
|
||||
PrivateTmp=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelLogs=true
|
||||
ProtectControlGroups=true
|
||||
ProtectClock=true
|
||||
ProtectHostname=true
|
||||
ProtectProc=invisible
|
||||
RestrictSUIDSGID=true
|
||||
RestrictRealtime=true
|
||||
RestrictNamespaces=true
|
||||
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
||||
LockPersonality=true
|
||||
RemoveIPC=true
|
||||
# payd 是纯 Go 静态二进制(CGO_ENABLED=0 交叉编译,sqlite 走 modernc 纯 Go 实现,
|
||||
# 无 cgo/JIT),历史上 MemoryDenyWriteExecute=true 对这类构建安全;若启动后
|
||||
# journalctl 看到 SIGSYS/mmap 相关崩溃,先注释这一行排查。
|
||||
MemoryDenyWriteExecute=true
|
||||
CapabilityBoundingSet=
|
||||
AmbientCapabilities=
|
||||
UMask=0027
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user