Single-source setup for Augur — local dev or Uberspace production.
| What | Where | Cost |
|---|---|---|
| MongoDB Atlas M0 | https://cloud.mongodb.com | Free (512 MB) |
| LLM API key | OpenRouter / Anthropic / OpenAI | Per-use |
| Python 3.11+ | System or pyenv | Free |
| Production only: Uberspace | https://uberspace.de | ~5 EUR/mo |
| Production only: GitHub account | https://github.com | Free |
- Go to https://cloud.mongodb.com and sign up
- Create organization > project > Build a Database
- Choose M0 (Free) — shared tier, 512 MB, pick region closest to you
- Create a database user (username + strong password)
- Network Access > Add IP Address:
- Local dev: add your IP or
0.0.0.0/0 - Uberspace:
0.0.0.0/0(no static IP, auth via connection string)
- Local dev: add your IP or
- Connect > Drivers > copy URI, replace
<password>:
mongodb+srv://youruser:yourpass@cluster0.xxxxx.mongodb.net/signals
Both the signals store and LibreChat share this cluster (different database names: signals and LibreChat).
See docs/api-keys.md for the full reference with signup links.
Quick summary — only MONGO_URI_SIGNALS is required. Everything else is optional:
# Required
MONGO_URI_SIGNALS=mongodb+srv://user:pass@cluster0.xxxxx.mongodb.net/signals
# Recommended (most useful, instant free signup)
FRED_API_KEY= # https://fred.stlouisfed.org/docs/api/api_key.html
EIA_API_KEY= # https://www.eia.gov/opendata/register.php
# Other optional keys (all free)
ACLED_API_KEY= # https://acleddata.com/register/
ACLED_EMAIL=
COMTRADE_API_KEY= # https://comtradeplus.un.org/TradeFlow
GOOGLE_API_KEY= # https://console.cloud.google.com/apis/credentials
AISSTREAM_API_KEY= # https://aisstream.io/
CF_API_TOKEN= # https://dash.cloudflare.com/profile/api-tokens
USDA_NASS_API_KEY= # https://quickstats.nass.usda.gov/api/28 of the 75+ data sources need zero keys and work out of the box.
git clone https://github.com/ManuelKugelmann/Augur.gitcd Augurpython3 -m venv venvsource venv/bin/activatepip install -r requirements.txtcp .env.example .envnano .envpython src/servers/combined_server.pyRun individual servers standalone for testing:
python src/store/server.pypython src/servers/weather_server.pypython src/servers/macro_server.py| Mode | Command | LibreChat source | Update command | Use when |
|---|---|---|---|---|
| Release | augur install |
Tagged release bundle from CI | augur update |
Production — stable, pre-tested |
| Dev | augur install dev |
CI prebuilt artifact or git clone + build | augur pull |
Development — fast iteration, no tags needed |
Both modes use the same one-liner entry point. The only difference is where LibreChat comes from.
Dev mode skips tagged releases and instead uses a CI-prebuilt LibreChat artifact (or falls back to cloning + building from source). After initial setup, iterate with augur pull (git pull + restart) — no tagging required.
On GitHub, go to Actions > Build LibreChat > Run workflow (or wait for the weekly Monday build). This:
- Clones
danny-avila/LibreChat(main branch) - Runs
npm ci+npm run frontendin CI (not on your Uberspace) - Publishes
librechat-build.tar.gzto thelibrechat-buildrelease
This saves your Uberspace ~10 min build time and ~2 GB RAM. The artifact stays current via weekly scheduled rebuilds.
ssh augur@augur.uber.spacecurl -sL "https://raw.githubusercontent.com/ManuelKugelmann/Augur/main/augur-uberspace/install.sh?$(date +%s)" | bashWhat happens:
- Sets Node.js 22
- Clones
Augurrepo to~/augur/ - Creates Python venv, installs
fastmcp,httpx,pymongo,python-dotenv - Generates
~/augur/.envfrom template - Registers systemd services (
trading,charts) - Downloads
librechat-build.tar.gzfrom the CI prebuilt release (or latest tagged release bundle) - If no CI build exists: clones
danny-avila/LibreChatand builds locally (~10 min, needs ~2 GB RAM) - Runs
setup.sh— atomic swap into~/LibreChat/, generates.envwith crypto keys - Registers LibreChat service, sets up web backend on port 3080
- Installs
augurCLI to~/bin/augur
augur confIn the editor, add your MongoDB connection string (database: signals):
MONGO_URI_SIGNALS=mongodb+srv://user:pass@cluster0.xxxxx.mongodb.net/signals
augur envIn the editor, set these values (same Atlas cluster, database: LibreChat):
MONGO_URI=mongodb+srv://user:pass@cluster0.xxxxx.mongodb.net/LibreChat
OPENROUTER_API_KEY=sk-or-...
Or use ANTHROPIC_API_KEY=sk-ant-... or OPENAI_API_KEY=sk-... instead.
Crypto secrets (CREDS_KEY, CREDS_IV, JWT_SECRET, JWT_REFRESH_SECRET) are auto-generated.
augur yamlAll __HOME__ placeholders should already be replaced with /home/augur. Verify paths like /home/augur/augur/src/store/server.py exist.
augur restartaugur sShould show RUNNING + version like dev-a1b2c3d.
Open in your browser:
https://augur.uber.space
Register the first account (becomes admin).
augur envAdd this line: ALLOW_REGISTRATION=false, then restart:
augur rAfter pushing changes to main on your dev machine:
augur pullThis pulls the latest signals stack code and restarts. No tagging, no CI, no release — just push and pull.
augur install devFor stable deployments using tagged releases.
git tag v0.1.0git push --tagsWait for CI to build librechat-bundle.tar.gz and attach it to the release.
ssh augur@augur.uber.spacecurl -sL "https://raw.githubusercontent.com/ManuelKugelmann/Augur/main/augur-uberspace/install.sh?$(date +%s)" | bashaugur confSet MONGO_URI_SIGNALS in the editor.
augur envSet MONGO_URI + at least one LLM API key in the editor.
augur restartaugur sOn your dev machine:
git tag v0.2.0git push --tagsOn Uberspace:
augur updateaugur rbAll deployment settings live in deploy.conf (sourced by all scripts):
| Variable | Default | Purpose |
|---|---|---|
UBER_USER |
augur |
Uberspace username |
UBER_HOST |
augur.uber.space |
Uberspace hostname |
GH_USER |
ManuelKugelmann |
GitHub username |
GH_REPO |
Augur |
Signals stack repo |
STACK_DIR |
$HOME/augur |
Signals stack path |
APP_DIR |
$HOME/LibreChat |
LibreChat path |
BACKUP_DIR |
$HOME/backups/mongo |
Rolling MongoDB backups |
LC_PORT |
3080 |
LibreChat port |
NODE_VERSION |
24 |
Node.js version |
PYTHON_VERSION |
(auto-detected) | Python version (scans 3.13-3.10) |
RELEASE_TAG |
(empty = latest) | Pin to specific release tag |
Override any value via environment: UBER_USER=other augur install
augur help # all commands
augur status # service status + version
augur logs # tail logs
augur restart # restart LibreChat + trading
augur testrun # run LibreChat in foreground (see errors directly)
augur debugstart # full diagnostics + foreground run
augur version # show version
augur pull # quick git-pull update (dev)
augur update # update stack (git pull + deps + LibreChat release)
augur backup # backup MongoDB to ~/backups/mongo/
augur restore [f] # restore MongoDB from backup
augur backups # list available backups
augur check # health check (services, config, connectivity)
augur check -t # health check + run test suite
augur bootstrap # bootstrap profile data via agent
augur agents # seed multi-agent architecture
augur proxy ... # CLIProxyAPI management
augur env # edit LibreChat .env
augur yaml # edit librechat.yaml
augur conf # edit deploy.confOn your dev machine, push changes:
git pushOn Uberspace, update everything (git pull + deps + LibreChat release):
augur updateCheck the logs for errors:
augur logsCommon causes: wrong MONGO_URI, missing LLM key, port conflict.
Check the kernel log:
dmesg | tail -20LibreChat is configured with --max-old-space-size=1024. If still dying, reduce to 768 or run fewer domain servers.
Test the connection from Uberspace:
python3 -c "from pymongo import MongoClient; MongoClient('YOUR_URI').server_info(); print('ok')"Check that Atlas Network Access allows 0.0.0.0/0.
When launched by LibreChat, servers inherit env from librechat.yaml env: blocks, not from .env. Verify the key is in both places:
grep FRED_API_KEY ~/augur/.envgrep FRED_API_KEY ~/LibreChat/librechat.yamlCheck what is using port 3080:
lsof -i :3080Re-register the web backend:
uberspace web backend set / --http --port 3080| Resource | Limit | Usage |
|---|---|---|
| RAM | 1.5 GB hard kill | ~500-800 MB (LibreChat) + ~80 MB (1 Python MCP) |
| Storage | 10 GB (expandable) | ~2 GB installed |
| Node.js | 18, 20, 22 | Requires >=20 |
| Docker | Not available | Not needed |
Signals store + all 12 domain servers run in a single combined process (trading, ~80 MB) via FastMCP mount(), well within RAM limits.
| Service | Cost |
|---|---|
| Uberspace | ~5 EUR/mo (pay what you want, min 1 EUR) |
| MongoDB Atlas M0 | Free (512 MB) |
| GitHub | Free |
| Cloud LLMs | Per-use (your API keys) |
| Total | ~5 EUR/mo + LLM usage |