Wacrm is a standard Next.js 16 application — it runs anywhere that Node.js 20 or later is available. There is no Docker image required, no Kubernetes cluster to manage, and no proprietary runtime to learn. Pick the hosting path that fits your team, paste your environment variables, and deploy.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ArnasDon/wacrm/llms.txt
Use this file to discover all available pages before exploring further.
- Hostinger (Recommended)
- Vercel
- VPS / Other
Hostinger’s Managed Node.js hosting is the tested and recommended deployment path for Wacrm. It handles SSL, CDN, process management, and Git-based deploys out of the box so you can go from a fresh fork to a live CRM in minutes.Why Hostinger?Step-by-step setup
One-click Git deploy
Connect your fork, push to
main, and Hostinger builds and ships it automatically. No SSH, no Docker, no CI pipeline to wire up.Managed Node.js
Next.js 16 with App Router, Server Actions, and ISR runs out of the box. Node version management and reverse proxies are handled for you.
Free SSL + CDN
Automatic HTTPS on your custom domain (or a free domain included with annual plans). Required for the WhatsApp webhook. Global CDN and LiteSpeed serve assets fast with no extra setup.
DDoS protection + 24/7 support
Built-in DDoS protection at the edge — important since the webhook endpoint is a public target. Live chat support in 20+ languages.
Fork the repository
Go to github.com/ArnasDon/wacrm and click Fork. This gives you a personal copy you own and can customise.
Create a Node.js app in hPanel
Log in to hPanel, go to Websites → Create, and choose Node.js as the application type. Select your hosting plan (Premium, Business, or Cloud all support Managed Node.js).
Connect your fork
In the app configuration screen, connect your GitHub account and select the fork you just created. Set the branch to
main and leave the build command as the default (npm run build) — Wacrm’s package.json already has the correct build and start scripts.Set your environment variables
In hPanel → Your App → Environment Variables, add all required variables. At minimum you need:See the full reference in
.env.local.example in the repository root.Post-deploy checklist
Run through these steps after every fresh deployment to confirm everything is wired up correctly before handing the CRM to your team.Verify the webhook endpoint responds to Meta's challenge
In the Meta for Developers dashboard, go to WhatsApp → Configuration and click Verify next to your webhook URL. Meta sends a
GET request with hub.mode=subscribe — Wacrm should respond with 200 OK and the challenge string. A 403 means the verify token doesn’t match what you saved in Settings → WhatsApp; a 502 means the app isn’t running or the URL is wrong.Send a test WhatsApp message
Send a WhatsApp message from any phone to your registered business number. The message should appear in the Wacrm Inbox within a few seconds. If it doesn’t appear, check your application logs for
[webhook] rejected request with invalid signature (wrong META_APP_SECRET) or No config found for phone_number_id (phone number ID mismatch in Settings → WhatsApp).Confirm the dashboard loads with correct stats
Log in to the dashboard and verify that the Overview page loads without errors and shows your account’s activity feed. A blank dashboard usually indicates a Supabase connection issue — double-check
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY.Configure the automations cron (if you use Wait steps)
Automations with Wait steps require a periodic cron job to drain pending executions. Set Then configure an external cron service (e.g. cron-job.org, Vercel Cron, or a server cron) to
AUTOMATION_CRON_SECRET to a long random string:GET https://your-crm.example.com/api/automations/cron?secret=your-generated-secret every minute. Automations that use only instant triggers (new message, new contact, keyword) work without this.Set
NEXT_PUBLIC_SITE_URL to your canonical domain. This variable is used when generating invite links from background workers and cron jobs that have no incoming HTTP request to derive the origin from. Without it, invite links generated in those contexts fall back to a default and may point to the wrong URL. The format is https://your-crm.example.com — no trailing slash.