Get your own Steward tenant running Deine eigene Steward-Instanz starten Coloque sua própria instância do Steward no ar

~5 minutes. Hosted entirely in your own Railway account — we have zero access. ~5 Minuten. Läuft komplett in deinem eigenen Railway-Account — wir haben null Zugriff. ~5 minutos. Hospedado inteiramente na sua própria conta Railway — não temos nenhum acesso.

📦 Public Docker image · 🔐 Your secrets · 🇪🇺 Hosted in EU available 📦 Öffentliches Docker-Image · 🔐 Deine Secrets · 🇪🇺 EU-Hosting verfügbar 📦 Imagem Docker pública · 🔐 Seus segredos · 🇪🇺 Hospedagem na UE disponível
1

Create a Railway account Railway-Account erstellen Criar uma conta no Railway

Railway hosts your service + Postgres database. Sign in with GitHub (30 seconds) and add a payment method — the Hobby tier ($5/mo) covers this stack with room to spare. Railway hostet deinen Service + die Postgres-Datenbank. Mit GitHub einloggen (30 Sekunden) und eine Zahlungsmethode hinterlegen — der Hobby-Tarif (~5 $/Monat) deckt diesen Stack locker ab. A Railway hospeda o seu serviço + banco Postgres. Entre com o GitHub (30 segundos) e adicione um meio de pagamento — o plano Hobby (~5 USD/mês) cobre este stack com folga.

Open Railway → Railway öffnen → Abrir Railway →
2

Deploy the template Template installieren Implantar o template

Click the button. Railway provisions the finances service + Postgres + a 1 GB volume — all linked. Railway will ask you for one thing: API_TOKEN. We pre-generated one for you below — copy it, paste into Railway's prompt, then click Deploy. ~2 minutes total. Klick den Button. Railway provisioniert den finances-Service + Postgres + ein 1-GB-Volume — alles verbunden. Railway fragt dich nach einer Sache: API_TOKEN. Wir haben unten einen für dich vorgeneriert — kopieren, in Railways Prompt einfügen, dann auf Deploy klicken. ~2 Minuten. Clique no botão. A Railway provisiona o serviço finances + Postgres + um volume de 1 GB — tudo conectado. A Railway vai pedir uma coisa: API_TOKEN. Já geramos um para você abaixo — copie, cole no prompt da Railway e clique em Deploy. ~2 minutos no total.

API_TOKEN paste this when Railway askseinfügen, wenn Railway danach fragtcole quando a Railway pedir
Copy this → click "Deploy on Railway" below → after signing in, Railway shows ONE input field labelled API_TOKEN → paste this value there → click Deploy. (Auto-generated in your browser via Web Crypto, 256 bits of entropy, never sent anywhere. Each refresh = a new one. See the visual walkthrough below if you get lost.) Diesen Wert kopieren → unten auf "Auf Railway installieren" klicken → nach Anmeldung zeigt Railway EIN Feld namens API_TOKEN → diesen Wert dort einfügen → auf Deploy klicken. (In deinem Browser via Web Crypto generiert, 256 Bit Entropie, geht nirgendwo hin. Bei Unklarheit siehe visuelle Anleitung unten.) Copie este valor → clique em "Implantar na Railway" abaixo → após o login, a Railway mostra UM campo chamado API_TOKEN → cole esse valor aí → clique em Deploy. (Gerado no seu navegador via Web Crypto, 256 bits de entropia, não vai a lugar nenhum. Cada atualização = um valor novo. Veja o passo a passo visual abaixo se ficar perdido.)
📸 What does Railway look like? Show me a visual walkthrough 📸 Wie sieht Railway aus? Zeig mir eine visuelle Anleitung 📸 Como a Railway parece? Mostre um passo a passo visual — most people get stuck here on their first deploy — hier hängen die meisten beim ersten Mal — a maioria fica travada aqui no primeiro deploy
railway.com/login

Sign up with email Mit E-Mail registrieren Cadastre-se com e-mail

If you don't already have a Railway account, sign up with your email — no credit card required for the first $5 of usage. Falls noch kein Railway-Account: mit E-Mail registrieren — keine Kreditkarte nötig für die ersten $5 Nutzung. Se ainda não tem conta na Railway, cadastre-se com seu e-mail — não precisa de cartão de crédito para os primeiros $5 de uso.

