Railway

Deploy Sierpe

Self-hosted Stellar indexer: register a contract, get its full history.

Deploy Sierpe

Just deployed

/var/lib/postgresql/data

Deploy and Host Sierpe on Railway

Sierpe is a self-hosted Stellar indexer. Register a Soroban contract and Sierpe reads its on-chain spec, follows the network tip and backfills its complete history: events, contract state, decoded token transfers, classic trustlines of SAC assets and every token movement in or out of the contract. Everything lands in your own Postgres behind an honest REST API and a built-in management UI.

About Hosting Sierpe

This template deploys two services wired together: a Postgres database that Sierpe owns (it runs its own migrations) and the Sierpe container from the public image ghcr.io/zkcaleb-dev/sierpe. The admin token and the Basic Auth password are generated for your deployment, so the instance is private from the first minute. After deploying, open the generated domain, sign in with the HTTP_BASIC_AUTH value from the Variables tab, paste ADMIN_TOKEN into the UI admin box and register your first contract. Sierpe classifies it, backfills its history and keeps following the tip. It runs on testnet out of the box; for mainnet set NETWORK=mainnet and provide RPC_URLS, since there is no free public mainnet RPC. Every response declares its coverage, so you always know which ledger ranges the instance can vouch for.

Common Use Cases

  • Track deposits and withdrawals of an escrow or vault contract without registering every asset it receives
  • Serve a dApp frontend the complete event history of its contracts, older than the seven days an RPC keeps
  • Build dashboards and alerts over contract state, token transfers and trustlines from your own database

Dependencies for Sierpe Hosting

  • PostgreSQL 14 or newer (included in this template)
  • Outbound HTTPS to a Stellar RPC endpoint (the public testnet RPC is the default; mainnet needs your own)

Implementation Details

Register a contract with one request:

curl -X POST https://YOUR-APP.up.railway.app/v1/contracts -u user:password -H "Authorization: Bearer $ADMIN_TOKEN" -H "Content-Type: application/json" -d '{"contract_id":"C...","from":"genesis","kinds":["events","state","movements"]}'

Then query it: GET /v1/contracts/{id}/events, /state, /transfers, /trustlines and /movements, all paginated with opaque cursors and a scanStatus. Documentation and the OpenAPI contract live at https://sierpe-web.vercel.app and https://github.com/zkCaleb-dev/sierpe.

Why Deploy Sierpe 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 Sierpe 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

More templates in this category

View Template
Matomo Analytics + MariaDB
Privacy-friendly analytics with MariaDB and persistent volumes.

leodev
1
View Template
Bugsink
Self-hosted Error Tracking. Sentry-SDK compatible

nonzerosum
19
View Template
SubTrackr
Self-hosted Subscription Tracker

amnesia
3