---
title: "Deploy Unla"
description: "MCP gateway that turns REST APIs and MCP servers into one endpoint"
category: "AI/ML"
url: https://railway.com/deploy/unla
---

# Deploy Unla

MCP gateway that turns REST APIs and MCP servers into one endpoint

**[Deploy Unla on Railway](https://railway.com/template/unla)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/unla/manifest.json

- **Creator:** My Projects
- **Category:** AI/ML

## Template content

### Unla https://raw.githubusercontent.com/AmoyLab/Unla/main/web/public/logo.png

- **Image:** ghcr.io/amoylab/unla/allinone:v0.10.0
- **Health check:** /api/auth/oauth/providers
- **Public domain:** Yes

## Documentation

# Deploy and Host Unla on Railway

[Unla](https://github.com/AmoyLab/Unla) is a lightweight MCP gateway written in Go. It turns existing REST APIs and MCP servers into MCP servers through configuration alone, with no code changes, and ships a web admin UI for managing tenants, users, MCP server configs, OpenAPI imports and config versions.

## About Hosting Unla

This template runs the official all-in-one Unla image as a single service:

- **Unla** (ghcr.io/amoylab/unla/allinone): nginx on port 80 serves the admin UI and proxies `/api` to the API server and `/gateway` to the MCP gateway. A bundled mock backend runs internally only.
- **Volume** at `/app/data` holding the SQLite database (users, tenants, MCP server configs and their version history).
- **Generated secrets:** the super admin password and the JWT signing key are generated per deployment.
- **Auth:** the admin UI and the whole `/api` management API require login. No default password is shipped.

**After deploy:**

1. Open the service's **Variables** tab and copy `SUPER_ADMIN_PASSWORD`.
2. Open `https://YOUR-RAILWAY-DOMAIN` and log in as `admin` with that password.
3. Change the password in the UI if you like. The variable only seeds the account on first boot, so later edits to it have no effect.
4. Add MCP servers or import an OpenAPI spec. Gateway endpoints are served at `https://YOUR-RAILWAY-DOMAIN/gateway/...`.
5. Optional: to enable Google or GitHub login, create an OAuth app with the redirect URI shown in `GOOGLE_OAUTH_REDIRECT_URI` / `GITHUB_OAUTH_REDIRECT_URI` and add `GOOGLE_OAUTH_CLIENT_ID` + `GOOGLE_OAUTH_CLIENT_SECRET` (or the `GITHUB_` equivalents) as variables.

## Common Use Cases

- Expose an internal or third-party REST API to AI agents as MCP tools without writing an MCP server
- Put several MCP servers behind one gateway URL with per-tenant prefixes
- Version and roll back MCP tool configurations from a web UI
- Share one hosted MCP endpoint across a team instead of running local stdio servers

## Dependencies for Unla Hosting

- Source: [AmoyLab/Unla](https://github.com/AmoyLab/Unla) (MIT license)
- Image: `ghcr.io/amoylab/unla/allinone:v0.10.0`
- No API keys are required. LLM and OAuth settings are optional.

### Deployment Dependencies

- [Unla GitHub repository](https://github.com/AmoyLab/Unla)
- [Unla documentation](https://docs.unla.amoylab.com)
- [Model Context Protocol](https://modelcontextprotocol.io)

### Implementation Details

- All configuration is passed as environment variables; the image already contains config files that read them, so no files need to be mounted.
- `PORT` is set to 5234 because the API server honours Railway's `PORT`; nginx stays on port 80, which is the port the public domain targets.
- SQLite on a Railway volume keeps it to a single service. The API server and gateway share one database file at `/app/data/unla.db`.
- The healthcheck uses `/api/auth/oauth/providers`, a public API server route that returns 200 once the API server is up.
- `VITE_GATEWAY_SERVICE_BASE_URL` points the UI's copyable gateway URLs at `https://YOUR-RAILWAY-DOMAIN/gateway`, because only port 80 is publicly exposed.

## Why Deploy Unla 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 Unla 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

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [Weaviate](https://railway.com/deploy/weaviate-1) — Vector database with hybrid search and an API key-protected API
- [Möbius Personal AI OS](https://railway.com/deploy/mobius-v01-personal-ai-os) — Self-hosted AI agent that builds and runs apps for you, with memory.

Open this page in a browser: https://railway.com/deploy/unla
