Deploy Vocero CRM
WhatsApp CRM with shared inbox, contacts and sales pipeline
Just deployed
/data
Postgres
Just deployed
/var/lib/postgresql/data
Deploy and Host self hosted Vocero CRM (WhatsApp Inbox) on Railway
This template deploys Vocero CRM, an open-source CRM for businesses selling through WhatsApp Cloud API, with a shared inbox, contacts, and a sales pipeline.
About Hosting Vocero CRM open-source software on Railway (self hosted Vocero CRM template)
Vocero CRM is an open-source WhatsApp CRM. This template runs it on Railway in your own project.
Why Deploy Vocero CRM, the open-source WhatsApp CRM on Railway (Railway Free Trial)
Chatwoot is the obvious alternative for a shared WhatsApp inbox, and it is mature.
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 Vocero CRM 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.
Railway vs Other Hosting Providers and VPS for Vocero CRM self hosting
Vocero CRM runs as two services (app and PostgreSQL 16); the host decides how much setup you handle.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | One click deploys the app, a Postgres 16 service, and the /data volume without server work | A droplet you configure yourself: Docker, a reverse proxy, HTTPS, and backups are your job |
| AWS | The app and database wired together from a single template with no networking to design | Broad control over VPCs, load balancers, and storage, at the cost of a steeper learning curve |
| Hetzner | Managed deployment with volumes and the healthcheck configured for you | Low-cost VPS hardware where you install Docker and maintain the stack directly |
Pick Railway for managed wiring, or a VPS for full server control.
Common Use Cases for hosted Vocero CRM
- Shared WhatsApp conversations: A small team answers one business number from a shared inbox, with message status, the 24-hour window, and one-click handoff.
- Contact management: Senders are saved automatically; search, add notes, archive, or import a CSV list.
- Sales pipeline: Move leads through stages such as New, In conversation, Interested, Customer, and Lost on a drag-and-drop board, editable to match your sales process.
- Templates and notes: Keep approved WhatsApp templates ready and attach internal notes to contacts.
- Optional AI-assisted inbox: With your own AI provider key, an agent can draft or send replies, and you can take over any conversation.
Dependencies for Vocero CRM Docker hosted on Railway
This template runs the vocero app and PostgreSQL 16 in one Railway project, connected over the private network.
Deployment Dependencies for Managed Vocero CRM Service (app and Postgres 16, /data app volume and /var/lib/postgresql/data database volume; optional Nea and MinIO not included)
The vocero service uses ghcr.io/onepush-dev/vocero-crm:2.7.0-r3 on port 8080 with a volume at /data.
| Variable | Type | Purpose |
|---|---|---|
DATABASE_URL | Private reference | Connects the app to Postgres. |
APP_BASE_URL | Railway-derived reference | Public HTTPS URL built from the Railway domain, not manual input. |
BETTER_AUTH_SECRET | Generated secret | Signs login sessions. |
ENCRYPTION_KEY | Generated secret | Encrypts WhatsApp and AI tokens. Do not change after connecting channels. |
META_WEBHOOK_VERIFY_TOKEN | Generated secret | Webhook verify token and URL segment. |
VOCERO_ADMIN_PASSWORD | Generated secret | Owner account password, created at first boot. |
VOCERO_ADMIN_EMAIL | Image default | Owner login email, defaults to admin@example.com; optional override, not a supplied template input. |
POSTGRES_PASSWORD | Generated | Password of the postgres superuser (32 chars, generated). |
PGDATA | Path | Database files directory inside the Postgres volume (volume mount path + /pgdata). |
Implementation Details for Vocero CRM (onepush-dev/vocero-crm:2.7.0-r3 wraps unchanged upstream image with migrations and loopback first-owner bootstrap)
The image wraps the official ghcr.io/kevinrivm/vocero-crm:2.7.0 unchanged.
How does Vocero CRM compare against other tools
Vocero CRM vs Chatwoot (Chatwoot Alternative)
- Focus: Vocero CRM focuses on a WhatsApp shared inbox with contacts, pipeline, and notes for small businesses. Chatwoot is a broader multi-channel support platform for larger teams.
- Deployment: One template ships the app and PostgreSQL 16, with the owner account created before your public URL opens. A real inbox still needs your own Meta WhatsApp Business app.
Vocero CRM vs Kommo (Kommo Alternative)
- Ownership: Vocero CRM is MIT-licensed and runs on infrastructure you control, so conversation data stays in your deployment. Kommo is hosted SaaS that handles operations for you.
- Scope: Kommo covers more sales automation and integrations; Vocero CRM is narrower with fewer built-in integrations.
Vocero CRM vs a spreadsheet (Spreadsheet Alternative)
- Shared inbox: A spreadsheet cannot receive or send WhatsApp messages. Vocero CRM shows incoming conversations to your team and sends replies from the same place.
- Setup effort: A spreadsheet starts in minutes. Vocero CRM needs Meta configuration and a deployed service, but it gives you a live inbox and webhook handling.
Vocero CRM with Docker Compose vs Railway (Railway Alternative)
- Setup: Docker Compose on a VPS means you manage the host, TLS, and updates yourself. Railway deploys the template with generated secrets and a public domain.
- Persistence: Railway attaches volumes to the app and database services. Keep one replica for local persistent state, since a second replica would not share those files.
How to use Vocero CRM on Railway?
- Open the
voceroservice on your Railway project, go to Variables, and copyVOCERO_ADMIN_PASSWORD. Then sign in at your public URL withadmin@example.comand that password. - Change the account email and password in your account settings right away, so the generated password is no longer the only way in.
- Go to Settings, then WhatsApp, and connect your own Meta WhatsApp Business app. A real inbox requires your own Meta app. Meta usage charges may apply.
- In your Meta app, set the webhook callback to your APP_BASE_URL followed by
/api/webhooks/wa/and yourMETA_WEBHOOK_VERIFY_TOKENfrom Variables. Use the same token you copied, and keep it private. - Optionally, add an AI provider key under Settings and then AI. The inbox works without it.
- To confirm the app is healthy, run this check:
curl -s https:///api/health
A healthy instance answers with HTTP 200 on /api/health.
How to self host Vocero CRM on other VPS Services (Vocero CRM self hosting guide)
Clone the Repository
Clone the upstream project at the tag you want to run, so your VPS and Railway stay on the same release.
git clone --branch v2.7.0 https://github.com/kevinrivm/vocero-crm.git vocero-crm
cd vocero-crm
Install Dependencies
Install Docker and Docker Compose on your VPS. Node.js and pnpm are only needed for the helper script that generates your environment file.
corepack enable
pnpm install
Configure Environment Variables
Generate your .env file with your domain. Never change ENCRYPTION_KEY after you connect a WhatsApp number.
pnpm init-env --domain your-domain
Set APP_BASE_URL to https://your-domain and point DATABASE_URL at your PostgreSQL 16 service.
Start the Vocero CRM Application
Start the stack with Docker Compose. Create the owner account before you expose the public URL, so public sign-up stays closed.
docker compose up -d
Railway handles persistent volumes, HTTPS routing and health checks for you.
Official Pricing of Vocero CRM (Vocero CRM pricing)
Vocero CRM is free and open source under the MIT license, so there is no license fee to pay for the software itself. Running it on Railway is billed by Railway usage, and connecting WhatsApp may incur Meta usage fees.
Vocero CRM hosted vs self hosted comparison (Pricing, features, costs, and more)
Vocero CRM is free, MIT-licensed software, so running it costs nothing in licensing. A VPS trades managed convenience for hands-on server upkeep.
Monthly cost of self hosting Vocero CRM on Railway
Railway bills on usage, so your monthly cost tracks the memory, CPU, storage and services the app and its Postgres database consume.
System Requirements for Hosting Vocero CRM on a VPS
A self-hosted VPS needs Docker, a domain pointing at it, and enough memory and disk for the app, PostgreSQL and the attachment volume.
Frequently Asked Questions (FAQs)
Where do I find the admin password?
Copy VOCERO_ADMIN_PASSWORD from the vocero service's Variables tab in Railway, then sign in as admin@example.com.
Can I boot the CRM without connecting Meta?
Yes, the app starts and the owner can sign in without Meta. A real WhatsApp inbox still needs your own Meta WhatsApp Business app.
Is the Nea agent included in this template?
No. The optional Nea agent service and the MinIO bucket from upstream are not part of this template, and Vocero works as a manual inbox without them.
Where are attachments stored?
Attachments, the logo and the icon are saved on the /data volume attached to the vocero service. Keep that volume in mind when you plan backups.
Which keys should I back up?
Back up ENCRYPTION_KEY together with your Postgres database and the /data volume.
Does public sign-up stay open after deploy?
No. The owner account is created before the public port opens, so public sign-up is already closed when your URL goes live.
Template Content
