feat(deploy): add systemd templates for production linux deployment
Adds production-ready systemd service templates for Linux deployments. Includes: - : Auto-restart configuration for the main process. - : Configuration for Cloudflare Tunnel dependent on the gateway. - Documentation in . This simplifies self-hosting setup on VPS and Home Lab environments.
This commit is contained in:
1 parent
07e34e3423
commit
ab3154c8f0
3 files changed
+110
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# Linux Systemd Deployment
|
||||
|
||||
For production deployments on Linux (VPS, Raspberry Pi, Home Lab), it is recommended to run Clawdbot as a systemd service. This ensures the gateway restarts automatically on crash or reboot.
|
||||
|
||||
If you also use Cloudflare Tunnels for remote access, you can configure a dependent service to ensure the tunnel stays connected to the gateway.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. Node.js (v22+)
|
||||
2. `cloudflared` (if using remote access)
|
||||
3. Clawdbot repository cloned and built (`pnpm install && pnpm build`)
|
||||
|
||||
## 1. Setup Gateway Service
|
||||
|
||||
1. Copy the example template:
|
||||
```bash
|
||||
sudo cp deploy/systemd/clawdbot-gateway.service.example /etc/systemd/system/clawdbot-gateway.service
|
||||
```
|
||||
|
||||
2. Edit the file to match your user and paths:
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/clawdbot-gateway.service
|
||||
```
|
||||
- Change `User=<YOUR_USER>` to your username.
|
||||
- Change `WorkingDirectory` to your Clawdbot folder.
|
||||
- Update `ExecStart` with your preferred flags (e.g. secure token).
|
||||
|
||||
3. Reload and start:
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now clawdbot-gateway
|
||||
```
|
||||
|
||||
## 2. Setup Cloudflare Tunnel (Optional)
|
||||
|
||||
This service is configured to depend on `clawdbot-gateway`, ensuring robust connectivity.
|
||||
|
||||
1. Copy the example template:
|
||||
```bash
|
||||
sudo cp deploy/systemd/clawdbot-tunnel.service.example /etc/systemd/system/clawdbot-tunnel.service
|
||||
```
|
||||
|
||||
2. Edit the file:
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/clawdbot-tunnel.service
|
||||
```
|
||||
- Update `User` and `ExecStart` paths.
|
||||
- Ensure your tunnel is already created (`cloudflared tunnel create <name>`).
|
||||
|
||||
3. Enable:
|
||||
```bash
|
||||
sudo systemctl enable --now clawdbot-tunnel
|
||||
```
|
||||
|
||||
## Operations
|
||||
|
||||
Check status:
|
||||
```bash
|
||||
systemctl status clawdbot-gateway clawdbot-tunnel
|
||||
```
|
||||
|
||||
View logs:
|
||||
```bash
|
||||
journalctl -u clawdbot-gateway -f
|
||||
```
|
||||
Reference in new issue
Block a user