[Unit]
Description=KnowForge service (Go API + embedded Next.js)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/var/www/knowforge/current
ExecStart=/var/www/knowforge/current/knowforge-server -port 6969
EnvironmentFile=/etc/knowforge/knowforge.env
Environment=KNOWFORGE_UPGRADE=enabled
Environment=KNOWFORGE_WEB_PORT=6900
Environment=KNOWFORGE_STATIC_ROOT=/var/www/knowforge/static
Restart=always
RestartSec=3
TimeoutStopSec=15
NoNewPrivileges=true
PrivateTmp=true
ProtectHome=true
ProtectSystem=strict
# 同时允许新旧数据目录可写:既有部署的数据仍在 /var/lib/infosphere,改名后不强制迁移即可继续读写;
# 新部署使用 /var/lib/knowforge。二者取决于 env 里的 KNOWFORGE_DATA/INFO_SPHERE_DATA。
ReadWritePaths=/var/lib/knowforge /var/lib/infosphere /var/www/knowforge/static /var/www/knowforge
[Install]
WantedBy=multi-user.target