Deploy nao
Self-hosted analytics chat with context-aware AI insights
Just deployed
Deploy and Host nao on Railway
nao is an open-source analytics chat application that lets teams explore structured data and project context through natural-language conversations. It combines a Fastify backend, React web interface, Python query sidecar, DuckDB tooling, and configurable LLM providers, giving analysts a browser-based workspace for asking questions, generating insights, and sharing data-driven stories.
About Hosting nao on Railway
Railway runs the pinned upstream Docker image directly with a generated public domain and routes traffic to nao's HTTP server on port 5005. The deployment uses the bundled example project and SQLite database for a simple single-service setup.
Tech Stack
- Fastify and tRPC backend
- React and Vite frontend
- Python FastAPI query sidecar
- Bun runtime
- SQLite and DuckDB
- Configurable OpenAI-compatible LLM providers
- Docker on Railway
Why Deploy nao on Railway
Railway provides one-click container deployment, managed networking, automatic HTTPS, environment-variable secrets, and straightforward service logs. nao starts from a maintained upstream image without source-based builds, making the deployment quick to reproduce and easy to operate.
Common Use Cases
- Ask natural-language questions about analytics data
- Explore a bundled nao context project in a browser
- Build data-driven stories and visual insights
- Connect an LLM provider through environment variables or application settings
- Run a lightweight self-hosted analytics workspace
Deployment Notes
The HTTP service listens on port 5005; both PORT and SERVER_PORT are set to 5005, and the Railway domain targets that port. BETTER_AUTH_URL uses Railway's generated public-domain variable, while BETTER_AUTH_SECRET is generated automatically. The first user can create an account on a fresh database; nao does not provide a built-in default username or password. No volume is included because the upstream image runs as a non-root user and fresh Railway volume mounts require explicit ownership handling. SQLite and local storage are therefore ephemeral until a correctly owned persistent volume is added. Configure an LLM provider before using chat features.
Dependencies for nao on Railway
This template is self-contained and has no database or worker dependency. The app image includes the web UI, backend, FastAPI sidecar, migrations, and bundled example context.
Deployment Dependencies
| Service | Image | Port | Volume |
|---|---|---|---|
| app | getnao/nao:0.3.24 | 5005 | - |
Template Content
