
Deploy Gel | (Just Updated) Graph-Relational Database With Admin UI, Data Survives Redeploys
Graph-relational database on Postgres, admin UI, persistent volume
Just deployed
/var/lib/gel
Deploy and Host Gel on Railway
Gel (formerly EdgeDB) is a graph-relational database built on PostgreSQL. You model data as typed objects with links, query it with EdgeQL, and manage it from a built-in admin UI. This template runs Gel as a single service from a digest-pinned official image, with a generated admin password and a persistent volume.
About Hosting Gel
Gel needs a few things handled for Railway, all done in the start command:
- Writable volume. Railway mounts volumes root-owned while the image runs as an unprivileged user. The service runs as root and logs the owner of the data directory at boot.
- Data directory under the mount. The database lives in a subdirectory of
/var/lib/gel, so the volume'slost+foundnever lands in the data directory. - Generated password.
GEL_SERVER_PASSWORDis random per deploy, so no default credential is ever live on a public address. - Wire protocol. Gel clients connect over its own protocol on port 5656 through a TCP proxy; the admin UI is served on the same port at
/ui.
Why Deploy
- Admin UI and EdgeQL over a public address, plus a private address for services in the same project
- Connection strings preset as variables:
GEL_DSN(public) andGEL_PRIVATE_DSN(private) - Data survives redeploys
- Self-signed TLS generated on first boot and stored on the volume
Common Use Cases
- Application backend database with a typed schema and migrations
- Replacing an ORM plus PostgreSQL pair with one graph-relational model
- Prototyping data models with the built-in UI and query editor
- Self-hosted alternative to a hosted graph or document database
Dependencies for Gel Hosting
- None. Gel runs as one service with a volume at
/var/lib/gel.
Deployment Dependencies
- Gel: https://github.com/geldata/gel
- Documentation: https://docs.geldata.com/
- Official image: https://hub.docker.com/r/geldata/gel
Implementation Details
| Variable | Purpose |
|---|---|
GEL_SERVER_PASSWORD | Password for the admin user, generated per deploy. |
GEL_DSN | Public connection string through the TCP proxy. |
GEL_PRIVATE_DSN | Private connection string for services in the same Railway project. |
Connect with the Gel CLI using gel --dsn "$GEL_DSN" --tls-security insecure, or open /ui on the service domain and sign in as admin.
Why Deploy Gel 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 Gel 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.
Template Content
