Skip to content

Getting Started with Free Discord Bot Hosting

Follow this complete guide to get your Discord bot hosted and online in under 10 minutes. We'll cover everything from account creation to deployment.

Before You Start

What You'll Need:

  • Discord Bot Token: Create a bot at discord.com/developers
  • Bot Files: Your bot's source code (Node.js or Python)
  • SFTP Client: FileZilla, WinSCP, or Cyberduck (see SFTP section below)
  • Basic Coding Knowledge: Understanding of your bot's language (Node.js/Python)

⚠️ CRITICAL: Maintenance Mode

ALWAYS use maintenance mode before making changes to your bot! This prevents file conflicts and ensures safe deployments.

DO NOT end maintenance mode until ALL tasks are completed. More details in the deployment section below.

Step-by-Step Deployment Guide

1

Create Your Free Account

  1. Go to dash.monkey-network.xyz
  2. Click "Register" or "Sign Up"
  3. Fill in your email and choose a password
  4. Verify your email (check spam folder if needed)
  5. Log in to the panel

⏱️ Takes about 2 minutes • No credit card required

2

Create a Bot Instance

  1. From the panel dashboard, click "Create Server" or "New Bot"
  2. Choose your bot type:
    • Node.js - For Discord.js, Eris, etc.
    • Nodemon - For auto-restart Node.js bots
    • Python - For Discord.py, Nextcord, Pycord
  3. Give your bot a name
  4. Click "Create" - your bot instance will be provisioned instantly

✓ Your bot specs:

  • • 1GB RAM
  • • 1GB Storage
  • • 100% CPU
3

Get Your SFTP Credentials

SFTP (Secure File Transfer Protocol) is how you'll upload your bot files. It's secure and reliable.

  1. Click on your newly created bot in the panel
  2. Look for "SFTP Details" or "File Access" section
  3. Note down these credentials:
    • Host: Usually node.monkey-network.xyz or an IP address
    • Port: Typically 2022 (not standard 22)
    • Username: Provided by the panel
    • Password: Your panel password or a generated SFTP password

Recommended SFTP Clients:

FileZilla (Windows, Mac, Linux)

Download: filezilla-project.org

WinSCP (Windows)

Download: winscp.net

Cyberduck (Mac, Windows)

Download: cyberduck.io

4

Enable Maintenance Mode

⚠️ CRITICAL STEP: Before uploading or making ANY changes to your bot files, you MUST enable maintenance mode!

What is Maintenance Mode?

Maintenance mode temporarily stops your bot and locks it into a safe state for updates. This prevents:

  • File conflicts during uploads
  • Partial/broken deployments
  • Bot crashes from incomplete updates
  • Data corruption

How to Enable Maintenance Mode:

  1. In your bot's panel, look for "Maintenance" or "Maintenance Mode" button
  2. Click "Enable Maintenance Mode" or toggle the switch
  3. Wait for confirmation that your bot is in maintenance mode
  4. You'll see a visual indicator (usually orange/yellow badge)

🚨 IMPORTANT RULE:

DO NOT end maintenance mode until ALL of the following are complete:

  • All files uploaded via SFTP
  • Dependencies installed (npm install / pip install)
  • Environment variables configured
  • Bot token and config verified
  • Everything tested and ready
5

Upload Files via SFTP

With maintenance mode enabled, you can now safely upload your bot files via SFTP.

Connecting to SFTP (FileZilla Example):

  1. Open FileZilla (or your chosen SFTP client)
  2. Enter your connection details:
    • Host: node.monkey-network.xyz (or provided host)
    • Port: 2022 (check panel for exact port)
    • Protocol: SFTP - SSH File Transfer Protocol
    • Username: Your SFTP username from panel
    • Password: Your SFTP password
  3. Click "Quickconnect" or "Connect"
  4. Accept the server's host key if prompted

Uploading Your Bot Files:

  1. Navigate to your bot's directory (usually /home/container/)
  2. Upload all your bot files:
    • For Node.js: index.js, package.json, node_modules (optional), all bot files
    • For Python: main.py, requirements.txt, all bot files
  3. Drag and drop files from your local computer to the SFTP window
  4. Wait for all files to upload (check transfer queue)

