---
title: "Deploy wacrm + Supabase"
description: "WhatsApp CRM on Meta's official API, with a self-hosted Supabase"
category: "Automation"
url: https://railway.com/deploy/wacrm-supabase
---

# Deploy wacrm + Supabase

WhatsApp CRM on Meta's official API, with a self-hosted Supabase

**[Deploy wacrm + Supabase on Railway](https://railway.com/template/wacrm-supabase)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/wacrm-supabase/manifest.json

- **Creator:** Youssef Siam
- **Category:** Automation

## Template content

### auth

- **Image:** supabase/gotrue:v2.196.0

### kong

- **Image:** ghcr.io/youssefsiam38/wacrm-railway-kong:1.0.0
- **Public domain:** Yes

### scheduler

- **Image:** ghcr.io/youssefsiam38/wacrm-railway-scheduler:1.0.0

### realtime

- **Image:** supabase/realtime:v2.134.10

### rest

- **Image:** postgrest/postgrest:v14.17

### app

- **Image:** ghcr.io/youssefsiam38/wacrm-railway-app:1.0.0
- **Health check:** /login
- **Public domain:** Yes

### db

- **Image:** ghcr.io/youssefsiam38/wacrm-railway-db:1.0.0

### storage

- **Image:** ghcr.io/youssefsiam38/wacrm-railway-storage:1.0.0

## Documentation

# Deploy and Host wacrm on Railway

wacrm is an open-source CRM for WhatsApp, built on Meta's official WhatsApp Business Platform. A team
works one shared inbox with assignment and notes, keeps contacts and custom fields, moves deals through
Kanban pipelines, sends approved-template broadcasts, and builds no-code automations and flows. An
optional AI assistant drafts or sends replies with your own OpenAI or Anthropic key. This is a
community-maintained template; it is not affiliated with the wacrm project.

## About Hosting wacrm

wacrm is a Next.js app on Supabase. Upstream expects a Supabase Cloud project, migrations pushed from your
own machine with the Supabase CLI, and an image built with your Supabase URL and key compiled in. This
template runs everything on Railway instead, in one project: a self-hosted Supabase (Postgres, Auth,
PostgREST, Realtime, Storage and the Kong gateway), wacrm itself, and a small scheduler, eight services
in all, with nothing to sign up for first.

The first start does upstream's manual steps for you. It waits for Supabase's own services, applies all of
wacrm's migrations in order, each in its own transaction, runs upstream's schema check, creates your owner
account from the e-mail you enter, writes this deployment's Supabase URL and key into the built app, and
only then starts serving.

It also closes something upstream leaves open. In wacrm, anyone who finds the signup page gets a working
CRM account of their own on your instance. Here signup is by invitation only, enforced in the database
under Supabase Auth, so invited teammates join your account and nobody else gets in.

## Why Deploy wacrm 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 wacrm 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.

Concretely, this template generates every secret in the format wacrm needs, derives Supabase's API keys
from one of them, wires all eight services over Railway's private network with dual-stack listeners,
attaches volumes to the database and file storage, and runs the cron calls that automation wait steps and
flows depend on.

## Common Use Cases

- Run a sales or support team's shared WhatsApp inbox on the official Business Platform, with assignment,
  notes and statuses.
- Track leads from first message to closed deal in pipelines linked to conversations.
- Send template broadcasts with per-recipient variables and delivery tracking.
- Automate follow-ups with triggers, waits, branches and webhooks, and draft replies with AI.

## Dependencies for wacrm Hosting

- A Meta for Developers app with WhatsApp enabled: a phone number ID, a WhatsApp Business Account ID and
  an access token, entered in the app, plus the app secret as `META_APP_SECRET`.
- Optional: an OpenAI or Anthropic key, added per account in the app, for the AI assistant.
- Optional: SMTP settings on the `auth` service, for password-reset e-mails.
- Nothing else. No Supabase account.

### Deployment Dependencies

- wacrm: https://github.com/ArnasDon/wacrm (MIT)
- Supabase self-hosting stack: https://github.com/supabase/supabase/tree/master/docker (Apache-2.0)
- WhatsApp Cloud API: https://developers.facebook.com/docs/whatsapp/cloud-api
- Template repository, images and tests: https://github.com/youssefsiam38/wacrm-railway

### Implementation Details

The app image is built from a pinned upstream commit with placeholder values that the start-up replaces,
and with one source change: the signup page also sends the invitation token it already holds, so the
database can admit invited teammates. Three thin wrappers adapt Supabase to Railway: init scripts baked in
where Supabase's compose file would mount them, API keys minted from the shared JWT secret with
byte-identical output in Node and Perl, and the Vault key kept on the database volume. Every service
refuses to start on missing, short or published example secrets, or on a reference to another service
that has not resolved. The bundle is tested as a whole in CI, on fresh and reused volumes, before any
image is pushed.

The deploy form asks for one value, `OWNER_EMAIL`. After deploying, copy `OWNER_PASSWORD` from the app
service's variables and sign in on the app's domain. Set `META_APP_SECRET` once you have created your Meta
app, and point its webhook at `/api/whatsapp/webhook` on the app's domain.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/wacrm-supabase
