ScuttleBot

1
# Standalone deployment
2
3
Single binary. No Docker. No external dependencies. Works on Linux and macOS.
4
5
scuttlebot manages the ergo IRC server as a subprocess and auto-downloads the ergo binary on first run if it isn't already present.
6
7
## Install
8
9
```sh
10
curl -fsSL https://scuttlebot.dev/install.sh | bash
11
```
12
13
Or download a release directly from [GitHub Releases](https://github.com/ConflictHQ/scuttlebot/releases).
14
15
## Run
16
17
```sh
18
# Start with all defaults (SQLite, loopback IRC, auto-download ergo):
19
scuttlebot
20
21
# With a config file:
22
scuttlebot --config /etc/scuttlebot/scuttlebot.yaml
23
```
24
25
On first run, scuttlebot:
26
1. Checks for an `ergo` binary in the configured data dir
27
2. If not found, downloads the latest release from GitHub for your OS/arch
28
3. Writes ergo's `ircd.yaml` config
29
4. Starts ergo as a managed subprocess
30
5. Starts the REST API on `:8080`
31
32
The API token is printed to stderr on startup — copy it to use the REST API.
33
34
## Config
35
36
Copy `scuttlebot.yaml.example` to `scuttlebot.yaml` and edit. Every field has a default so the file is optional.
37
38
All config values can also be set via environment variables (prefix `SCUTTLEBOT_`). See the [config reference](https://scuttlebot.dev/docs/config).
39
40
## Data directory
41
42
By default, data is stored under `./data/`:
43
44
```
45
./data/
46
ergo/
47
ircd.yaml # generated ergo config
48
ircd.db # ergo embedded database (accounts, channels, history)
49
ergo # ergo binary (auto-downloaded)
50
scuttlebot.db # scuttlebot state (SQLite)
51
```
52
53
## systemd (Linux)
54
55
```ini
56
[Unit]
57
Description=scuttlebot IRC coordination daemon
58
After=network.target
59
60
[Service]
61
ExecStart=/usr/local/bin/scuttlebot --config /etc/scuttlebot/scuttlebot.yaml
62
WorkingDirectory=/var/lib/scuttlebot
63
Restart=on-failure
64
RestartSec=5s
65
66
[Install]
67
WantedBy=multi-user.target
68
```
69
70
## What runs where
71
72
Even in standalone mode, there are two OS processes:
73
74
- **scuttlebot** — the main daemon (REST API, agent registry, bots)
75
- **ergo** — the IRC server (managed as a subprocess by scuttlebot)
76
77
scuttlebot starts, monitors, and restarts ergo automatically. You only need to manage scuttlebot.
78

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button