EmailE-MailE-mail
PasswordPasswortSenha
ContinueWeiterContinuar
1
If you don't have a Railway account yet, sign up with email + password. (GitHub login also works if you happen to have one — Railway shows both buttons.) If you're already signed in, you'll skip straight to step 2. Falls noch kein Railway-Account: mit E-Mail + Passwort registrieren. (GitHub-Login geht auch, falls vorhanden — Railway zeigt beide Buttons.) Falls du schon angemeldet bist, geht's direkt zu Schritt 2. Se ainda não tem conta na Railway, cadastre-se com e-mail + senha. (Login com GitHub também funciona, se já tiver — a Railway mostra os dois botões.) Se já estiver logado, vai direto para o passo 2.
railway.com/deploy/bold-pure

Deploy Bold-Pure Bold-Pure deployen Implantar Bold-Pure

This template deploys 2 services. Dieses Template deployt 2 Services. Este template implanta 2 serviços.

Postgres
Ready to be deployedBereit zum DeployenPronto para implantar
Configure
timwernerdxb/finances:stable
1 variable value needed1 Variablenwert nötig1 valor de variável faltando
Configure Click here Hier klicken Clique aqui
2
Railway shows the template overview. Postgres is already Ready. The finances service shows "1 variable value needed" — that's the API_TOKEN. Click the Configure button on the finances row. Railway zeigt die Template-Übersicht. Postgres ist bereits Bereit. Der finances-Service zeigt "1 variable value needed" — das ist der API_TOKEN. Auf den Configure-Button in der finances-Zeile klicken. A Railway mostra a visão geral do template. Postgres já está Pronto. O serviço finances mostra "1 variable value needed" — esse é o API_TOKEN. Clique no botão Configure na linha do finances.
railway.com/deploy/bold-pure → Configure
🐳 timwernerdxb/finances:stable
Docker image detailsDocker-Image-DetailsDetalhes da imagem Docker
ghcr.io/timwernerdxb/finances
Volume
/app/data
Environment variablesUmgebungsvariablenVariáveis de ambiente
API_TOKEN *
Paste here Hier einfügen Cole aqui
3
The Configure modal opens. Docker image and Volume already have green checkmarks — don't touch them. Scroll to Environment variables and paste the API_TOKEN you copied above into the field marked with a red asterisk. Then close this modal — the finances row's "1 variable needed" warning should disappear. Das Configure-Modal öffnet sich. Docker-Image und Volume haben schon grüne Häkchen — nicht anfassen. Zu Umgebungsvariablen scrollen und den oben kopierten API_TOKEN in das mit rotem Sternchen markierte Feld einfügen. Dann das Modal schließen — die "1 variable needed"-Warnung in der finances-Zeile sollte verschwinden. O modal Configure abre. A imagem Docker e o Volume já têm marcas verdes — não mexa. Role até Environment variables e cole o API_TOKEN que você copiou acima no campo marcado com asterisco vermelho. Em seguida feche o modal — o aviso "1 variable needed" na linha do finances deve sumir.
railway.com/deploy/bold-pure

Both services now show ✓ Ready. The big Deploy button at the bottom is now active. Beide Services zeigen jetzt ✓ Bereit. Der große Deploy-Button unten ist jetzt aktiv. Os dois serviços agora aparecem como ✓ Pronto. O grande botão Deploy no rodapé está ativo.

Postgres ReadyBereitPronto
timwernerdxb/finances:stable ReadyBereitPronto
DeployDeployDeploy
4
Both services show ✓ Ready. Click the big purple Deploy button at the bottom of the page — Railway provisions everything in ~90 seconds. Continue to step 3 below to generate a public URL. Beide Services zeigen ✓ Bereit. Auf den großen lila Deploy-Button unten klicken — Railway provisioniert alles in ~90 Sekunden. Unten zu Schritt 3 weitergehen, um eine öffentliche URL zu generieren. Os dois serviços mostram ✓ Pronto. Clique no grande botão roxo Deploy no rodapé — a Railway provisiona tudo em ~90 segundos. Continue para o passo 3 abaixo para gerar uma URL pública.
Manual setup (if the template fails or you prefer to do it yourself) Manuelles Setup (falls das Template fehlschlägt oder du es selbst machen willst) Configuração manual (se o template falhar ou preferir fazer você mesmo)
  1. Railway → New project → Docker Image → paste: ghcr.io/timwernerdxb/finances:stable
  2. + Add → Database → PostgreSQL
  3. On the finances service: Settings → Volumes → mount 1 GB at /app/data
  4. On the finances service: Variables tab — set API_TOKEN (from above) + DATABASE_URL (value below)
