
Deploy Mobius
Mobius [Oct'26] — an AI agent that builds apps, with memory that persists
mobius
Just deployed
/data
Deploy and Host Möbius on Railway
Möbius is an open-source, self-hosted workspace for AI agents — a personal AI operating system rather than a chat window. A coding agent builds mini-apps beside the conversation, keeps durable memory of how you work, reviews each day overnight, and installs skills that outlive the chat. This template runs it as a single container with a volume holding the part that matters: everything your agent has learned.
What This Template Deploys
| Service | Purpose |
|---|---|
mobius | Single-container application behind Railway's HTTPS proxy. Public domain, installable as a PWA. |
| Volume | Memory, skills, built apps, files and agent state. |
One service, one volume, no database to provision. That simplicity misleads in one direction: the volume is not holding uploads, it is holding the accumulated value of the system. A month-old Möbius is worth more than a fresh one precisely because of what sits on it.
About Hosting
Möbius is designed to run on a machine you control, with a shell. Railway gives you a container and no host, and that difference shapes what works.
In-app platform updates do not work here. Upstream's setup ends by installing a host-level helper that powers Settings → Replace container, granting that one operation outside the container. Railway has no host to install it on, and a container cannot replace itself. Updating means redeploying through Railway against a newer image or commit, not clicking update inside the app.
The volume holds a month of accumulated work, not a cache. Memory, skills, Reflection output and the apps your agent built are all written at runtime. Lose the volume and you have not lost files — you have lost the personalisation that is the whole reason to run this rather than a chat app, and no re-prompting rebuilds it. Confirm the mount before your first real conversation.
TLS terminates at Railway's edge, not in Caddy. The repository ships a Caddyfile that obtains certificates for DOMAIN on a normal server. Behind Railway's proxy that is the wrong layer — the edge already holds the certificate, and an in-container ACME attempt fails or fights it. Publish the app port directly and let Railway do HTTPS.
Your provider subscription may not cover this. Möbius runs on your existing Claude Code or ChatGPT (Codex) plan rather than an API key. Those are individual subscriptions, and driving one from a server-hosted agent — especially a shared pool — is worth checking against your provider's terms first. The architecture is sound; the licence question is yours.
Published apps are public repositories. Apps live as repositories under the Möbius OS organisation, so publishing an app means publishing a repo. Useful for sharing, worth knowing before an agent builds something containing your business logic or customer data.
An agent with a shell behind one login. By design it writes and runs code in its own environment, reaches connected services, and acts while you are away. Your authentication is the security boundary, so treat the deployment like a server you administer rather than a web app you use.
Typical cost: ~$20–40/month at $10/GB/month RAM, $20/vCPU/month CPU and $0.15/GB/month volumes. Builds and background runs are bursty, so size for the peak rather than the idle. Möbius is MIT licensed; model usage bills to your existing plan.
How It Compares
| Möbius (self-hosted) | ChatGPT / Claude apps | Claude Code or Codex alone | Agent frameworks | |
|---|---|---|---|---|
| Durable memory | Yours, on your volume | Vendor-scoped | Per session | Build it yourself |
| Builds usable apps | Yes, installable | Artifacts only | Files on your machine | Build it yourself |
| Runs while you are away | Scheduled tasks, goals | No | No | Build it yourself |
The honest edge: if you want a smarter chat, the first-party apps are better and cost less effort. If you live in a terminal, Claude Code already does the building part. Möbius is for the middle — an agent that accumulates context, runs scheduled work and leaves you something installable on your phone, without assembling a framework yourself. It is also young: treat it as an evolving project rather than settled infrastructure.
Deploy in Under 5 Minutes
- Click Deploy and pick a workspace. The container builds with a volume attached for agent state.
- Confirm the volume is mounted before the first conversation. Everything your agent learns goes there from turn one.
- Open the public domain and connect your Claude Code or ChatGPT (Codex) account through the in-app secure input.
- Ask it to build something small — a habits tracker, a daily brief — and watch it appear beside the chat.
- Install the PWA from your phone's browser so the same workspace is on both.
Verify before you rely on it: tell your agent a preference worth remembering, redeploy the service, then ask it back. If the memory is gone, the volume is wrong — and that is the one failure you cannot recover from by redeploying.
Common Use Cases
- A personal agent that compounds — memory, skills and nightly Reflection mean the month-old version knows your projects and habits.
- Apps on request — describe a tool in words, get a working app beside the chat and on your phone home screen.
- Scheduled and background work — morning briefs, daily checks and weekly reports, each a readable run rather than a black box.
Configuration
| Variable | Required | Description |
|---|---|---|
DOMAIN | Required | Your public Railway domain. Used for links and app URLs. |
| Provider account | Required | Claude Code or ChatGPT (Codex), connected in-app rather than as an environment variable. |
| Storage volume | Pre-set | Memory, skills, built apps, files and agent state. |
Mount the volume before the first conversation, not after. Memory and skills begin accumulating on turn one, and there is no export from a container that has already been replaced.
Treat the login as the whole security boundary. This agent writes code, runs it, and reaches your connected services. Use a strong unique credential and do not share the URL casually.
See upstream's .env.example and ARCHITECTURE.md for the full variable list and documented trust boundaries — both move quickly, so read them against the commit you deploy.
Dependencies for Möbius Hosting
- Railway account — ~$20–40/month, driven by memory and burst CPU during builds.
- Bundled services — none. Möbius ships as a single container with no external database.
- Volume — required, and load-bearing. It holds memory, skills, built apps and agent state.
- A provider account — an existing Claude Code or ChatGPT (Codex) plan. No separate API key is needed.
Deployment Dependencies
- Möbius on GitHub
- Möbius architecture and trust boundaries
- Möbius App Store repositories
- Railway volumes
Implementation Details
Möbius runs as one container pinned to a tested commit rather than a moving branch, with the application port published to a Railway domain. The repository's Caddyfile terminates TLS on a conventional server using DOMAIN; on Railway that belongs to the edge, so the deployment publishes the app directly and leaves certificates to the platform rather than running ACME behind a proxy that already holds one.
The volume is the whole architecture from an operations point of view. Memory lives as a graph of linked notes, skills as installable playbooks, built apps as working source, and Reflection writes back into all three overnight. None of it is reconstructible from a fresh image, which inverts the usual PaaS assumption — here the container is disposable and the state is a directory. Back it up like a database, because functionally it is one.
The upgrade path deserves planning. Upstream expects platform updates through Settings → Replace container, backed by a host controller installed with root on the machine running Docker. Railway provides no such host, so that route is closed and updates arrive by redeploying a newer commit instead. Pin your version, read the changelog before bumping it, and snapshot the volume before each upgrade.
Frequently Asked Questions
Can I update Möbius from inside the app? No. Settings → Replace container depends on a host-level helper Railway cannot provide. Update by redeploying a newer commit or image.
What happens if I lose the volume? You lose memory, skills, built apps and agent state — the accumulated personalisation, not just files. Nothing restores it but a backup.
Do I need an API key? No. Möbius connects to an existing Claude Code or ChatGPT (Codex) account through a secure in-app input. Check your plan's terms before running it as a shared agent.
Are the apps my agent builds private? Apps published to the App Store become public repositories under the Möbius OS organisation. Keep anything sensitive unpublished.
Is this production infrastructure? Treat it as an active project rather than settled software. It is MIT licensed and moving fast, which is both the appeal and the caveat.
Why Deploy Möbius on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Möbius on Railway you get an agent workspace configured for a platform it was not originally written for — TLS left to the edge instead of Caddy, a pinned version with a deliberate upgrade path in place of the in-app updater, and a volume holding the memory and skills that make a month-old Möbius worth more than a new one.
Template Content
mobius
ghcr.io/mobius-os/mobius