---
title: "Deploy Executor v2 (Self-Hosted)"
description: "Self-host the Executor v2 beta to connect any agent to everything."
category: "Automation"
url: https://railway.com/deploy/executor-v2-self-hosted
---

# Deploy Executor v2 (Self-Hosted)

Self-host the Executor v2 beta to connect any agent to everything.

**[Deploy Executor v2 (Self-Hosted) on Railway](https://railway.com/template/executor-v2-self-hosted)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/executor-v2-self-hosted/manifest.json

- **Creator:** Hosmel Quintana's Projects
- **Category:** Automation

## Template content

### Executor https://executor.sh/favicon-192.png

- **Image:** ghcr.io/usefulsoftwareco/executor-selfhost:2.0.0-beta.53
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# Deploy and Host Executor v2 (Self-Hosted) on Railway

Executor is a tool gateway for AI agents. It connects agents to your apps and accounts through one MCP endpoint, with organizations, invitations and browser sign-in. This template runs the Executor v2 beta on Railway with persistent storage and a public HTTPS domain.

## About Hosting Executor v2 (Self-Hosted)

This template deploys the official self-hosted image `ghcr.io/usefulsoftwareco/executor-selfhost:2.0.0-beta.53` as a single Railway service. It mounts persistent storage at `/app/data`, exposes the dashboard, API and MCP endpoint through a public domain, and uses `/health` as the deployment healthcheck. Open the domain after the first deployment to create the administrator account and organization.

## Common Use Cases

- Running a self-hosted tool gateway for AI agents.
- Connecting agents to Gmail, GitHub, Linear, Notion and other apps through one MCP endpoint.
- Managing organizations, members and connected accounts from the browser.

## Dependencies for Executor v2 (Self-Hosted) Hosting

- Persistent storage mounted at `/app/data`.
- Public HTTPS domain for browser sign-in and the MCP endpoint.
- Optional: your own domain with a wildcard record for app web pages.

### Deployment Dependencies

- https://executor.sh
- https://executor.sh/docs/run/self-host
- https://github.com/UsefulSoftwareCo/executor

### Implementation Details

Executor v2 keeps its embedded PGlite database, app data and generated session and encryption keys in `/app/data`, so no database service or secret variables are needed. It locks the volume while it runs, so keep one replica. This is a beta release and uses a separate volume from Executor v1; it does not migrate v1 data.

`BETTER_AUTH_URL` is the public origin for the dashboard, browser sign-in and the MCP endpoint. `EXECUTOR_APP_UI_BASE_URL` is the base for app web pages: with `https://apps.example.com`, the app `notes` in the organization `executor` is served at `notes.executor.apps.example.com`. Both start on the generated Railway domain, which can't serve app web pages.

To use your own domain, such as `example.com`:

1. Set `BETTER_AUTH_URL` to `https://example.com` and `EXECUTOR_APP_UI_BASE_URL` to `https://apps.example.com`, and deploy. Do this first: once a wildcard domain exists, Railway may set `RAILWAY_PUBLIC_DOMAIN` to it, and Executor can't start with a wildcard origin.
2. In the service's networking settings, add `example.com` and the wildcard domain `*.executor.apps.example.com`, both on port 8080. `executor` is the slug of the first organization; an organization with the slug `team` needs `*.team.apps.example.com`.
3. Create the CNAME and TXT records Railway shows for each domain. On Cloudflare, keep them DNS only.

## Why Deploy Executor v2 (Self-Hosted) 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 Executor v2 (Self-Hosted) on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/executor-v2-self-hosted
