Deploy to Railway
Railway is a great option for running Tally if you want hosted infrastructure without managing your own server. Deploy in a few clicks.
One-click deploy
Use the Railway CLI or dashboard to deploy from the Tally GitHub repository.
Manual setup
1. Create a new project
railway init
2. Set environment variables
In the Railway dashboard, set these variables for your service:
ADMIN_PASSWORD=your-secure-password-at-least-16-chars
SITES={"example.com":{"token":"your-secret-token"}}
NODE_ENV=production
3. Add a persistent volume
Mount a volume at
/app/data
to persist the SQLite database:
railway volume add --mount-path /app/data
4. Deploy
railway up
5. Generate a domain
railway domain
This gives you a public URL like
tally-production.up.railway.app
. Use this as your tracker server URL.
Custom domain
In the Railway dashboard, go to Settings Domains Add Custom Domain. Point your DNS to the provided CNAME record. Railway handles TLS automatically.
GeoIP on Railway
Set the MaxMind credentials as environment variables and the container will download the GeoLite2 database on first start:
MAXMIND_ACCOUNT_ID=your-account-id
MAXMIND_LICENSE_KEY=your-license-key
Cost estimate
Tally's resource usage is minimal (~50MB RAM, ~50MB disk). On Railway's usage-based pricing, running Tally for a personal site typically costs less than $1/month.