How to host a Discord bot 24/7 for free

By Aubin Devogelaere, founder of Waifly · Updated 2026-08-12 · Every figure below is the one the platform runs on.

A Discord bot written in Node.js (discord.js) or Python (discord.py) runs comfortably inside Waifly's free plan — 300 MB of RAM, 1 GB of storage and CPU capped at 30% — and stays online 24/7 at €0 per month, with no credit card. A typical discord.js bot with 20 to 30 commands idles around 80–120 MB of RAM, so the limit is rarely the constraint. The two things that actually stop a free bot are the anti-abuse rules: a server left offline for 3 days is suspended automatically, and VPNs, proxies and tunnels are forbidden.

Step by step

  1. Create an account

    Sign up at dash.waifly.com with a username of at least 4 alphanumeric characters and a password of at least 6, or in one click with Discord, Google or Apple. No payment method is requested for the free plan.

  2. Create a server with the right runtime

    Open the Servers tab, click Create, name the server, and pick the Egg matching your bot: NodeJS for discord.js, Python for discord.py. Choose location FR2 (Paris) unless FR1 has capacity. Leave the free-plan limits as they are: 300 MB RAM, 1 GB disk, 30% CPU.

  3. Upload your bot

    Open the Pterodactyl panel, go to Files, and upload your project — or connect over SFTP with a client like FileZilla using the credentials shown in the panel. Include package.json for Node.js or requirements.txt for Python so dependencies install on start.

  4. Put your token in an environment file

    Never hard-code the Discord token in your source. Put it in a .env file and read it with process.env.DISCORD_TOKEN or os.environ. Files named .env are excluded from Waifly's automated security scan, unlike the rest of your code.

  5. Set the startup command and start

    In the panel's Startup tab, set the entry point — node index.js or python main.py. Hit Start and watch the console: dependency installation and the Discord gateway handshake both appear there, which is where token and intent errors show up first.

  6. Keep it alive

    Enable auto-restart in the panel so a crash brings the process back instead of leaving the server idle. This matters: a server that stays offline for 3 days is suspended automatically, and an account created less than 7 days earlier loses its server 3 days after that.

What the free plan gives you, precisely

When a bot outgrows this, Nano at €4/month raises it to 4 GB of RAM, 2 vCPU and 20 GB of storage — the usual trigger being a music bot or a bot serving several thousand guilds.

What gets a free bot suspended

These are the rules that actually matter, from the anti-abuse policy:

If your server is suspended but not blacklisted, you can reactivate it yourself at unsuspend.waifly.com by pasting its panel link.

No code? BotForge builds the bot for you

If you would rather not write the bot at all, BotForge is a four-step wizard in the dashboard: bot name, Discord token and command prefix, then the modules to enable, then embed colour and language (9 available), then deployment with live status. A €3 Premium tier unlocks the advanced command modules. Full walkthrough in the BotForge documentation.

Frequently asked questions

Will my Discord bot really stay online 24/7 on the free plan?
Yes. Free servers are not put to sleep and have no monthly hour quota — the process runs continuously. The one thing that stops it is the anti-abuse rule: a server offline for 3 consecutive days is suspended. Enabling auto-restart in the panel covers the usual cause, which is an unhandled crash.
Is 300 MB of RAM enough for a Discord bot?
For most bots, yes. A discord.js v14 bot with 20–30 commands idles at roughly 80–120 MB, and a discord.py bot at 60–90 MB. Music bots are the exception: audio transcoding pushes both RAM and CPU past the free limits, and those need at least the Nano plan at €4 per month.
Do I need a credit card for the free Discord bot hosting?
No. The free plan requires no credit card and no PayPal account, and it does not expire. You only enter a payment method if you later move to a paid plan.
Can I use a database with my bot?
Yes. The free plan includes one MySQL database, created from the Databases tab of the Pterodactyl panel. Paid plans include more: 1 on Nano, 3 on Mega, 10 on Giga.
Is my bot token safe?
Put it in a .env file rather than in your source. Files named .env are explicitly excluded from Waifly's automated security scan of hosted code, unlike the rest of your files. Waifly staff do not access customer files without permission.

Written by Aubin Devogelaere, founder of Waifly, who runs this infrastructure. More in the documentation, the full FAQ and the community forum.