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
Create Your Free Account
- Go to dash.monkey-network.xyz
- Click "Register" or "Sign Up"
- Fill in your email and choose a password
- Verify your email (check spam folder if needed)
- Log in to the panel
⏱️ Takes about 2 minutes • No credit card required
Create a Bot Instance
- From the panel dashboard, click "Create Server" or "New Bot"
- Choose your bot type:
- Node.js - For Discord.js, Eris, etc.
- Nodemon - For auto-restart Node.js bots
- Python - For Discord.py, Nextcord, Pycord
- Give your bot a name
- Click "Create" - your bot instance will be provisioned instantly
✓ Your bot specs:
- • 1GB RAM
- • 1GB Storage
- • 100% CPU
Get Your SFTP Credentials
SFTP (Secure File Transfer Protocol) is how you'll upload your bot files. It's secure and reliable.
- Click on your newly created bot in the panel
- Look for "SFTP Details" or "File Access" section
- 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:
Download: filezilla-project.org
Download: winscp.net
Download: cyberduck.io
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:
- In your bot's panel, look for "Maintenance" or "Maintenance Mode" button
- Click "Enable Maintenance Mode" or toggle the switch
- Wait for confirmation that your bot is in maintenance mode
- 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
Upload Files via SFTP
With maintenance mode enabled, you can now safely upload your bot files via SFTP.
Connecting to SFTP (FileZilla Example):
- Open FileZilla (or your chosen SFTP client)
- 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
- Click "Quickconnect" or "Connect"
- Accept the server's host key if prompted
Uploading Your Bot Files:
- Navigate to your bot's directory (usually
/home/container/) - 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
- Drag and drop files from your local computer to the SFTP window
- 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
.envfiles for sensitive config - ✓ Double-check all files uploaded successfully
Configure Environment Variables
Set up your bot token and other configuration via environment variables (secure) or config files.
Setting Environment Variables in Panel:
- In your bot's panel, find "Environment Variables" or "Startup" section
- Add your variables:
DISCORD_TOKEN= your bot tokenPREFIX= bot command prefix (e.g., !)- Any other config your bot needs
- Save changes
✓ Alternative: .env file
You can also upload a .env file via SFTP:
DISCORD_TOKEN=your_token_here PREFIX=! NODE_ENV=production
Install Dependencies
Use the panel's console to install your bot's dependencies.
For Node.js Bots:
- Open the Console in your bot's panel
- Run:
npm install - Wait for all packages to install
For Python Bots:
- Open the Console in your bot's panel
- Run:
pip install -r requirements.txt - Wait for all packages to install
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:
- Click "End Maintenance Mode" or toggle the switch off
- Click the "Start" button in your bot's panel
- Monitor the console logs to ensure bot starts successfully
- 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 →