---
title: "Deploy Outerbase Studio"
description: "Browser-based GUI for Postgres, MySQL, and SQLite databases"
category: "Other"
url: https://railway.com/deploy/outerbase-studio
---

# Deploy Outerbase Studio

Browser-based GUI for Postgres, MySQL, and SQLite databases

**[Deploy Outerbase Studio on Railway](https://railway.com/template/outerbase-studio)**

- **Creator:** André Lademann's Projects
- **Category:** Other

## Template content

### Outerbase Studio

- **Source:** https://github.com/vergissberlin/railwayapp-outerbase-studio
- **Public domain:** Yes

## Documentation

# Outerbase Studio for railway.app

![Template Header](./template-header.svg)

Deploy Outerbase Studio on Railway with one click.

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/outerbase-studio?referralCode=2_sIT9&amp;utm_medium=integration&amp;utm_source=template&amp;utm_campaign=generic)

# Deploy and Host Outerbase Studio on Railway

Outerbase Studio is a lightweight, open-source database GUI that runs in your browser and connects
to Postgres, MySQL, and SQLite. This template packages the community-maintained
`chewcw/outerbase-studio` Docker image so you can deploy a working instance on Railway in a single
click, without installing a desktop database client or managing a server yourself.

## About Hosting Outerbase Studio

Outerbase Studio serves its UI from a single container and connects to your databases directly
from the browser session. Hosting it on Railway means Railway builds the Docker image, terminates
TLS on a public domain, and keeps the container restarted and healthy — you only manage the
database connections you add inside the app.

## Why Deploy Outerbase Studio on Railway

* **Zero infrastructure management** — no VM or Docker host to patch or size
* **Instant HTTPS** — Railway issues a public domain with TLS out of the box
* **Basic-auth gate included** — `STUDIO_USER`/`STUDIO_PASSWORD` keep the public domain from being wide open
* **Automatic rebuilds** — Renovate keeps the pinned upstream image current, Railway redeploys on push
* **Team access** — invite teammates to the same Railway project instead of sharing local installs

## Common Use Cases

* A lightweight, browser-based SQL client for a database already running on Railway
* Giving a small team shared query access without installing a desktop SQL client each
* Ad-hoc data exploration and debugging against Postgres, MySQL, or SQLite
* A disposable database GUI you can spin up per project instead of a shared, long-lived instance

## Dependencies for Outerbase Studio

* The community `chewcw/outerbase-studio` Docker image (pinned tag, see `Dockerfile`)
* `STUDIO_USER` and `STUDIO_PASSWORD` environment variables for basic auth
* Network access to whichever databases you connect to from within the app

## ✨ Features

* Outerbase Studio on Railway with a Dockerfile build
* Pinned upstream image so Renovate can raise update PRs
* Healthcheck and restart policy preconfigured
* Persistent volume mount path declared

## 🚀 Quick Start

1. Click "Deploy on Railway"
2. Set the environment variables listed below
3. Attach a volume at `/app/data` before sending production traffic
4. Wait for the build and open the generated URL

## ⚙️ Configuration

### Environment variables

```bash
STUDIO_USER=admin
STUDIO_PASSWORD=changeme
```

Set real credentials as Railway variables, never in a file inside this repository. Confirmed on a
live deployment: the container refuses to start (or crash-loops) without these two set.

## 💾 Persistence

`railway.toml` declares `requiredMountPath = "/app/data"`. Attach a Railway volume to that
path before production traffic, otherwise all data is lost on every redeploy.

## ⚠️ Known limitations

