---
title: "Deploy scylla-db"
description: "Cassandra-compatible ScyllaDB for Railway with volume and private CQL."
category: "Other"
url: https://railway.com/deploy/scylla-db
---

# Deploy scylla-db

Cassandra-compatible ScyllaDB for Railway with volume and private CQL.

**[Deploy scylla-db on Railway](https://railway.com/template/scylla-db)**

- **Creator:** Marco Quintella's Projects
- **Category:** Other

## Template content

### scylladb https://cdn.simpleicons.org/scylladb/53CADD.svg

- **Image:** ghcr.io/marco-quintella/scylladb-railway:latest
- **Health check:** /storage_service/release_version
- **Public domain:** Yes

## Documentation

# Deploy and Host scylla-db on Railway

**scylla-db** is a Railway template that runs [ScyllaDB](https://www.scylladb.com/) — a high-performance, Cassandra-compatible NoSQL database built for low-latency reads and writes at scale. It speaks the CQL protocol, so existing Cassandra drivers and tooling work out of the box. This template deploys a single-node ScyllaDB 5.1.4 instance tuned for Railway's container and private networking environment.

## About Hosting scylla-db

Hosting ScyllaDB on Railway means running a pre-built Docker image with container-friendly defaults: CPU and memory limits (`SMP`, `MEM`), overprovisioned mode, IPv6 private networking, and authenticated CQL access. The template attaches a persistent volume at `/var/lib/scylla` so data survives redeploys. Your application services connect over Railway's private network on port `9042`; external access requires enabling **TCP Proxy** (CQL is TCP, not HTTP). After deploy, link the ScyllaDB service to your app to receive connection reference variables (`SCYLLA_PRIVATE_HOST`, `SCYLLA_USER`, etc.). Change the default superuser password before production.

## Common Use Cases

- **Backend data store** — High-throughput CQL storage for web APIs, microservices, and event-driven apps deployed alongside ScyllaDB on Railway
- **Cassandra migration / compatibility** — Run workloads that already use the Cassandra driver ecosystem without managing bare-metal or VM clusters
- **Real-time and IoT workloads** — Low-latency writes and time-series style data patterns where ScyllaDB's performance profile fits your stack

## Dependencies for scylla-db Hosting

- **Persistent volume** — Required at `/var/lib/scylla` for durable storage (included in the template)
- **Cassandra-compatible client** — Your app needs a CQL driver (e.g. `cassandra-driver` for Python, `cassandra-driver` for Node.js) to connect on port `9042`

### Deployment Dependencies

- [ScyllaDB documentation](https://docs.scylladb.com/)
- [Railway TCP Proxy](https://docs.railway.com/networking/tcp-proxy) — required for external CQL access
- [Railway private networking](https://docs.railway.com/networking/private-networking) — recommended for service-to-service connections
- [Template repository](https://github.com/marco-quintella/scylladb-railway) — source, Dockerfile, and smoke-test client
- [Docker image (GHCR)](https://github.com/users/marco-quintella/packages/container/package/scylladb-railway) — `ghcr.io/marco-quintella/scylladb-railway:latest`

### Implementation Details

Connect from another Railway service using the injected reference variables:

| Setting | Private network |
| --- | --- |
| Host | `$SCYLLA_PRIVATE_HOST` |
| Port | `9042` |
| User | `$SCYLLA_USER` |
| Password | `$SCYLLA_PASSWORD` |

**Python example:**

```python
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
import os

auth = PlainTextAuthProvider(
    username=os.environ["SCYLLA_USER"],
    password=os.environ["SCYLLA_PASSWORD"],
)
cluster = Cluster(
    contact_points=[os.environ["SCYLLA_PRIVATE_HOST"]],
    port=9042,
    auth_provider=auth,
)
session = cluster.connect()
print(session.execute("SELECT release_version FROM system.local").one())
```

**Health check** (Railway HTTP probe — set `PORT=10000` on the service):

```
/storage_service/native_transport
```

**Change the default password** — generate a SHA-512 hash and set `AUTH_SUPERUSER_SHA512_PASSWORD`:

```bash
python3 -c "import crypt; print(crypt.crypt('YOUR_PASSWORD', crypt.METHOD_SHA512))"
```

## Why Deploy scylla-db 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 scylla-db 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

- [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/scylla-db
