Back

Self-Hosting Setup Guide

Deploy Realise.money on your own infrastructure in under 10 minutes. Pick the option that suits you best.

VPS with Docker

One script on your own server

  • Single interactive setup script
  • Auto-configured firewall, HTTPS, fail2ban
  • ~$4–10/mo — full control over your data

Vercel + External DB

Serverless, zero maintenance

  • A few clicks in the Vercel dashboard
  • Auto deploys, auto scaling, free HTTPS
  • Free – $5/mo — no server to manage

Option A: VPS with Docker

Best for full control and privacy. Everything runs on one server.

Requirements

  • 1 GB RAM minimum (2 GB recommended)
  • 20 GB disk space
  • A domain name pointed at your server
  • Ubuntu 22.04+ (fresh install)

Recommended Providers

Setup Steps

1

Create a server & point your domain

Spin up an Ubuntu 22.04+ server with any of the providers above. Then create an A record in your DNS settings pointing your domain (e.g. money.example.com) to your server's IP address.

2

SSH into your server as root

ssh root@your-server-ip
3

Download and run the setup script

The script is interactive — it will walk you through every configuration step. No manual file editing required.

curl -fsSL https://realise.money/deploy.sh -o deploy.sh
chmod +x deploy.sh
./deploy.sh
4

Follow the prompts

The script guides you through 9 steps:

Instance name, domain, GitHub repo access
Admin account credentials
App settings (registration, email restrictions)
API keys (Stripe, AI categorization — optional)
Automatic security hardening, Docker install, DNS check
Build, deploy, migrate, and seed — all automatic
5

Done

Visit your domain. Log in with your admin credentials. That's it.

What the script does behind the scenes
  • Creates a non-root deploy user and copies your SSH keys
  • Hardens SSH (disables root login & password authentication)
  • Configures UFW firewall (only ports 22, 80, 443 open)
  • Enables fail2ban and unattended security updates
  • Installs Docker and Docker Compose
  • Generates secure secrets (AUTH_SECRET, database password)
  • Sets up Caddy reverse proxy with automatic HTTPS via Let's Encrypt
  • Builds the app, starts PostgreSQL, runs database migrations
  • Seeds your admin account and app settings
Useful commands after setup

View logs

cd ~/realise.money && docker compose -f docker-compose.prod.yml logs -f

Restart services

cd ~/realise.money && docker compose -f docker-compose.prod.yml restart

Update to latest version

cd ~/realise.money && git pull && docker compose -f docker-compose.prod.yml up -d --build

Option B: Vercel + External Database

Serverless deployment. No server to manage, scales automatically.

Requirements

  • A Vercel account (free tier works)
  • An external PostgreSQL database
  • A domain name (optional — Vercel provides a free subdomain)

PostgreSQL Providers

Setup Steps

1

Create a PostgreSQL database

Sign up with any of the providers above and create a new PostgreSQL database. Copy the DATABASE_URL connection string.

2

Fork the repository

Fork the Realise.money repo to your own GitHub account (or use the invite link you received after purchase).

3

Deploy to Vercel

Import your fork in the Vercel dashboard. During setup, add these environment variables:

DATABASE_URL=postgresql://user:pass@host:5432/dbname
AUTH_SECRET=<run: openssl rand -hex 32>
AUTH_URL=https://your-domain.com

# Optional
REQUESTY_API_KEY=your-key
STRIPE_SECRET_KEY=sk_live_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx

# Admin seed (used by the seed script)
[email protected]
ADMIN_PASSWORD=your-secure-password
ADMIN_NAME=Admin
4

Run database migrations

After the first deploy, run migrations from your local machine (with the same DATABASE_URL):

git clone your-fork-url && cd realise.money
pnpm install
DATABASE_URL="your-connection-string" npx drizzle-kit push
DATABASE_URL="your-connection-string" npx tsx lib/db/seed.ts
5

Add your domain (optional)

In Vercel project settings, add your custom domain. Vercel handles HTTPS automatically. Update AUTH_URL to match.

Why Vercel + external DB?

  • Zero server maintenance — Vercel handles deployments, scaling, and SSL
  • Automatic deploys when you push to your repo
  • Free tier is generous enough for personal use
  • Works with any PostgreSQL provider — pick one in a region close to you for best performance

Which option is right for you?

VPS + DockerVercel + External DB
Setup difficultyRun one scriptA few clicks + one command
Monthly cost~$4–10/mo (server)Free – $5/mo (database)
MaintenanceAutomatic security updatesZero — fully managed
Data locationYour server onlyDB provider's infrastructure
Updatesgit pull + rebuildAutomatic on push
Best forMaximum control & privacySimplicity & zero ops

FAQ

Do I need to know Docker or DevOps?

No. The setup script handles all Docker installation and configuration automatically. You just answer a few questions (domain, admin email, etc.) and the script does the rest. For Vercel, it's just clicking through a web UI.

Can I migrate between hosting options?

Yes. Your data lives in PostgreSQL either way. You can export your database with pg_dump and import it into any other PostgreSQL instance.

What about Stripe and AI categorization?

Both are optional. Without Stripe, you can disable the payment features. Without the AI key, you can still manually categorize transactions. The app works perfectly fine without either.

How do I update to the latest version?

VPS: SSH in, run git pull && docker compose -f docker-compose.prod.yml up -d --build.
Vercel: Push to your fork (or sync with upstream) — Vercel auto-deploys.

Can I share my instance with my family?

Yes. During setup you can enable registration and optionally restrict it to a specific email domain (e.g. yourfamily.com). Each user gets their own separate budgets and accounts.

Ready to own your finances?

Get the source code and deploy in minutes.

Get Realise.money
Last updated: February 2026