How to Deploy a WhatsApp Bot on RepublicNodes
Full WhatsApp bot deployment including the QR authentication step every WhatsApp bot needs.
How to Deploy a WhatsApp Bot on RepublicNodes
Got a WhatsApp Bot Hosting plan? Here's the full deployment process, including the one step WhatsApp bots need that most other bots don't: scanning a QR code to authenticate.
What You're Working With
Our WhatsApp plans run on a generic Node.js environment โ the right fit, since the standard WhatsApp automation libraries (whatsapp-web.js, Baileys) are both Node-based. See our library comparison if you haven't picked one yet.
Getting Your Code On
Upload directly: zip your project, upload via the File Manager, extract into the root directory.
Or pull from Git: set Git Repo Address (and Git Branch, Git Username/Git Access Token for a private repo) on the Startup tab, and turn on Auto Update if you want fresh code pulled on every restart.
Dependencies
Have a package.json in your project root โ on every startup, npm install runs against it automatically. Need to add a package without touching package.json directly, or remove one? Use the Additional Node packages / Uninstall Node packages startup variables.
Telling It What to Run
Set the Main file variable to your entry point (default index.js). If your bot needs command-line flags, add them under Additional Arguments.
The WhatsApp-Specific Step: QR Authentication
Unlike a Telegram or Discord bot (which just needs a token), whatsapp-web.js and Baileys both authenticate by scanning a QR code with the WhatsApp account you want the bot to use โ this is how WhatsApp's own multi-device system works, not something specific to our hosting.
- Start your bot from the Console tab.
- Your library will print a QR code as text/ASCII art directly in the console output.
- Open WhatsApp on the phone you want linked โ Settings โ Linked Devices โ Link a Device, and scan the code shown in the console.
- Once scanned, your library saves a session to disk (usually a folder like
.wwebjs_authorauth_infodepending on the library) so it doesn't ask you to re-scan on every restart.
Don't Lose Your Session
That session folder is precious โ losing it means re-scanning the QR code and re-linking the device. Make sure it's not excluded if you ever wipe/reinstall, and consider it worth including in a manual backup before any risky change.
Common First-Run Issues
- QR code keeps regenerating / never confirms: usually a timing issue โ scan it quickly once it appears rather than leaving the console open a long time first.
- "Session closed" or forced logout after a while: WhatsApp occasionally invalidates sessions, especially after being linked on too many devices at once, or an unofficial-library flag from excessive automation โ see our troubleshooting guide for the full rundown.
- Puppeteer/Chromium errors (whatsapp-web.js specifically runs a real headless browser under the hood): make sure your plan has enough RAM โ a headless Chromium instance is noticeably heavier than a plain Node script, which is part of why our WhatsApp tiers aren't sized identically to the lightest Discord tier.
Once authenticated and stable, see our 24/7 uptime guide for handling crashes and restarts gracefully.