Deploy Omnara

Open-source managed agent platform: run AI agents on any model and machine

Deploy Omnara

Just deployed

omnara-blobs

Bucket

Just deployed

Deploy and Host Omnara on Railway

Omnara is an open-source managed agent platform, a self-hostable alternative to Claude Managed Agents and OpenAI's Agents API. You launch agents through a REST API, a TypeScript SDK, a CLI or the dashboard, on any model you bring a key for, and they run commands on machines you connect: your laptop, a VM, or sandboxes from providers like E2B, Daytona and Modal.

About Hosting Omnara

Omnara is a control plane: an API, workers that run the agent loop, a maintenance process and a web dashboard, backed by Postgres, Redis and object storage. Every step of every agent is saved in Postgres, so agents pick up where they left off after a restart.

This template runs the whole control plane on Railway. The API, workers, maintenance and dashboard share one container (upstream's unmodified v0.2.10 images, behind one nginx), next to Postgres 18, Redis and a Railway bucket. The instance belongs to you alone: only the admin email you enter can create an account.

Common Use Cases

  • Run coding, review or SRE agents from Slack, Discord, GitHub pull requests or a cron schedule
  • Give your own product an agents API on any model, with the agent history in your own Postgres
  • Let agents run commands on your laptop or servers with no inbound ports, through the omnarad daemon
  • Share skills, secrets, memory stores and model providers across projects with per-tool approval rules

Dependencies for Omnara Hosting

  • Postgres 18 for agent state and the event log
  • Redis for wakeups and rate limits
  • A Railway bucket for attachments, tool outputs and skill archives
  • A Railway volume for agent memory stores

Deployment Dependencies

Implementation Details

Logging in. The deploy form asks for one thing, OMNARA_ADMIN_EMAIL. The template generates your password in OMNARA_ADMIN_PASSWORD, and the first boot creates your admin account with both. When the deploy is up, open the omnara service's Variables tab, copy OMNARA_ADMIN_PASSWORD, and log in at your public URL with that email and password. No email is sent and no mail server is needed.

Changing the password. Edit OMNARA_ADMIN_PASSWORD and redeploy; the new value replaces the old one. A password changed in the app stays until you edit the variable again. Upstream's rule applies: 12 or more characters with upper and lower case, a number and a symbol. A value that breaks the rule is skipped with WARNING: OMNARA_ADMIN_PASSWORD was not applied in the logs, and the previous password keeps working. Lost it? Set a new value and redeploy.

Nobody else can sign up. Upstream Omnara is multi-tenant with open signup. This template locks it to you: signup and password reset are switched off whenever the app is reachable, and your account is created by the container itself before it opens to the internet. This makes it a single-user instance: invitations would need the invitee to sign up. Give your apps and CI access with organization API keys from the dashboard instead.

First steps in the dashboard. A new instance has no models or machines. Add a model provider and a model, then connect a machine under Machines (it runs omnarad, which connects out to your Railway URL), and share both with your project. Then launch agents from the dashboard or point the CLI at your instance:

npx omnara config --api-url https://<your-domain>/api/v1 --issuer-url https://<your-domain>
npx omnara login

Variables

VariableWhat it does
OMNARA_ADMIN_EMAILEmail of the admin account, the only account on the instance
OMNARA_ADMIN_PASSWORDAdmin password, generated per deploy. Edit and redeploy to change it
OMNARA_PUBLIC_URLPublic origin. Change to https://your.domain after adding a custom domain, then redeploy
OMNARA_ENCRYPTION_KEY_HEXEncrypts stored secrets and provider keys. Changing it makes them unreadable
OMNARA_SKILL_SIGNING_KEY_HEXSigns skill downloads for machines
EXA_API_KEYOptional. Enables the built-in web search tool

Any other upstream setting from the configuration reference can be added as a variable on the omnara service.

Troubleshooting

  • Deploy fails with OMNARA_BLOB_S3_... resolved empty (a known Railway bucket-template bug): open the omnara service's Variables, re-save the named variable unchanged, and deploy again.
  • Changing OMNARA_ADMIN_EMAIL after the first boot: the account keeps its original email, and OMNARA_ADMIN_PASSWORD changes are skipped until the variable matches it again. Log in with the original email.
  • Custom domain shows "not found": set OMNARA_PUBLIC_URL to the new domain and redeploy. The API answers only on the host in that variable.

Scaling. Workers are stateless. To run more agent turns at once, raise OMNARA_WORKER_CAPACITY (default 4) or give the service more resources. Keep one replica, because the memory volume belongs to one container.

Why Deploy Omnara on Railway?

Omnara needs a public HTTPS address so machines, sandboxes, Slack and GitHub can reach it, plus a database, a cache and object storage. Railway gives you all of them in one click, wired together, with nothing to operate. Your agent history stays in your own Postgres.


Template Content

omnara-blobs

Bucket

More templates in this category

View Template
Chat Chat
Chat Chat, your own unified chat and search to AI platform.

okisdev
117
View Template
NEW
Möbius v0.1 Personal AI OS
Self-hosted AI agent that builds and runs apps for you, with memory.

bento
1
View Template
stella
Self-host stella with web, API, Postgres, Redis, and object storage.

Jan Kubica
7