ESN Docs

Docs › Discord bots

Deploy to ESN: host a bot from GitHub in one click

3 min readUpdated Nov 5, 2026

Paste a public GitHub repo (Node.js or Python), pick a plan, pay, and ESN creates your server with the repo installed. Add the Deploy to ESN button to your README.

Deploy to ESN

1. Deploy a repo #

  1. Open panel.esnoffical.com/deploy, or click a Deploy to ESN button on a GitHub README.
  2. Paste the repo link (for example https://github.com/owner/repo). The repo must be public.
  3. Check what we found: runtime, start file and branch. We recommend the cheapest plan that fits the bot; you can pick a bigger one.
  4. Choose Deploy, then pay in the secure checkout. Bot hosting is a monthly plan and you can cancel anytime.
  5. Your server is created and the repo is installed on it automatically, usually within a couple of minutes. You get an email when the repo is in.

2. Add your token and start #

  1. Open your server in the panel and go to File Manager.
  2. If the repo has a .env.example (or config.example.json), we already copied it to .env (or config.json). Open it and paste your bot token, for example DISCORD_TOKEN=your-token-here. New to tokens? See how to get a bot token.
  3. Press Start. Packages from package.json or requirements.txt install on start, then the bot runs.
We never ask for your token. It stays in your server's files. Nobody from ESN will DM you for it.

3. What we detect #

  • Node.js (a package.json): the start file comes from scripts.start, then main, then index.js, bot.js or src/index.js. Projects with a build step (TypeScript) run npm run build on each start, then the built file.
  • Python (requirements.txt, pyproject.toml or .py files): the start file is main.py, bot.py, app.py or run.py. Packages install from requirements.txt.
  • You can change the start file any time in the server's Startup tab (Main File). The repo address is there too (Git Repository and Git Branch).
  • Other languages can't be set up in one click yet. Upload them yourself: see other languages.

4. Add the button to your README #

Made a bot others can use? Put the button in your README so anyone can host their own copy. Replace OWNER/REPO with your repo:

[![Deploy to ESN](https://panel.esnoffical.com/deploy/badge.svg)](https://panel.esnoffical.com/deploy?repo=https://github.com/OWNER/REPO)

HTML version:

<a href="https://panel.esnoffical.com/deploy?repo=https://github.com/OWNER/REPO"><img src="https://panel.esnoffical.com/deploy/badge.svg" alt="Deploy to ESN" height="32"></a>

The deploy page also builds the snippet for you after you paste your repo.

5. Questions #

  • Is there a free plan? No. Deploy to ESN uses the normal paid plans, from $0.50/month for bot hosting. See the plans page.
  • Private repos? Not in one click. Upload the files yourself, see upload and start your bot.
  • How do I update the code later? Upload changed files in the File Manager, or reinstall the server from Settings to pull the repo again (your existing files are kept, new files are added).
  • It won't start? Check the console for the error and see Troubleshooting, or ask in the ESN Discord.

More guides: How to host a Node.js Discord bot, How to host a Python Discord bot, Move your bot to ESN from another host.