---
title: "Deploy Obsidian Arc"
description: "Self-hosted multi-user AI chat and OpenAI-compatible API gateway"
category: "AI/ML"
url: https://railway.com/deploy/deploy-obsidian-arc-ai-chat-gateway
---

# Deploy Obsidian Arc

Self-hosted multi-user AI chat and OpenAI-compatible API gateway

**[Deploy Obsidian Arc on Railway](https://railway.com/template/deploy-obsidian-arc-ai-chat-gateway)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/deploy-obsidian-arc-ai-chat-gateway/manifest.json

- **Creator:** onepush
- **Category:** AI/ML

## Template content

### obsidian-arc

- **Image:** ghcr.io/onepush-dev/obsidian-arc:0.12.1
- **Health check:** /api/health
- **Public domain:** Yes

## Documentation

# Deploy and Host self hosted Obsidian Arc (AI Chat Gateway) on Railway

Obsidian Arc is an open-source, self-hosted multi-user AI chat service and API gateway.

## About Hosting Obsidian Arc open-source software on Railway (self hosted Obsidian Arc template)

Obsidian Arc is an MIT-licensed, self-hosted multi-user AI chat service and OpenAI/Anthropic-compatible API gateway. It is unrelated to the Obsidian note-taking app.

## Why Deploy Obsidian Arc, the self-hosted AI chat and API gateway on Railway (Railway Free Trial)

Obsidian Arc on Railway gives a small team a shared chat UI and OpenAI-compatible API gateway without managing a server, and you keep control of your provider keys.

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 Obsidian Arc 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.

### Railway vs Other Hosting Providers and VPS for Obsidian Arc self hosting

Obsidian Arc runs as one Go binary with SQLite on a volume; the choice is how much host you manage.

| Provider | What You Get with Railway | What You Get with the Other Provider |
| --- | --- | --- |
| DigitalOcean | A template with a /data volume, generated admin and secret values, and a domain; no server to patch. | A Droplet you configure yourself, including OS, reverse proxy, TLS and backups. |
| AWS | One deploy with the volume and domain wired up, and no IAM or VPC to set first. | Wide networking and storage control, with more services to configure first. |
| Hetzner | A managed deploy that handles the container, volume and public URL without manual Docker setup. | Low-cost servers where you install Docker, set up HTTPS and upgrade yourself. |

Choose based on how much server administration you want.

## Common Use Cases for hosted Obsidian Arc

- **A multi-user ChatGPT-style web chat for a team:** Each person signs in with their own account; conversations, projects and image generation stay on your instance.
- **An OpenAI and Anthropic compatible /v1 gateway for developers:** Engineers create API keys and point chat completions or Messages clients at your instance, never handling provider keys.
- **User groups with model access lists and quotas:** Set which group sees which models and per-group usage limits.
- **Model routing and aliases across providers:** Map one friendly model name to any provider and model ID, so vendors can change without renaming what users call.
- **Invite-only access for a team:** Set registration to invite-only in the admin console and hand out invite codes.

## Dependencies for Obsidian Arc Docker hosted on Railway

The template runs one service from ghcr.io/onepush-dev/obsidian-arc:0.12.1, an independent community packaging of the official v0.12.1 binary, on port 8080 with a volume at /data.

### Deployment Dependencies for Managed Obsidian Arc Service (one Go binary with embedded web UI, SQLite on a /data volume; no Redis or queue)

Obsidian Arc is a single Go binary with an embedded web UI, storing data in SQLite on /data.

### Implementation Details for Obsidian Arc (ghcr.io/onepush-dev/obsidian-arc:0.12.1 copies the unmodified official v0.12.1 binary onto alpine:3.22 with tini and a start script, because the Railway volume is root-owned and the upstream distroless nonroot image has no shell; baked OBSIDIAN_TRUST_PROXY=true, OBSIDIAN_TRUSTED_PROXIES=100.64.0.0/10,127.0.0.1/32, OBSIDIAN_COOKIE_SECURE=true, OBSIDIAN_ADMIN_USER=admin)

| Variable | Purpose |
| --- | --- |
| OBSIDIAN_ADMIN_PASSWORD | Password for the super-admin account created on first boot |
| OBSIDIAN_SECRET_KEY | Key that encrypts stored provider credentials; keep it safe |
| OBSIDIAN_PUBLIC_URL | Public HTTPS address used for mail links, OAuth callbacks and the OIDC issuer |

## How does Obsidian Arc compare against other tools

### Obsidian Arc vs LibreChat (Self-Hosted Chat Alternative)

- **Deployment shape:** Obsidian Arc ships as one Go binary with an embedded web UI and SQLite on a single volume, with no Redis or queue. LibreChat is generally a multi-service stack.
- **Gateway surface:** Obsidian Arc serves OpenAI-style and Anthropic-style endpoints from the same instance as the chat UI.
- **Where LibreChat may win:** a larger plugin ecosystem and longer track record.

### Obsidian Arc vs Open WebUI (Self-Hosted Chat Alternative)

- **Access control:** Obsidian Arc has user groups with model access lists and shared quotas, which suits a team sharing provider keys.
- **Provider keys:** Stored credentials are encrypted, and the generated secret key must be kept, since losing it makes them unreadable.
- **Where Open WebUI may win:** a large community and local-model focus.

### Obsidian Arc vs LiteLLM (Self-Hosted LLM Proxy Alternative)

- **Scope:** LiteLLM is mainly a proxy and routing layer. Obsidian Arc combines routing with a multi-user chat interface.
- **Model routing:** Obsidian Arc maps models across providers and exposes aliases, enough for a small team.
- **Where LiteLLM may win:** a high-throughput gateway with no chat UI.

### Obsidian Arc with Docker vs Railway (Hosting Comparison)

- **Setup:** Docker on your own host means handling the volume, HTTPS proxy, and secret key yourself. The Railway template pre-creates the admin account and closes public sign-up on first boot.
- **Persistence:** On Railway, SQLite lives on a volume at `/data`. Keep one replica for this local state and back up that volume.
- **Where Docker may win:** full host, network or Postgres control.

## How to use Obsidian Arc on Railway?

1. Open your Railway domain and sign in as `admin` with the `OBSIDIAN_ADMIN_PASSWORD` value from the Variables tab. This super_admin account is created on first boot.
2. In the admin console, add providers such as Anthropic, OpenAI, DeepSeek, OpenRouter, Ollama or vLLM with your own keys, then add the models to expose.
3. Create user groups, assign model access lists, and set request, token or credit quotas.
4. Registration is closed on first boot. Reopen it as open or invite-only in the admin console only when you want sign-ups.
5. Developers create an API key and call `/v1/chat/completions` or `/v1/messages` with the configured models.

To confirm the service is up, check the health endpoint:

```
curl https://your-domain/api/health
```

## How to self host Obsidian Arc on other VPS Services (Obsidian Arc self hosting guide)

Any Linux VPS with Docker and a domain works.

### Clone the Repository

Clone the upstream project at the v0.12.1 tag for source or docs.

```bash
git clone --branch v0.12.1 https://github.com/OnyxAxisOwO/ObsidianArc.git
cd ObsidianArc
```

### Install Dependencies

Docker is the only host requirement; the release image bundles the binary and web UI.

```bash
docker --version
```

### Configure Environment Variables

Set the admin account and a stable secret key before the first start, or the first registered user becomes admin.

```bash
export OBSIDIAN_ADMIN_USER=admin
export OBSIDIAN_ADMIN_PASSWORD="$(openssl rand -base64 24)"
export OBSIDIAN_SECRET_KEY="$(openssl rand -hex 32)"
export OBSIDIAN_PUBLIC_URL=https://your-domain
```

Put a reverse proxy in front that terminates HTTPS, then set `OBSIDIAN_TRUST_PROXY=true` and list the proxy in `OBSIDIAN_TRUSTED_PROXIES`.

### Start the Obsidian Arc Application

Run the pinned image with a named volume for `/data`, publishing port 8080 to your proxy.

```bash
docker run -d --name obsidian-arc --restart unless-stopped \
  -p 127.0.0.1:8080:8080 \
  -v arc-data:/data \
  -e OBSIDIAN_ADMIN_USER -e OBSIDIAN_ADMIN_PASSWORD \
  -e OBSIDIAN_SECRET_KEY -e OBSIDIAN_PUBLIC_URL \
  -e OBSIDIAN_TRUST_PROXY=true \
  -e OBSIDIAN_TRUSTED_PROXIES=your-proxy-address \
  -e OBSIDIAN_COOKIE_SECURE=true \
  ghcr.io/onyxaxisowo/obsidianarc:v0.12.1
curl http://localhost:8080/api/health
```

On your own VPS you manage HTTPS, the volume and restarts; Railway handles those.

## Official Pricing of Obsidian Arc (Obsidian Arc pricing)

Obsidian Arc is MIT open-source software with no upstream hosted plan, so self-hosting the software is free. Providers you connect bill model usage.

## Obsidian Arc hosted vs self hosted comparison (Pricing, features, costs, and more)

Obsidian Arc is free MIT software with no upstream hosted plan; connected providers bill model usage.

### Monthly cost of self hosting Obsidian Arc on Railway

Railway bills on usage: RAM and CPU used, the /data volume size and any other services you add.

### System Requirements for Hosting Obsidian Arc on a VPS

Obsidian Arc is a single Go binary with an embedded web UI and SQLite on a volume; no Redis or queue.

## Frequently Asked Questions (FAQs)

### How do I sign in to my Obsidian Arc instance?

Open your Railway domain and sign in as `admin` with the password in the `OBSIDIAN_ADMIN_PASSWORD` variable on the Variables tab.

### Can strangers sign up on my instance?

No. The template closes public registration on first boot, so only the admin account exists until you reopen registration as open or invite-only in the admin console.

### What happens if I change OBSIDIAN_SECRET_KEY?

Saved provider credentials are encrypted with this key, so changing it makes them unreadable and you would need to re-enter them. Keep the generated value safe.

### Is Obsidian Arc related to the Obsidian note-taking app?

No. Obsidian Arc is a separate project with no connection to the Obsidian note-taking app.

### Which AI providers can I connect?

You can add Anthropic Messages and OpenAI-compatible providers such as OpenAI, DeepSeek, xAI, OpenRouter, Groq, Ollama, and vLLM from the admin console, using your own keys.

### What should I back up?

Back up the `/data` volume, which holds the SQLite database and attachments.


## 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 v0.1 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/deploy-obsidian-arc-ai-chat-gateway