📁 Best Practices:

  • ✓ Keep your directory structure clean and organized
  • ✓ Don't upload node_modules - install via npm instead
  • ✓ Use .env files for sensitive config
  • ✓ Double-check all files uploaded successfully
6

Configure Environment Variables

Set up your bot token and other configuration via environment variables (secure) or config files.

Setting Environment Variables in Panel:

  1. In your bot's panel, find "Environment Variables" or "Startup" section
  2. Add your variables:
    • DISCORD_TOKEN = your bot token
    • PREFIX = bot command prefix (e.g., !)
    • Any other config your bot needs
  3. Save changes

✓ Alternative: .env file

You can also upload a .env file via SFTP:

DISCORD_TOKEN=your_token_here
PREFIX=!
NODE_ENV=production
7

Install Dependencies

Use the panel's console to install your bot's dependencies.

For Node.js Bots:

  1. Open the Console in your bot's panel
  2. Run: npm install
  3. Wait for all packages to install

For Python Bots:

  1. Open the Console in your bot's panel
  2. Run: pip install -r requirements.txt
  3. Wait for all packages to install
8

End Maintenance Mode & Start Bot

Once ALL tasks are complete, you can safely end maintenance mode and start your bot!

✓ Checklist Before Ending Maintenance:

  • All files uploaded successfully via SFTP
  • Dependencies installed (npm/pip)
  • Environment variables configured
  • Bot token verified
  • Config files checked

Starting Your Bot:

  1. Click "End Maintenance Mode" or toggle the switch off
  2. Click the "Start" button in your bot's panel
  3. Monitor the console logs to ensure bot starts successfully
  4. Check Discord to verify your bot is online

🎉 Congratulations! Your bot is now hosted and online!

Common Issues & Troubleshooting

Bot won't start / crashes immediately

✓ Check console logs for error messages

✓ Verify your bot token is correct in environment variables

✓ Ensure all dependencies installed (npm install / pip install)

✓ Check that your main file name matches panel startup command

SFTP connection refused / can't connect

✓ Verify SFTP port is correct (usually 2022, not 22)

✓ Check host is node.monkey-network.xyz or provided IP

✓ Ensure username and password are correct from panel

✓ Try a different SFTP client (FileZilla, WinSCP)

Module not found / dependency errors

✓ Run npm install or pip install -r requirements.txt

✓ Check package.json or requirements.txt has correct dependencies

✓ Verify you're using compatible versions

Permission denied / file access errors

✓ Enable maintenance mode before making file changes

✓ Upload files to correct directory (/home/container/)

✓ Check file permissions via SFTP client

Bot offline / not responding in Discord

✓ Check panel shows bot is running (green status)

✓ Verify bot token is valid and bot is invited to server

✓ Check intents are enabled in Discord Developer Portal

✓ Review console logs for connection errors

Still Having Issues?

Our community is here to help! Reach out via:

Quick Start Code Examples

Simple Discord.js Bot (Node.js)

Basic Discord.js v14 bot example:

// index.js
const { Client, GatewayIntentBits } = require('discord.js');

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ]
});

client.once('ready', () => {
    console.log(`Logged in as ${client.user.tag}!`);
});

client.on('messageCreate', message => {
    if (message.content === '!ping') {
        message.reply('Pong!');
    }
});

client.login(process.env.DISCORD_TOKEN);

📦 Required package.json:

{
  "name": "my-discord-bot",
  "version": "1.0.0",
  "main": "index.js?v=1764180417",
  "dependencies": {
    "discord.js?v=1764180417": "^14.14.1"
  }
}

Simple Discord.py Bot (Python)

Basic Discord.py bot example:

# main.py
import discord
import os
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'{bot.user} has connected to Discord!')

@bot.command()
async def ping(ctx):
    await ctx.send('Pong!')

bot.run(os.getenv('DISCORD_TOKEN'))

📦 Required requirements.txt:

discord.py==2.3.2

Ready to Get Started?

Create your free account and get your Discord bot online in under 10 minutes!

Start Hosting Free →