DATABASE_URL
Railway reference syntax — auto-resolves to your Postgres URL. Only needed for manual setup; the template handles it automatically. Railway-Referenz-Syntax — wird zu deiner Postgres-URL aufgelöst. Nur für manuelles Setup nötig; das Template erledigt das automatisch. Sintaxe de referência da Railway — resolve automaticamente para a sua URL do Postgres. Só é preciso na configuração manual; o template faz isso sozinho.
${{Postgres.DATABASE_URL}}
3

Generate a public domain & paste your URL Öffentliche Domain generieren & URL einfügen Gerar um domínio público & colar a URL

Railway services have no public URL by default. You need to generate one — takes 5 seconds: Railway-Services haben standardmäßig keine öffentliche URL. Du musst eine generieren — dauert 5 Sekunden: Por padrão, serviços da Railway não têm URL pública. Você precisa gerar uma — leva 5 segundos:

  1. In Railway, click your finances service (not the Postgres one).In Railway auf den finances-Service klicken (nicht den Postgres).Na Railway, clique no seu serviço finances (não no Postgres).
  2. Top tabs: Settings → scroll to Networking section.Obere Tabs: Settings → zur Networking-Sektion scrollen.Abas superiores: Settings → role até a seção Networking.
  3. Under Public Networking, click "Generate Domain" (the lightning-bolt button). Railway gives you a free *.up.railway.app URL.Unter Public Networking auf "Generate Domain" klicken (der Blitz-Button). Railway gibt dir eine kostenlose *.up.railway.app-URL.Em Public Networking, clique em "Generate Domain" (o botão do raio). A Railway dá uma URL gratuita em *.up.railway.app.
  4. Wait for the deploy to finish (~2 min from when you clicked Deploy in step 2). Railway shows a green "Active" badge when ready.Auf das Ende des Deploys warten (~2 Min seit Klick auf Deploy in Schritt 2). Railway zeigt einen grünen "Active"-Badge, wenn fertig.Aguarde o deploy terminar (~2 min desde o clique em Deploy no passo 2). A Railway mostra uma etiqueta verde "Active" quando estiver pronto.
  5. Copy the URL Railway just generated, paste it below, click Verify.Die generierte URL kopieren, unten einfügen, auf Prüfen klicken.Copie a URL que a Railway acabou de gerar, cole abaixo e clique em Verificar.

Custom domain instead? Click "Custom Domain" in the same Networking section, point your DNS at Railway, then paste your custom URL below. Don't forget to also set WEBAUTHN_RP_ID=your.domain.com in env vars before enrolling passkeys. Eigene Domain stattdessen? Auf "Custom Domain" in derselben Networking-Sektion klicken, DNS auf Railway zeigen lassen, dann deine eigene URL unten einfügen. Vor der Passkey-Enrollment WEBAUTHN_RP_ID=deine.domain.com in den Env-Vars setzen nicht vergessen. Prefere um domínio próprio? Clique em "Custom Domain" na mesma seção Networking, aponte seu DNS para a Railway e cole a sua URL personalizada abaixo. Antes de cadastrar passkeys, lembre-se de configurar WEBAUTHN_RP_ID=seu.dominio.com nas variáveis de ambiente.

4

Create your admin account Admin-Account anlegen Criar sua conta de administrador

Your tenant's first-boot wizard lives at your-project.up.railway.app/setup. Pick an email + password, hit Create, and you're inside. Der First-Boot-Wizard deiner Instanz liegt unter dein-projekt.up.railway.app/setup. E-Mail + Passwort wählen, "Anlegen" klicken — du bist drin. O assistente de primeira execução da sua instância está em seu-projeto.up.railway.app/setup. Escolha um e-mail + senha, clique em Criar e pronto.

5

Email reminders — optional E-Mail-Erinnerungen — optional Lembretes por e-mail — opcional

