Scout ships with three Railway scripts. One provisions the project, one syncs env vars, one redeploys. Any cloud provider works, but Railway is the fastest path to a deployed Scout.Documentation Index
Fetch the complete documentation index at: https://agno-v2-feat-executor-hitl-wf.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Scout set up locally (setup)
- A Railway account
- The Railway CLI installed and authenticated (
railway login)
Step 1: Provision the project
Use.env.production to keep production credentials separate from local dev:
DB_* in .env.production. The deploy script points Scout at the Railway Postgres service automatically. Setting DB_HOST here would break the deploy when env vars sync.
Then run:
- Creates a Railway project called
scout. - Adds a
pgvectorservice with a persistent volume at/var/lib/postgresql. - Creates the
scoutapplication service and forwards a starter set of env vars. - Deploys and assigns a public domain.
Step 2: Your first deploy will fail. That’s expected.
Production endpoints require RBAC authorization by default. Scout enables it wheneverRUNTIME_ENV=prd. Without a JWT_VERIFICATION_KEY, Scout refuses to serve traffic. That’s deliberate. Scout’s job is to keep your company data off the public web.
The fix is to generate a key from AgentOS:
- Open os.agno.com, click Add OS → Live, and enter your Railway domain.
- Enable Token Based Authorization.
- Paste the public key into
.env.production(the full PEM block, no surrounding quotes):
Step 3: Sync env vars and redeploy
Push everything in.env.production (JWT key, Slack credentials, MCP secrets):
Step 4: Verify
Once the domain resolves:Use GitHub for the knowledge wiki
The filesystem wiki backend resets on every container restart. For production, swap toGitBackend so wiki pages persist with an audit trail and reviewers can comment on what Scout has filed.
-
Create a private wiki repo:
- Mint a fine-grained PAT scoped to that one repo (Settings → Developer settings → Fine-grained tokens). Grant Contents: Read and write.
-
Add to
.env.production: -
Sync and redeploy:
GitBackend automatically. On boot you’ll see Knowledge wiki: GitBackend (<repo_url>) in the logs. The voice wiki stays filesystem-backed (voice rules are code-managed by design).
Every update_knowledge call commits with an LLM-summarised one-line message and pushes. git log -p wiki/knowledge/ is your audit trail. Full setup: WIKI_GIT.md.
Point Slack at production
If you set up Slack against an ngrok URL, swap it for your Railway domain:- Open your Slack app at api.slack.com/apps.
- Go to Event Subscriptions.
- Update the Request URL to
https://your-scout.up.railway.app/slack/events. - Wait for the green Verified check, then Save Changes.
Auto-deploy on push
By default, code changes need./scripts/railway/redeploy.sh. To auto-deploy on every push to main:
- Open the Railway dashboard → your project → the scout service → Settings.
- Under Source, click Connect Repo and pick the repo where Scout lives.
- Set the deploy branch to
main, then save.
main now triggers a fresh build and rolling deploy. ./scripts/railway/env.sh is still how you sync .env.production changes.
What you get
| Resource | Purpose |
|---|---|
scout service | The Scout app, FastAPI on port 8000, 2 replicas by default |
pgvector service | Postgres with the pgvector extension (CRM context, agent memory) |
/var/lib/postgresql volume | Persistent database storage |
| Railway-issued domain | Public HTTPS endpoint |
railway.json.
Operations
| Task | Command |
|---|---|
| Tail logs | railway logs --service scout |
| Open the dashboard | railway open |
| Run a command in the container | railway ssh --service scout |
| Sync env var changes | ./scripts/railway/env.sh |
| Redeploy code | ./scripts/railway/redeploy.sh |
Roadmap
The pieces landing next, built and verified on a side branch, shipping once tested with real tokens:- Scheduled tasks. Daily cron over
scout_followups WHERE due_at <= NOW() AND status='pending'so pending items surface every morning. - Proactive provider actions.
update_slack,update_githubrunning on cron, not just on demand. - GitHub, Gmail, Calendar providers. Each as its own service-account identity.