-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration
Jason L. West edited this page Feb 3, 2026
·
2 revisions
All configuration is done through environment variables. Copy the example files and edit as needed:
cp .env.example .env # Core agent
cp .env.swarm.example .env.swarm # Swarm system| Variable | Default | Description |
|---|---|---|
NEBULUS_BASE_URL |
http://localhost:5000/v1 |
LLM server URL |
NEBULUS_API_KEY |
admin |
API key for LLM server |
NEBULUS_MODEL |
Meta-Llama-3.1-8B-Instruct-exl2-8_0 |
Model name |
NEBULUS_TIMEOUT |
300 |
Request timeout in seconds |
NEBULUS_STREAMING |
true |
Enable streaming responses |
COMPOSE_PROJECT_NAME |
nebulus-atom |
Docker Compose project name |
| Variable | Default | Description |
|---|---|---|
SLACK_BOT_TOKEN |
- | Slack Bot OAuth Token (xoxb-...) |
SLACK_APP_TOKEN |
- | Slack App-Level Token for Socket Mode (xapp-...) |
SLACK_CHANNEL_ID |
- | Channel ID to monitor |
- Create a Slack App at api.slack.com/apps
- Enable Socket Mode and generate an App-Level Token
- Add Bot Token scopes:
chat:write,channels:read,channels:history - Install app to workspace
- Copy the Bot Token and App Token to your
.env - Invite the bot to your channel
| Variable | Default | Description |
|---|---|---|
GITHUB_TOKEN |
- | Personal Access Token |
GITHUB_WATCHED_REPOS |
- | Comma-separated repos (e.g., owner/repo1,owner/repo2) |
GITHUB_DEFAULT_REPO |
- | Default repository for Slack commands |
-
repo- Full repository access -
read:org- Read org membership (for private repos)
| Variable | Default | Description |
|---|---|---|
MAX_CONCURRENT_MINIONS |
3 |
Maximum concurrent minion containers |
MINION_TIMEOUT_MINUTES |
30 |
Minion timeout before being killed |
| Variable | Default | Description |
|---|---|---|
NEBULUS_BASE_URL |
http://localhost:5000/v1 |
LLM server URL for minions |
NEBULUS_MODEL |
qwen3-coder-30b |
Model for minion work |
NEBULUS_TIMEOUT |
600 |
LLM request timeout |
NEBULUS_STREAMING |
false |
Enable streaming |
| Variable | Default | Description |
|---|---|---|
OVERLORD_LLM_ENABLED |
true |
Enable LLM-powered command parsing |
OVERLORD_LLM_BASE_URL |
http://localhost:5000/v1 |
LLM server for Overlord |
OVERLORD_LLM_MODEL |
llama-3.1-8b |
Small model for fast parsing |
OVERLORD_LLM_TIMEOUT |
5.0 |
Parsing timeout (seconds) |
OVERLORD_LLM_CONFIDENCE |
0.7 |
Minimum confidence threshold |
OVERLORD_LLM_CONTEXT_MAX |
10 |
Max context entries per channel |
OVERLORD_LLM_CONTEXT_TTL |
30 |
Context TTL in minutes |
| Variable | Default | Description |
|---|---|---|
ROUTING_ENABLED |
false |
Enable multi-LLM routing |
ROUTING_COMPLEXITY_THRESHOLD |
5 |
Score threshold (0-10) for heavy tier |
ROUTING_DEFAULT_TIER |
heavy |
Fallback tier when routing fails |
ROUTING_MODELS |
- | JSON string with model profiles (see below) |
ROUTING_MODELS='{
"light": {
"name": "llama-3.1-8b",
"base_url": "http://localhost:5000/v1",
"timeout": 300
},
"heavy": {
"name": "qwen3-coder-30b",
"base_url": "http://gpu-server:8080/v1",
"timeout": 600
}
}'See Model Router for details.
| Variable | Default | Description |
|---|---|---|
CRON_ENABLED |
true |
Enable cron-triggered queue sweeps |
CRON_SCHEDULE |
0 2 * * * |
Cron expression (default: 2 AM daily) |
| Variable | Default | Description |
|---|---|---|
REVIEWER_ENABLED |
true |
Enable automated PR review |
REVIEWER_AUTO_REVIEW |
true |
Auto-review minion PRs |
REVIEWER_AUTO_MERGE |
false |
Auto-merge approved PRs |
REVIEWER_MERGE_METHOD |
squash |
Merge method (squash/merge/rebase) |
REVIEWER_MIN_CONFIDENCE |
0.8 |
Minimum confidence to approve |
| Variable | Default | Description |
|---|---|---|
OVERLORD_STATE_DB |
/var/lib/overlord/state.db |
SQLite state database path |
OVERLORD_HEALTH_PORT |
8080 |
Health check / API port |
| Variable | Default | Description |
|---|---|---|
LOG_LEVEL |
INFO |
Log level (DEBUG, INFO, WARNING, ERROR) |
LOG_FORMAT |
console |
Output format (console or json) |
LOG_FILE |
- | Optional log file path |