---
title: "Deploy Hot Updater"
description: "Self-host Hot Updater on Railway in minutes"
category: "Other"
url: https://railway.com/deploy/hot-updater
---

# Deploy Hot Updater

Self-host Hot Updater on Railway in minutes

**[Deploy Hot Updater on Railway](https://railway.com/template/hot-updater)**

- **Creator:** Selva
- **Category:** Other

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### hot-updater https://i.ibb.co/5x45JkT4/hot-updater-square.png

- **Source:** slvssb/custom-hotupdater-server

## Buckets

- **Bucket**

## Documentation

# Deploy and Host Hot Updater on Railway

Hot Updater is an open-source over-the-air update system for React Native. This template deploys a complete self-hosted Hot Updater stack built with Bun, Hono, and Drizzle, including a PostgreSQL database and a Railway S3-compatible Object Storage Bucket.

## About Hosting Hot Updater

This template provisions everything needed to run Hot Updater on Railway: the API server, PostgreSQL database, and object storage bucket. Database and bucket variables are connected and prefilled automatically. The server applies committed Drizzle migrations before startup and listens on port 8080.

Public routes allow React Native clients to check for app-version or fingerprint updates. Bundle and channel management routes are protected by bearer authentication. The only value you need to provide is your own secure `HOT_UPDATER_AUTH_TOKEN`.

## Common Use Cases

- Self-host over-the-air React Native updates
- Manage release channels, bundles, app versions, and fingerprints
- Store update bundles in Railway's S3-compatible object storage
- Deploy a complete Hot Updater backend without configuring external infrastructure

## Dependencies for Hot Updater Hosting

- Hot Updater API server running on Bun and Hono
- PostgreSQL 18 database for persistent metadata
- Railway S3-compatible Object Storage Bucket for update bundles
- Automatic Drizzle migrations before server startup

### Deployment Dependencies

- [Hot Updater custom server overview](https://hot-updater.dev/docs/custom/overview)
- [Hot Updater CLI configuration](https://hot-updater.dev/docs/custom/cli-configuration)
- [Hot Updater React Native documentation](https://hot-updater.dev/docs)

### Configuration

Enter one value before deploying:

- `HOT_UPDATER_AUTH_TOKEN`: your secure bearer token for bundle and channel management requests

The template automatically configures `DATABASE_URL`, `S3_REGION`, `S3_ENDPOINT`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET_NAME`, and `PORT`. No external database, bucket, or storage credentials are required.

### Implementation Details

The API is mounted at `/hot-updater`. Update checks under `/version`, `/app-version/*`, and `/fingerprint/*` are public. Bundle and channel management endpoints under `/api/*` require `Authorization: Bearer `.

The production image runs as an unprivileged user, connects to the included PostgreSQL and Railway Bucket services, performs database migrations, and starts on port 8080.

## Why Deploy Hot Updater 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 Hot Updater 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/hot-updater