This template uses the community-maintained [`chewcw/outerbase-studio`](https://hub.docker.com/r/chewcw/outerbase-studio)
image (pinned at `v0.9.2`), because the upstream [outerbase/studio](https://github.com/outerbase/studio)
project has no official Docker image yet ([tracking discussion](https://github.com/outerbase/studio/discussions/443)).

* The image ignores `$PORT` and always binds to `8080` internally, regardless of what Railway
  sets — confirmed on a live deployment. This is harmless: Railway's proxy auto-detects the
  listening port, so the generated domain still routes correctly with no `startCommand` needed.
* `/app/data` is a precautionary mount path; it is not confirmed that the image persists anything
  there, since Outerbase Studio normally keeps connections in the browser rather than server-side.

## 🐳 Local Development

```bash
git clone https://github.com/vergissberlin/railwayapp-outerbase-studio.git
cd railwayapp-outerbase-studio
cp .env.example .env
docker compose up -d
```

Then open http://localhost:3000 (mapped to the container's internal port 8080).

## 🪲 Bug Reporting

Found a bug? [Create an issue](https://github.com/vergissberlin/railwayapp-outerbase-studio/issues/new) or open a pull request with a fix.

## 🤝 Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).

## 📝 License

MIT — see [LICENSE](LICENSE).

## 🔒 Security

* All credentials are supplied as environment variables, never committed
* Railway terminates TLS for the generated domain
* Renovate keeps the pinned upstream image up to date

## Railway runtime defaults

`railway.toml` ships these defaults:

* Healthcheck path: `/`
* Restart policy: `ON_FAILURE` with up to 10 retries
* Dockerfile-based build

Outerbase Studio ignores `$PORT` and always listens on `8080`; Railway's proxy auto-detects this,
so no start command is configured.

## 📚 Resources

* [Outerbase Studio documentation](https://github.com/outerbase/studio)
* [Railway documentation](https://docs.railway.app/)
* [Template updates](https://docs.railway.com/reference/templates#updatable-templates)


---

[![Airbyte](https://img.shields.io/badge/Airbyte-615EFF?style=for-the-badge&amp;logo=airbyte&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-airbyte) [![Apache Airflow](https://img.shields.io/badge/Apache%20Airflow-017CEE?style=for-the-badge&amp;logo=apacheairflow&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-airflow) [![CloudBeaver](https://img.shields.io/badge/CloudBeaver-382923?style=for-the-badge&amp;logo=dbeaver&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-cloudbeaver-ce) [![CodiMD](https://img.shields.io/badge/CodiMD-0F766E?style=for-the-badge&amp;logo=markdown&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-codimd) [![Django](https://img.shields.io/badge/Django-092E20?style=for-the-badge&amp;logo=django&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-django) [![Email Service](https://img.shields.io/badge/Email%20Service-2563EB?style=for-the-badge&amp;logo=maildotru&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-email) [![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=for-the-badge&amp;logo=fastapi&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-fastapi) [![Flask](https://img.shields.io/badge/Flask-3fad48?style=for-the-badge&amp;logo=flask&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-flask) [![Flowise](https://img.shields.io/badge/Flowise-4F46E5?style=for-the-badge&amp;logo=nodedotjs&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-flowise) [![GitLab CE](https://img.shields.io/badge/GitLab%20CE-FC6D26?style=for-the-badge&amp;logo=gitlab&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-gitlab) [![Grafana](https://img.shields.io/badge/Grafana-F46800?style=for-the-badge&amp;logo=grafana&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-grafana) [![Home Assistant](https://img.shields.io/badge/Home%20Assistant-18BCF2?style=for-the-badge&amp;logo=homeassistant&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-homeassistant) [![InfluxDB](https://img.shields.io/badge/InfluxDB-22ADF6?style=for-the-badge&amp;logo=influxdb&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-influxdb) [![MJML](https://img.shields.io/badge/MJML-F45E43?style=for-the-badge&amp;logo=mjml&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-mjml) [![MongoDB](https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge&amp;logo=mongodb&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-mongodb) [![Mosquitto MQTT](https://img.shields.io/badge/Mosquitto%20MQTT-3C5280?style=for-the-badge&amp;logo=eclipsemosquitto&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-mqtt) [![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&amp;logo=mysql&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-mysql) [![n8n](https://img.shields.io/badge/n8n-EA4B71?style=for-the-badge&amp;logo=n8n&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-n8n) [![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&amp;logo=nodedotjs&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-nodejs) [![Node-RED](https://img.shields.io/badge/Node-RED-8F0000?style=for-the-badge&amp;logo=nodered&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-nodered) [![OpenSearch](https://img.shields.io/badge/OpenSearch-005EB8?style=for-the-badge&amp;logo=opensearch&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-opensearch) [![Open WebUI](https://img.shields.io/badge/Open%20WebUI-D68E42?style=for-the-badge&amp;logo=ollama&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-openwebui) [![Outerbase Studio](https://img.shields.io/badge/Outerbase%20Studio-000000?style=for-the-badge&amp;logo=outerbase&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-outerbase-studio) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-4169E1?style=for-the-badge&amp;logo=postgresql&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-postgresql) [![Redis](https://img.shields.io/badge/Redis-DC382D?style=for-the-badge&amp;logo=redis&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-redis) [![TYPO3 CMS](https://img.shields.io/badge/TYPO3%20CMS-FF8700?style=for-the-badge&amp;logo=typo3&amp;logoColor=white)](https://github.com/vergissberlin/railwayapp-typo3)


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — [Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/outerbase-studio
