| 1 | [Unit] |
| 2 | Description=CodeWhale Runtime API |
| 3 | Wants=network-online.target |
| 4 | After=network-online.target |
| 5 | |
| 6 | [Service] |
| 7 | Type=simple |
| 8 | User=codewhale |
| 9 | Group=codewhale |
| 10 | WorkingDirectory=/opt/whalebro |
| 11 | # Legacy /etc/deepseek is loaded first for old installs; /etc/codewhale wins. |
| 12 | EnvironmentFile=-/etc/deepseek/runtime.env |
| 13 | EnvironmentFile=-/etc/codewhale/runtime.env |
| 14 | ExecStart=/bin/sh -lc 'exec /home/codewhale/.cargo/bin/codewhale serve --http --host 127.0.0.1 --port "${CODEWHALE_RUNTIME_PORT:-${DEEPSEEK_RUNTIME_PORT:-7878}}" --workers "${CODEWHALE_RUNTIME_WORKERS:-${DEEPSEEK_RUNTIME_WORKERS:-2}}" --auth-token "${CODEWHALE_RUNTIME_TOKEN:-${DEEPSEEK_RUNTIME_TOKEN}}"' |
| 15 | Restart=on-failure |
| 16 | RestartSec=5 |
| 17 | NoNewPrivileges=true |
| 18 | PrivateTmp=true |
| 19 | ProtectSystem=full |
| 20 | ReadWritePaths=/home/codewhale/.codewhale /home/codewhale/.deepseek /opt/whalebro |
| 21 | |
| 22 | [Install] |
| 23 | WantedBy=multi-user.target |
| 24 |