Skip this and the app works fine — overdue payments still appear in the dashboard. Set it up if you want emails delivered: payment reminders, daily briefings, monthly reports. Überspringen ist okay — überfällige Zahlungen bleiben im Dashboard sichtbar. Einrichten, falls du E-Mails möchtest: Zahlungserinnerungen, tägliche Briefings, Monatsberichte. Pode pular — pagamentos em atraso continuam aparecendo no dashboard. Configure se quiser receber e-mails: lembretes de pagamento, briefings diários e relatórios mensais.

Why your own account? Emails go from your domain (better deliverability + branding), and we never see who you're emailing or what about. Resend's free tier is 100 emails/day — plenty for personal use. Warum dein eigener Account? E-Mails gehen von deiner Domain (bessere Zustellung + Branding), und wir sehen weder Empfänger noch Inhalte. Resends Free-Tier reicht mit 100 E-Mails/Tag locker für privaten Gebrauch. Por que sua própria conta? Os e-mails saem do seu domínio (melhor entrega + branding), e não vemos para quem você envia nem o conteúdo. O plano grátis do Resend dá 100 e-mails/dia — bastante para uso pessoal.

  1. Sign up at resend.com (GitHub OAuth, 30 sec)Auf resend.com registrieren (GitHub OAuth, 30 Sek)Cadastre-se em resend.com (GitHub OAuth, 30 seg)
  2. Verify your domain (or use their default *.resend.dev for testing)Domain verifizieren (oder Resends Default *.resend.dev zum Testen nutzen)Verifique seu domínio (ou use o padrão deles *.resend.dev para testes)
  3. API Keys → Create → copy the keyAPI Keys → Create → Schlüssel kopierenAPI Keys → Create → copie a chave
  4. In Railway → finances service → Variables → add RESEND_API_KEY + RESEND_FROM (your verified from-address)In Railway → finances-Service → Variables → RESEND_API_KEY + RESEND_FROM (deine verifizierte Absender-Adresse) hinzufügenNa Railway → serviço finances → Variables → adicione RESEND_API_KEY + RESEND_FROM (seu endereço de remetente verificado)

Prefer SMTP or your own Outlook? Set SMTP_HOST + SMTP_USER + SMTP_PASS instead — same fallback chain. Lieber SMTP oder dein eigenes Outlook? Stattdessen SMTP_HOST + SMTP_USER + SMTP_PASS setzen — gleiche Fallback-Kette. Prefere SMTP ou seu próprio Outlook? Configure SMTP_HOST + SMTP_USER + SMTP_PASS em vez disso — mesma cadeia de fallback.

Open Resend → Resend öffnen → Abrir Resend →
6

Connect a bank — optional, later Bank verbinden — optional, später Conectar um banco — opcional, depois

All bank-feed integrations are optional and configurable from the Connections page. Pick the providers that match where your accounts live: Alle Bank-Anbindungen sind optional und über die Connections-Seite konfigurierbar. Wähle die Anbieter, die zu deinen Konten passen: Todas as integrações bancárias são opcionais e configuráveis pela página Connections. Escolha os provedores onde estão suas contas:

Each provider gives you their own API keys; you paste them into your Railway env vars. We've never seen them — they go from the provider straight to your tenant. Jeder Anbieter gibt dir eigene API-Keys; du fügst sie in deine Railway-Env-Vars ein. Wir bekommen sie nie zu sehen — sie gehen direkt vom Anbieter zu deiner Instanz. Cada provedor te dá suas próprias chaves de API; você as cola nas env vars da Railway. Nunca as vemos — elas vão direto do provedor para a sua instância.

What it costsWas es kostetQuanto custa
Railway Hobby tier (Postgres + service + 1GB volume)Railway-Hobby-Tarif (Postgres + Service + 1-GB-Volume)Plano Hobby da Railway (Postgres + serviço + volume de 1 GB) ~$5/mo
Steward license — 14-day trial, then from $9.99Steward-Lizenz — 14 Tage Testphase, dann ab 9,99 $Licença Steward — 14 dias de teste, depois a partir de US$ 9,99 see pricing
Bank aggregator API keys (free tiers usually cover personal use)Bank-Aggregator-API-Keys (Free-Tiers reichen meist für privaten Gebrauch)Chaves de API de agregadores bancários (planos grátis costumam cobrir uso pessoal) $0
TotalGesamtTotal ~$5/mo