feat(phase5): polish + deployment
- skill/SKILL.md: rewritten to 9 lines — 'status is automatic' - deploy-to-agents.sh: no AGENTS.md injection; deploys hook + npm install - install.sh: clean install flow; prints required env vars - deploy/status-watcher.service: systemd unit file - deploy/Dockerfile: containerized deployment (node:22-alpine) - src/live-status.js: deprecation warning + start-watcher/stop-watcher pass-through - README.md: full docs (architecture, install, config, upgrade guide, troubleshooting) - make check: 0 errors, 0 format issues - npm test: 59 unit + 36 integration = 95 tests passing
This commit is contained in:
36
deploy/status-watcher.service
Normal file
36
deploy/status-watcher.service
Normal file
@@ -0,0 +1,36 @@
|
||||
[Unit]
|
||||
Description=Live Status v4 - OpenClaw session watcher daemon
|
||||
Documentation=https://git.eeqj.de/ROOH/MATTERMOST_OPENCLAW_LIVESTATUS
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=node
|
||||
WorkingDirectory=/opt/openclaw-live-status
|
||||
|
||||
# Load environment variables from file
|
||||
EnvironmentFile=/etc/status-watcher.env
|
||||
|
||||
# Start the watcher daemon directly (not via CLI wrapper)
|
||||
ExecStart=/usr/bin/node /opt/openclaw-live-status/src/watcher-manager.js start
|
||||
|
||||
# Graceful shutdown — watcher handles SIGTERM (marks boxes interrupted, flushes)
|
||||
ExecStop=/bin/kill -TERM $MAINPID
|
||||
|
||||
# Restart policy
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
StartLimitBurst=3
|
||||
StartLimitIntervalSec=60s
|
||||
|
||||
# Logging — output goes to journald
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=status-watcher
|
||||
|
||||
# Security hardening
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user