Deploy scylla-db
Cassandra-compatible ScyllaDB for Railway with volume and private CQL.
Just deployed
/var/lib/scylla
Deploy and Host scylla-db on Railway
scylla-db is a Railway template that runs ScyllaDB — 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/scyllafor durable storage (included in the template) - Cassandra-compatible client — Your app needs a CQL driver (e.g.
cassandra-driverfor Python,cassandra-driverfor Node.js) to connect on port9042
Deployment Dependencies
- ScyllaDB documentation
- Railway TCP Proxy — required for external CQL access
- Railway private networking — recommended for service-to-service connections
- Template repository — source, Dockerfile, and smoke-test client
- Docker image (GHCR) —
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:
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:
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.
Template Content
AUTH_SUPERUSER_SHA512_PASSWORD
SHA-512 hash of the superuser password
