MoltBot setup guideClawdBot VPS installationautonomous AI assistant 2026+17

MoltBot VPS Setup: Complete 2026 Guide with Security

MoltBot (formerly ClawdBot) represents the future of autonomous AI assistants, but improper setup can expose your entire digital infrastructure to security risks. This comprehensive guide walks you through every single step of setting up MoltBot on a VPS, from server provisioning to advanced security hardening. Learn exactly what each command does, why it's necessary, and how to deploy your AI assistant safely in 2026 without compromising your data or credentials.

Parash Panta

Feb 16, 2026
44 min read

MoltBot VPS Setup: Complete 2026 Guide with Security

The MoltBot Revolution: Why Everyone's Talking About This AI Assistant

In January 2026, MoltBot (originally launched as ClawdBot) became the most viral AI project in history, accumulating over 100,000 GitHub stars in just three days. Unlike traditional chatbots that simply respond to queries, MoltBot is a true autonomous AI agent that can control your computer, manage files, automate workflows, and communicate through messaging apps like Telegram, WhatsApp, and Discord.

The numbers tell a compelling story:

  • 100,000+ GitHub stars within 3 days of launch

  • Mac Mini sales surged 400% as developers bought dedicated machines to run MoltBot

  • 22% of enterprise organizations detected employees using MoltBot without IT approval

  • Over 100 community-built skills extending MoltBot's capabilities

Real impact: "MoltBot has replaced three hours of daily administrative work. It manages my email, schedules meetings, and even writes first drafts of client proposals while I sleep. The ROI compared to a $5,000/month assistant is staggering." - Tech startup founder

However, security researchers have identified critical vulnerabilities in over 800 exposed MoltBot instances worldwide, with hundreds leaking API keys, conversation histories, and credentials. This guide ensures you deploy MoltBot safely, avoiding the pitfalls that have compromised thousands of installations.

Understanding MoltBot: What Makes It Different

What is MoltBot?

MoltBot (formerly ClawdBot, renamed after trademark concerns from Anthropic) is an open-source, self-hosted personal AI assistant created by Peter Steinberger in late 2025. Unlike cloud-based AI assistants that process your data on remote servers, MoltBot runs entirely on infrastructure you control.

Key Differentiators:

24/7 Autonomous Operation:

  • Runs continuously in the background without user interaction

  • Proactively sends reminders, alerts, and scheduled reports

  • Maintains persistent memory across all conversations

  • Executes long-running tasks while you sleep

Full System Access:

  • Read and write files anywhere on the system

  • Execute shell commands and scripts

  • Control browsers through automation

  • Integrate with email, calendars, and productivity tools

Multi-Channel Communication:

  • Telegram, WhatsApp, Discord, Slack integration

  • iMessage support on macOS

  • Web-based control panel interface

  • Command-line interface (CLI) access

Extensible Architecture:

  • 100+ community-built skills (plugins)

  • Support for multiple AI models (Claude, GPT, local models)

  • Custom skill development capabilities

  • MoltHub skill marketplace

Why VPS Deployment Is Critical

Many guides recommend installing MoltBot directly on your personal computer, but this creates catastrophic security risks:

Risks of Local Installation:

  • Full access to personal files, passwords, and sensitive documents

  • Ability to read your email and private messages

  • Access to work-related files on your laptop

  • No isolation if MoltBot gets compromised

  • Direct exposure of your home network

VPS Advantages:

  • Isolated environment containing potential damage

  • 24/7 operation without keeping your computer running

  • Professional-grade security controls and firewalls

  • Easy to destroy and rebuild if compromised

  • No risk to your personal data or work files

Security insight: "Of the 800 exposed MoltBot instances we identified, 47% were running on personal laptops with no authentication, giving attackers direct access to users' emails, passwords, and corporate data." - Security researcher Connor O'Reilly

Prerequisites: What You Need Before Starting

Required Accounts and Resources

1. VPS Hosting Provider

  • Recommended: Hostinger VPS (KVM2 plan minimum)

  • Alternative providers: DigitalOcean, Hetzner, Vultr, AWS EC2

  • Minimum specs: 2 CPU cores, 8GB RAM, 100GB storage

  • Why: NodeJS and MoltBot require significant memory for stable operation

2. AI Model Provider API Key

  • Anthropic API key (recommended): https://console.anthropic.com/

  • Alternative: OpenAI API key, local Ollama models

  • Expected cost: $20-50/month for moderate usage

  • Why: MoltBot needs an AI model to process your requests

3. Messaging Platform Bot Token

  • Telegram bot token (easiest for beginners)

  • Alternative: WhatsApp, Discord, Slack

  • Setup time: 5 minutes through BotFather

  • Why: This is how you'll communicate with your MoltBot

4. Basic Technical Skills

  • Comfortable using command-line terminal

  • Basic understanding of SSH connections

  • Ability to copy/paste commands accurately

  • Patience to read error messages

Cost Breakdown:

  • VPS hosting: $10-15/month (Hostinger KVM2)

  • AI model API: $20-50/month (Anthropic Claude)

  • Domain (optional): $10-15/year

  • Total monthly: $30-65 (vs. $500+ Mac Mini + electricity)

Step 1: Provisioning Your VPS (15 minutes)

Why We're Doing This

Before MoltBot can run, we need a secure, isolated Linux server. This step creates that foundation - a virtual computer running Ubuntu that exists solely to host your AI assistant, separate from your personal devices.

Creating a Hostinger VPS Account

Navigate to Hostinger VPS hosting and select the KVM2 plan:

Plan Specifications:

  • 2 vCPU cores (handles concurrent AI requests)

  • 8GB RAM (required for NodeJS memory operations)

  • 100GB NVMe storage (stores conversations and skills)

  • 8TB bandwidth (more than sufficient for API calls)

Why KVM2 specifically:

  • Lower plans (KVM1) have insufficient RAM for stable operation

  • Higher plans are overkill unless running multiple bots

  • KVM virtualization provides better performance than OpenVZ

Important configuration choices:

1. Server Location: Choose a data center close to you or your users:

  • US East (New York) - Best for North America

  • Europe (Amsterdam) - Best for EU users

  • Asia (Singapore) - Best for Asian users

Why location matters: Lower latency means faster response times when communicating with your bot. A US user connecting to an Singapore server adds 200-300ms delay per message.

2. Operating System: Select Ubuntu 24.04 LTS (Long Term Support)

Why Ubuntu 24.04:

  • Latest stable release with 5 years of security updates

  • NodeJS 22 compatibility tested and confirmed

  • Most MoltBot documentation assumes Ubuntu

  • Largest community support for troubleshooting

3. Root Password: Create a strong root password and store it securely:

bash

# Good password example (20+ characters, mixed case, numbers, symbols)
Mb@2026!Secure#VPS$Password789

Why a strong password matters: This password grants complete control over your server. If compromised, attackers can access everything MoltBot has access to.

4. Optional Add-ons:

  • Skip malware scanner (we'll configure our own security)

  • Skip Docker Manager (manual setup provides better understanding)

  • Skip automated backups initially (configure after setup)

Post-Purchase Setup

After payment completes, Hostinger creates your VPS (typically 5-10 minutes).

Access your VPS dashboard:

  1. Login to Hostinger hPanel

  2. Navigate to VPS section

  3. Click "Manage" on your new VPS

  4. Wait for "Active" status indicator

Important information to record:

bash

# Note these details for future use
VPS IP Address: 123.45.67.89  # Your unique server IP
SSH Port: 22                   # Default SSH port
Root Password: [your password] # Set during purchase

Step 2: Connecting to Your VPS (10 minutes)

Why We're Doing This

Now we need to access our new server through SSH (Secure Shell). This encrypted connection lets us send commands to our VPS from our local computer, establishing a secure terminal session.

Using Hostinger's Built-in Terminal

Easiest method for beginners:

  1. In your VPS dashboard, click the "Terminal" button

  2. A new browser tab opens with direct access to your server

  3. You're automatically logged in as root user

What you'll see:

bash

Welcome to Ubuntu 24.04 LTS (GNU/Linux 5.15.0-1037-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

root@vps-12345:~#

Understanding the prompt:

  • root = current user (superuser with all permissions)

  • vps-12345 = your server hostname

  • ~ = current directory (home folder)

  • # = root user indicator ($ would indicate normal user)

Alternative: Connecting via SSH from Your Computer

For macOS/Linux users:

bash

# Open Terminal application
# Replace 123.45.67.89 with your actual VPS IP
ssh root@123.45.67.89

What this command does:

  • ssh = Secure Shell protocol for encrypted connections

  • root = username we're logging in as

  • @ = separator between username and server address

  • 123.45.67.89 = your VPS IP address

First-time connection warning:

bash

The authenticity of host '123.45.67.89 (123.45.67.89)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Type: yes and press Enter

Why this appears: SSH verifies you're connecting to the correct server, not an imposter. This warning only appears on first connection.

Password entry:

bash

root@123.45.67.89's password:

Type your root password (characters won't appear as you type - this is normal security behavior)

For Windows users:

Method 1: Use PowerShell (Windows 10/11)

powershell

# Open PowerShell
# Run the same SSH command
ssh root@123.45.67.89

Method 2: Use PuTTY

  1. Download PuTTY from official site

  2. Enter your VPS IP in "Host Name" field

  3. Port: 22

  4. Connection type: SSH

  5. Click "Open"

  6. Login as: root

  7. Password: [your root password]

Step 3: Creating a Dedicated User for MoltBot (5 minutes)

Why We're Doing This

Running MoltBot as the root user is a catastrophic security risk. If MoltBot gets compromised or makes a mistake, it has unlimited power to destroy your entire server. Creating a dedicated user with limited permissions contains potential damage.

Security principle: Principle of least privilege - give only the permissions absolutely necessary, nothing more.

Creating the MoltBot User

bash

# Create a new user named 'moltbot'
adduser moltbot

What this command does:

  • adduser = Ubuntu utility for creating users (simpler than useradd)

  • moltbot = username we're creating

You'll see this interactive prompt:

bash

Adding user `moltbot' ...
Adding new group `moltbot' (1001) ...
Adding new user `moltbot' (1001) with group `moltbot' ...
Creating home directory `/home/moltbot' ...
Copying files from `/etc/skel' ...
New password:

Setting the password:

  1. Type a strong password (won't display as you type)

  2. Retype the same password to confirm

  3. Password recommendations: 16+ characters, mixed case, numbers, symbols

Example password: Mb#User2026!Strong$Pass

User information prompts:

bash

Full Name []: MoltBot AI Assistant
Room Number []: [press Enter to skip]
Work Phone []: [press Enter to skip]
Home Phone []: [press Enter to skip]
Other []: [press Enter to skip]
Is the information correct? [Y/n]

Type: Y and press Enter

What just happened:

  • Created user account moltbot

  • Created home directory /home/moltbot

  • Set up default shell and configuration files

  • Isolated this user from root privileges

Granting Sudo Privileges

bash

# Add moltbot user to sudo group
usermod -aG sudo moltbot

Breaking down this command:

  • usermod = modify user account

  • -aG = append to group (don't remove from other groups)

  • sudo = group name that grants sudo access

  • moltbot = user we're modifying

Why sudo access is necessary:

  • MoltBot needs to install software packages (NodeJS, npm)

  • System updates and security patches

  • Installing MoltBot dependencies

  • BUT: requires password confirmation for dangerous operations

Testing the new user:

bash

# Switch to moltbot user
su - moltbot

What this command does:

  • su = substitute user (change to different user)

  • - = load complete user environment

  • moltbot = target user

Your prompt changes:

bash

# Before (root user)
root@vps-12345:~#

# After (moltbot user)
moltbot@vps-12345:~$

Notice the difference:

  • Username changed from root to moltbot

  • Symbol changed from # (root) to $ (normal user)

  • Working directory changed to /home/moltbot

Verify sudo access:

bash

# Test sudo permissions
sudo whoami

Enter the moltbot user password when prompted

Expected output:

bash

[sudo] password for moltbot: 
root

What happened:

  • whoami normally returns current username

  • sudo whoami runs the command as root

  • Returning "root" confirms sudo works correctly

If you see this error:

bash

moltbot is not in the sudoers file. This incident will be reported.

Fix it:

  1. Type exit to return to root user

  2. Re-run the usermod -aG sudo moltbot command

  3. Switch back to moltbot user: su - moltbot

Step 4: Installing NodeJS and Dependencies (10 minutes)

Why We're Doing This

MoltBot is built with NodeJS, a JavaScript runtime environment. We need to install NodeJS 22 (the latest Long Term Support version that MoltBot requires) along with npm (Node Package Manager) to download and manage MoltBot's code dependencies.

Installing NodeJS via Official Repository

IMPORTANT: Make sure you're logged in as the moltbot user (prompt shows moltbot@ not root@)

bash

# Download and execute NodeJS installation script
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

Breaking down this command:

curl flags explained:

  • -f = fail silently on server errors (don't show error HTML pages)

  • -s = silent mode (don't show progress meter)

  • -S = show errors even in silent mode

  • -L = follow redirects (important for CDN URLs)

| sudo -E bash - explained:

  • | = pipe operator (sends curl output to next command)

  • sudo = execute with root privileges

  • -E = preserve environment variables

  • bash - = execute the script with bash shell

What this script does:

  1. Adds NodeSource official repository to your system

  2. Imports repository signing keys for security

  3. Updates package list to include NodeJS 22

  4. Configures apt to trust NodeSource packages

You'll see output like:

bash

## Installing the NodeSource Node.js 22.x repo...
## Inspecting system...
## Confirming "jammy" is supported...
## Adding the NodeSource signing key to your keyring...
## Creating apt sources list file for the NodeSource Node.js 22.x repo...
## Running `apt-get update` for you...

Install NodeJS:

bash

# Install NodeJS and npm
sudo apt-get install -y nodejs

Command explanation:

  • apt-get = package manager for Ubuntu/Debian

  • install = install packages

  • -y = automatically answer "yes" to all prompts

  • nodejs = package name (includes npm automatically)

What happens during installation:

bash

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  nodejs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.8 MB of archives.
After this operation, 132 MB of additional disk space will be used.

Verify installation:

bash

# Check NodeJS version
node --version

Expected output:

bash

v22.11.0

Check npm version:

bash

npm --version

Expected output:

bash

10.9.0

Why version matters:

  • MoltBot requires NodeJS 18.0.0 or higher

  • Version 22.x ensures compatibility with latest features

  • npm 10.x includes performance improvements and security fixes

If you see "command not found":

bash

# Update your shell's command cache
hash -r

# Or close terminal and reconnect
exit
su - moltbot

Installing Git (Required for MoltBot Installation)

bash

# Install Git version control
sudo apt-get install -y git

Why Git is necessary:

  • MoltBot installation script downloads code from GitHub

  • Skills are distributed through Git repositories

  • Enables easy updates to latest MoltBot version

Verify Git installation:

bash

git --version

Expected output:

bash

git version 2.43.0

Step 5: Installing MoltBot (20 minutes)

Why We're Doing This

Now we're ready to install MoltBot itself. The official installation script automatically handles downloading MoltBot, installing dependencies, and setting up the initial configuration. This is where your AI assistant actually gets installed on your server.

Running the Official Installation Script

CRITICAL: Ensure you're logged in as moltbot user

bash

# Download and run MoltBot installation script
curl -fsSL https://molt.bot/install.sh | bash

What this command does:

  1. Downloads the official installation script from molt.bot

  2. Executes it with bash shell

  3. Script detects your operating system (Ubuntu 24.04)

  4. Checks for required dependencies (NodeJS, Git)

  5. Downloads MoltBot from GitHub

  6. Installs npm packages and dependencies

  7. Sets up initial configuration files

Installation process output:

bash

[MoltBot Installer]
=====================================
Detecting operating system... Ubuntu 24.04 LTS
Checking for Node.js... Found v22.11.0 ✓
Checking for npm... Found v10.9.0 ✓
Checking for Git... Found v2.43.0 ✓

Downloading MoltBot...
Cloning into '/home/moltbot/.moltbot'...
remote: Enumerating objects: 15420, done.
remote: Counting objects: 100% (2145/2145), done.
remote: Compressing objects: 100% (756/756), done.
remote: Total 15420 (delta 1512), reused 1889 (delta 1389)
Receiving objects: 100% (15420/15420), 8.42 MiB | 12.15 MiB/s, done.
Resolving deltas: 100% (10789/10789), done.

Installing dependencies...
npm install --production

added 423 packages, and audited 424 packages in 45s

89 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

MoltBot installation complete!
Run 'moltbot onboard' to begin setup.

Key files and directories created:

bash

/home/moltbot/.moltbot/         # Main MoltBot installation
/home/moltbot/.moltbot/config/  # Configuration files
/home/moltbot/.moltbot/memory/  # Persistent memory storage
/home/moltbot/.moltbot/skills/  # Installed skills/plugins
/home/moltbot/.local/bin/moltbot # Command-line executable

Verify installation:

bash

# Check MoltBot command is available
moltbot --version

Expected output:

bash

MoltBot v2.14.0

If "command not found" error appears:

bash

# Add MoltBot to your PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Test again
moltbot --version

What ~/.bashrc does:

  • Bash configuration file that runs on every login

  • PATH variable tells shell where to find commands

  • Adding ~/.local/bin allows running 'moltbot' from anywhere

Step 6: Configuring MoltBot with Onboarding Wizard (15 minutes)

Why We're Doing This

The onboarding wizard guides you through essential configuration: choosing your AI model, setting up authentication, connecting messaging platforms, and configuring system permissions. This creates your MoltBot's "identity" and determines how it operates.

Starting the Onboarding Process

bash

# Launch interactive onboarding wizard
moltbot onboard

What this command does:

  • Starts interactive configuration wizard

  • Creates initial config.json file

  • Sets up authentication and model providers

  • Configures messaging channels

  • Installs optional skills

Step 6.1: Security Warning and Acknowledgment

You'll see this critical warning:

bash

╔═══════════════════════════════════════════════════════════╗
║               MOLTBOT SECURITY WARNING                    ║
╠═══════════════════════════════════════════════════════════╣
║                                                           ║
║  MoltBot is a POWERFUL and inherently RISKY tool.       ║
║                                                           ║
║  It has FULL ACCESS to:                                  ║
║  • Your file system                                      ║
║  • Shell commands and scripts                            ║
║  • Connected messaging platforms                         ║
║  • Email, calendar, and integrated services              ║
║                                                           ║
║  UNDERSTAND THE RISKS:                                   ║
║  • Misconfiguration can lead to data loss                ║
║  • Exposed instances have leaked credentials             ║
║  • Skills can introduce security vulnerabilities         ║
║                                                           ║
║  RECOMMENDED SAFETY MEASURES:                            ║
║  • Run on isolated VPS (you're doing this! ✓)          ║
║  • Use separate email/service accounts                   ║
║  • Configure firewall rules                              ║
║  • Enable authentication                                 ║
║  • Regularly review permissions                          ║
║                                                           ║
╚═══════════════════════════════════════════════════════════╝

? I understand the risks and want to continue: (y/N)

Type: y and press Enter

Why this warning exists:

  • MoltBot has caused actual data loss for users

  • Exposed instances have leaked thousands of API keys

  • Prompt injection attacks have deleted emails

  • Supply-chain attacks through malicious skills are possible

Step 6.2: Choosing Onboarding Mode

bash

? Select onboarding mode: (Use arrow keys)
❯ Kickstart (Recommended for beginners)
  Manual (Advanced users only)

Select: Kickstart

Press: Enter

Difference explained:

Kickstart mode:

  • Guided step-by-step configuration

  • Sensible defaults suggested

  • Helps install common skills

  • Best for first-time setup

Manual mode:

  • Assumes you know what you're doing

  • No safety prompts or confirmations

  • Requires editing JSON files directly

  • Risk of misconfiguration

Step 6.3: Selecting AI Model Provider

bash

? Select your primary model provider: (Use arrow keys)
  OpenAI
❯ Anthropic
  Google AI
  OpenRouter
  Minimax
  Qwen
  Local (Ollama)

Navigate with arrow keys to Anthropic

Press: Enter

Why Anthropic (Claude) is recommended:

Security advantages:

  • Claude Opus 4.5 trained specifically to resist prompt injection

  • Internal testing shows 99% prompt injection resistance

  • Better at following safety guidelines

  • More cautious about executing dangerous commands

Performance advantages:

  • Superior context understanding (200K token window)

  • Better at multi-step reasoning and planning

  • More reliable tool usage

  • Excellent code generation capabilities

Cost considerations:

  • $3 per million input tokens

  • $15 per million output tokens

  • Typical usage: $20-50/month for moderate daily use

  • Heavy automation users: $100-300/month

Step 6.4: Authentication Method

bash

? How do you want to authenticate with Anthropic? (Use arrow keys)
❯ Anthropic API Key (Recommended)
  Anthropic Token (Claude Pro/Max subscription)

Select: Anthropic API Key

Press: Enter

CRITICAL WARNING:

bash

╔═══════════════════════════════════════════════════════════╗
║            IMPORTANT: DO NOT USE SUBSCRIPTION TOKEN        ║
╠═══════════════════════════════════════════════════════════╣
║                                                           ║
║  Using your Claude Pro/Max subscription token violates   ║
║  Anthropic's Terms of Service.                          ║
║                                                           ║
║  ❌ WRONG: Using personal subscription token            ║
║  ✓ CORRECT: Using Anthropic API Key                     ║
║                                                           ║
║  Consequences of using subscription token:               ║
║  • Account termination                                    ║
║  • Potentially much more expensive                       ║
║  • Against ToS                                            ║
║                                                           ║
╚═══════════════════════════════════════════════════════════╝

Getting your Anthropic API Key:

  1. Open browser and go to: https://console.anthropic.com/

  2. Sign in or create account

  3. Click "API Keys" in left sidebar

  4. Click "Create Key" button

  5. Name your key: MoltBot VPS Production

  6. Copy the API key (starts with sk-ant-)

Example API key format:

bash

sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Paste your API key when prompted:

bash

? Enter your Anthropic API key: 
sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Security note: The key won't display as you paste (security feature). Press Enter after pasting.

Key validation:

bash

Validating API key... ✓
API key accepted

If validation fails:

bash

✗ Invalid API key. Please check and try again.

Common issues:

  • Extra spaces before or after the key

  • Incomplete key (missing characters)

  • Expired or revoked key

  • Wrong API key type (using OpenAI key for Anthropic)

Step 6.5: Selecting Default Model

bash

? Select default model: (Use arrow keys)
❯ anthropic/claude-opus-4-5 (Highest quality, slowest, most expensive)
  anthropic/claude-sonnet-4-5 (Balanced quality/speed/cost)
  anthropic/claude-haiku-4-5 (Fastest, cheapest, lower quality)

Recommended for most users: anthropic/claude-opus-4-5

Press: Enter

Model comparison:

Claude Opus 4.5 (Best for MoltBot):

  • Input: $3 per million tokens

  • Output: $15 per million tokens

  • Best reasoning capabilities

  • Highest quality code generation

  • Most resistant to prompt injection

  • Typical cost: $30-70/month

Claude Sonnet 4.5 (Budget Option):

  • Input: $0.60 per million tokens

  • Output: $3 per million tokens

  • Good balance of quality and cost

  • Suitable for simple tasks

  • Typical cost: $10-25/month

Claude Haiku 4.5 (Not Recommended):

  • Input: $0.15 per million tokens

  • Output: $0.75 per million tokens

  • Fastest responses

  • Lower quality reasoning

  • May make mistakes on complex tasks

Real-world usage example:

bash

# Example API costs for one day of moderate use
User sends: "Summarize my email, draft 3 responses, organize files"

Opus 4.5 cost: ~$2.50/day = ~$75/month
Sonnet 4.5 cost: ~$0.50/day = ~$15/month
Haiku 4.5 cost: ~$0.12/day = ~$3.60/month

Step 7: Telegram Bot Setup (10 minutes)

Why We're Doing This

Telegram provides the communication channel between you and MoltBot. Instead of accessing a web interface or terminal, you'll send normal text messages to your bot through the Telegram app on your phone or computer, making it incredibly convenient to interact with your AI assistant from anywhere.

Step 7.1: Selecting Communication Channel

bash

? Which messaging platform do you want to connect? (Use arrow keys)
❯ Telegram Bot API (Easiest setup, recommended)
  WhatsApp (Requires phone number)
  Discord Bot
  Slack App
  Signal (Requires phone linking)
  iMessage (macOS only)
  Skip for now

Select: Telegram Bot API

Press: Enter

Why Telegram is recommended for beginners:

Advantages:

  • Free bot creation through BotFather

  • No phone number required

  • Works on all platforms (iOS, Android, Desktop, Web)

  • Instant message delivery

  • Support for files, images, and rich media

  • Easy pairing process

Disadvantages of alternatives:

  • WhatsApp: Requires dedicated phone number, more complex setup

  • Discord: Requires creating Discord server and application

  • Slack: Requires workspace admin access

  • Signal: Phone number required, limited API

  • iMessage: macOS only, complex configuration

Step 7.2: Creating a Telegram Bot

Open Telegram app (on phone or computer)

Search for: @BotFather (official Telegram bot creation tool)

Start conversation:

/start

BotFather responds:

I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual.

You can control me by sending these commands:

/newbot - create a new bot
/mybots - edit your bots

Create new bot:

/newbot

BotFather asks for bot name:

Alright, a new bot. How are we going to call it? Please choose a name for your bot.

Enter a name for your bot:

My Personal MoltBot Assistant

Why the name matters:

  • This is the display name users see

  • Can be changed later

  • Helps you identify this specific bot

BotFather asks for username:

Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.

Enter a unique username:

my_moltbot_2026_bot

Username requirements:

  • Must end with bot

  • Can only contain letters, numbers, and underscores

  • Must be unique across all Telegram

  • Cannot be changed later

If username is taken:

Sorry, this username is already taken. Please try another one.

Try alternative usernames:

  • Add your name: john_moltbot_2026_bot

  • Add random numbers: moltbot_47582_bot

  • Use current timestamp: moltbot_jan2026_bot

Success message:

Done! Congratulations on your new bot. You will find it at t.me/my_moltbot_2026_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.

Use this token to access the HTTP API:
6234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw

For a description of the Bot API, see this page: https://core.telegram.org/bots/api
Keep your token secure and store it safely, it can be used by anyone to control your bot.

CRITICAL: Copy the bot token:

6234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw

Token format explained:

  • First part: Bot ID (6234567890)

  • Separator: Colon (:)

  • Second part: Secret authentication token

Security warning: This token grants complete control of your bot. Anyone with this token can:

  • Send messages as your bot

  • Read all messages sent to your bot

  • Change bot settings

  • Access conversations

Never share this token publicly!

Step 7.3: Configuring Telegram in MoltBot

Return to your VPS terminal

MoltBot asks for bot token:

bash

? Enter your Telegram Bot Token:

Paste the token you copied:

bash

6234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw

Press: Enter

Token validation:

bash

Connecting to Telegram API... ✓
Bot username: @my_moltbot_2026_bot
Bot name: My Personal MoltBot Assistant
Token validated successfully!

MoltBot now configures Telegram integration:

bash

Setting up Telegram channel...
Registering webhook handlers...
Configuring message routing...
Telegram integration complete! ✓

Step 8: Installing Skills and Configuring System Access (15 minutes)

Why We're Doing This

Skills are plugins that extend MoltBot's capabilities beyond basic conversation. They allow your bot to perform specific tasks like browser automation, image generation, file management, and integration with external services. This step determines what your MoltBot can actually do.

Step 8.1: Skills Configuration Prompt

bash

? Do you want to configure skills? (Y/n)

Type: Y and press Enter

What skills are:

  • Modular plugins that add specific capabilities

  • Installed from MoltHub (official skill marketplace)

  • Can be community-built or official

  • Extend MoltBot beyond basic chat functionality

Security consideration: Each skill requests specific permissions. Review carefully before installing.

Step 8.2: Homebrew Configuration (macOS/Linux)

bash

? Do you want to enable Homebrew package management?

Type: Y and press Enter

What Homebrew does:

  • Package manager for installing software

  • Allows MoltBot to install CLI tools

  • Required for some advanced skills

  • Provides software dependency management

On Ubuntu VPS, this installs Linuxbrew

Installation process:

bash

Installing Homebrew...
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

==> This script will install:
/home/linuxbrew/.linuxbrew/bin/brew
/home/linuxbrew/.linuxbrew/share/doc/homebrew

Press RETURN to continue or any other key to abort

Press: Enter

Installation time: 5-10 minutes

Step 8.3: Package Manager Selection

bash

? Select your preferred package manager: (Use arrow keys)
❯ npm (Recommended)
  yarn
  pnpm

Select: npm

Press: Enter

Why npm is recommended:

  • Pre-installed with NodeJS

  • Most MoltBot skills use npm

  • Largest package ecosystem

  • Best compatibility

Step 8.4: Available Skills Selection

bash

? Select skills to install: (Press <space> to select, <enter> to continue)
❯◯ ClawdHub (Official skill manager and marketplace)
 ◯ GG (Google Workspace CLI integration)
 ◯ Nano Banana Pro (AI image generation via Gemini)
 ◯ Nano PDF (PDF processing and analysis)
 ◯ Oracle (Database connection skills)
 ◯ Browser Automation (Puppeteer-based web control)
 ◯ File System Advanced (Enhanced file operations)
 ◯ Email Integration (Gmail/Outlook)
 ◯ Calendar Sync (Google Calendar)
 ◯ Code Execution (Safe code runner)

Recommended for beginners:

  • ✓ ClawdHub (Essential - skill marketplace access)

  • ✓ Nano Banana Pro (Popular - AI image generation)

  • ✓ Browser Automation (Useful for web tasks)

How to select skills:

  1. Use arrow keys to highlight skill

  2. Press Spacebar to toggle selection (◯ becomes ◉)

  3. Repeat for each skill you want

  4. Press Enter when finished

Example selection:

bash

? Select skills to install:
❯◉ ClawdHub
 ◯ GG
 ◉ Nano Banana Pro
 ◯ Nano PDF
 ◯ Oracle
 ◉ Browser Automation
 ◯ File System Advanced
 ◯ Email Integration

Press: Enter

Installation process:

bash

Installing selected skills...

[1/3] Installing ClawdHub...
Downloading from https://hub.molt.bot/skills/clawdhub
npm install @moltbot/clawdhub
✓ ClawdHub installed successfully

[2/3] Installing Nano Banana Pro...
Downloading from https://hub.molt.bot/skills/nanobanana
npm install @moltbot/nano-banana-pro
✓ Nano Banana Pro installed successfully

[3/3] Installing Browser Automation...
Downloading from https://hub.molt.bot/skills/browser
npm install @moltbot/browser-automation
Downloading Chromium browser... (125 MB)
✓ Browser Automation installed successfully

All skills installed successfully!

Step 8.5: Skill API Key Configuration

For skills requiring external services:

bash

╔═══════════════════════════════════════════════════════════╗
║              SKILL API KEY CONFIGURATION                  ║
╚═══════════════════════════════════════════════════════════╝

Nano Banana Pro requires a Gemini API key for image generation.

? Do you want to configure Gemini API key now? (Y/n)

Option 1: Configure now (Recommended)

Type: Y and press Enter

Getting Gemini API key:

  1. Visit: https://aistudio.google.com/

  2. Click "Get API Key"

  3. Create new key or use existing

  4. Copy the API key

Example Gemini API key:

bash

AIzaSyB-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Enter the API key:

bash

? Enter your Gemini API key:
AIzaSyB-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Option 2: Skip for now

Type: n and press Enter

Configure later with:

bash

moltbot configure --section skills

Continue through remaining skill configurations:

bash

? Configure Google Workspace API key? (y/N) n
? Configure OpenAI API key? (y/N) n
? Configure 11 Labs API key? (y/N) n

Skip skills you don't need - you can always add API keys later

Step 8.6: Hooks Configuration

bash

? Do you want to enable hooks? Hooks allow MoltBot to automatically 
  perform actions at specific triggers (cron schedules, events, etc.)
  
  Examples:
  - Daily morning brief at 8 AM
  - Monitor email every 10 minutes
  - Weekly file cleanup
  
? Enable hooks? (y/N)

For beginners: Type n and press Enter

Why skip hooks initially:

  • Can configure later after understanding MoltBot

  • Prevents accidental automated actions

  • Reduces complexity during first setup

  • Safer to enable after testing manual commands

Advanced users can enable hooks for:

  • Scheduled reminders

  • Automated monitoring

  • Periodic reports

  • Proactive notifications

Step 9: Launching MoltBot (5 minutes)

Why We're Doing This

Now we're ready to bring your MoltBot online! This step starts the gateway service (the "front door" that handles messaging connections) and makes your AI assistant accessible through Telegram.

Step 9.1: Choosing Launch Mode

bash

? How do you want to launch MoltBot? (Use arrow keys)
❯ Hatch into TUI (Terminal + Web UI)
  Hatch into Web UI only
  Hatch into background daemon
  Configure later (skip for now)

Select: Hatch into TUI

Press: Enter

Launch mode explained:

Terminal UI (TUI):

  • Interactive terminal interface

  • Real-time message viewing

  • Live logging and debugging

  • Web dashboard access

  • Best for initial testing

Web UI only:

  • Browser-based control panel

  • Graphical interface

  • No terminal required

  • Good for remote management

Background daemon:

  • Runs silently in background

  • No interactive output

  • Auto-starts on boot

  • Production deployment mode

Step 9.2: Initial Personalization

MoltBot asks for identity configuration:

bash

╔═══════════════════════════════════════════════════════════╗
║           MOLTBOT IDENTITY CONFIGURATION                  ║
╚═══════════════════════════════════════════════════════════╝

Let's give your AI assistant a personality!

? What should I call you? (Your name)

Enter your name:

bash

Alex

MoltBot acknowledges:

bash

Got it! I'll call you Alex.

? What should you call me? (My name/identity)

Choose a name for your MoltBot:

bash

Nexa

Examples of good bot names:

  • Nexa (short, futuristic)

  • Atlas (strong, reliable)

  • Sage (wise, thoughtful)

  • Orbit (tech-focused)

  • Nova (bright, energetic)

MoltBot responds:

bash

Perfect! I'm Nexa, your AI assistant.

? What timezone are you in? (Dropdown menu)

Select your timezone using arrow keys:

bash

❯ America/New_York
  America/Los_Angeles
  America/Chicago
  Europe/London
  Europe/Paris
  Asia/Tokyo
  [type to search...]

Why timezone matters:

  • Scheduled tasks run at correct local time

  • Time-aware responses ("good morning" at proper times)

  • Accurate logging timestamps

  • Calendar integration accuracy

Final personality configuration:

bash

? What's your preferred communication style?
❯ Professional (formal, business-appropriate)
  Friendly (casual, conversational)
  Concise (brief, to-the-point)
  Technical (detailed, specific)
  Custom (define your own)

Select your preference and press Enter

Step 9.3: MoltBot Launches

bash

╔═══════════════════════════════════════════════════════════╗
║                 MOLTBOT IS HATCHING...                    ║
╚═══════════════════════════════════════════════════════════╝

Starting gateway service...
Loading configuration...
Initializing AI model connection...
Connecting to Telegram...
Loading skills...
Starting web dashboard...

✓ Gateway running on http://localhost:8080
✓ Telegram connected (@my_moltbot_2026_bot)
✓ Web UI available at http://localhost:8080/ui
✓ Skills loaded: 3 active

╔═══════════════════════════════════════════════════════════╗
║                    MOLTBOT IS READY!                      ║
╠═══════════════════════════════════════════════════════════╣
║                                                           ║
║  Your AI assistant is now online and waiting for         ║
║  your first message!                                      ║
║                                                           ║
║  Send a message to @my_moltbot_2026_bot on Telegram     ║
║  to begin your conversation.                             ║
║                                                           ║
║  Web UI: http://localhost:8080/ui                        ║
║                                                           ║
╚═══════════════════════════════════════════════════════════╝

[Nexa] Waiting for your message...

Terminal UI shows real-time activity:

bash

┌──────────────────────────────────────────────────────────┐
│ MoltBot Terminal Interface                                │
├──────────────────────────────────────────────────────────┤
│                                                          │
│ Status: ● ONLINE                                         │
│ Model: Claude Opus 4.5                                   │
│ Gateway: http://localhost:8080                          │
│                                                          │
│ [14:32:15] Gateway started                              │
│ [14:32:16] Telegram connected                           │
│ [14:32:17] Skills loaded: ClawdHub, Nano Banana, Browser│
│ [14:32:18] Ready for commands                           │
│                                                          │
│ Logs:                                                    │
│ ─────                                                    │
│                                                          │
└──────────────────────────────────────────────────────────┘

Press Ctrl+C to stop gateway

Step 10: Telegram Pairing and First Message (5 minutes)

Why We're Doing This

Your MoltBot is running, but it needs to verify that YOU are the authorized user before responding. This pairing process creates a secure connection between your Telegram account and your MoltBot instance, preventing unauthorized access.

Step 10.1: Opening Your Telegram Bot

On your phone or computer:

  1. Open Telegram app

  2. Search for your bot: @my_moltbot_2026_bot

  3. Click on the bot to open conversation

  4. Click "START" button at bottom

Bot sends pairing message:

🤖 MoltBot Access Node

Hey there! I need to pair with you before we can start working together.

📱 Your Telegram User ID: 123456789
🔐 Pairing Code: MB-2026-7X9K-P4L2

This pairing code is unique to you. To complete setup:
1. Copy the pairing code above
2. Provide it to your MoltBot administrator
3. Wait for approval

Security Note: Never share this code with anyone else!

What this message contains:

Telegram User ID:

  • Unique identifier for your Telegram account

  • Not secret, but needed for pairing

  • Example: 123456789

Pairing Code:

  • Temporary security code

  • Valid for 15 minutes

  • Format: MB-YYYY-XXXX-XXXX

  • Used to verify authorization

Step 10.2: Approving Pairing on VPS

Return to your VPS terminal

You'll see pairing request in logs:

bash

[14:35:22] Telegram pairing request received
[14:35:22] User ID: 123456789
[14:35:22] Username: @alex_telegram
[14:35:22] Pairing code: MB-2026-7X9K-P4L2
[14:35:22] Waiting for approval...

Approve the pairing:

Method 1: Direct approval command:

bash

# In separate terminal (Ctrl+Shift+T for new tab)
moltbot pairing approve telegram MB-2026-7X9K-P4L2

Method 2: Interactive approval:

bash

# List pending pairing requests
moltbot pairing list telegram

Output:

bash

Pending Telegram Pairing Requests:
─────────────────────────────────
User ID: 123456789
Username: @alex_telegram
Code: MB-2026-7X9K-P4L2
Requested: 2 minutes ago

Approve specific request:

bash

moltbot pairing approve telegram 123456789

Approval confirmation:

bash

✓ Pairing approved for user 123456789
✓ Telegram connection established
✓ User @alex_telegram authorized

Back in Telegram, bot sends confirmation:

✅ Pairing Successful!

Hey Alex! We're now connected. I'm Nexa, your AI assistant.

I'm ready to help with:
- File management and organization
- Email and calendar tasks
- Code generation and debugging
- Web research and browsing
- Image generation
- And much more!

Try sending me a message to test it out!

Type 'help' to see available commands.

Step 10.3: Sending Your First Message

In Telegram, send a test message:

Hi Nexa! Can you introduce yourself?

Watch the terminal on your VPS:

bash

[14:37:45] Telegram message received
[14:37:45] User: @alex_telegram
[14:37:45] Message: "Hi Nexa! Can you introduce yourself?"
[14:37:45] Processing with Claude Opus 4.5...
[14:37:47] Generating response...
[14:37:49] Response sent to Telegram

Bot responds in Telegram:

Hi Alex! 👋

I'm Nexa, your personal AI assistant running on your VPS. Think of me as your digital operative - I'm here 24/7 to help automate tasks, manage information, and handle complex workflows.

Here's what makes me different from other AI assistants:

**What I Can Do:**
- Access and manage files on this server
- Execute commands and scripts
- Browse the web and gather information
- Generate images using AI
- Remember our entire conversation history
- Work proactively on scheduled tasks
- Integrate with your email, calendar, and services

**How I'm Built:**
- Running on Ubuntu 24.04 VPS
- Powered by Claude Opus 4.5
- Self-hosted for privacy
- Skills: ClawdHub, Nano Banana Pro, Browser Automation

**Current Status:**
- Server: Online ✓
- Model: Claude Opus 4.5 ✓
- Skills: 3 active ✓
- Memory: Persistent ✓

I learn from every conversation we have, so feel free to give me context about your preferences, workflows, and goals. The more I know about you, the better I can assist!

What would you like help with today?

Success! Your MoltBot is fully operational!

Step 11: Essential Security Hardening (CRITICAL - 30 minutes)

Why We're Doing This

At this point, your MoltBot works - but it's dangerously insecure. Without proper security hardening, your VPS is exposed to attackers who can steal your API keys, read your conversations, and potentially compromise your entire digital infrastructure. This step is absolutely critical.

Real-world consequences of skipping security:

  • 800+ MoltBot instances found exposed on internet

  • Hundreds leaked API keys worth thousands of dollars

  • Private conversations exposed publicly

  • Attackers used compromised bots as backdoors

  • Signal accounts paired to stranger's servers

Step 11.1: Configuring UFW Firewall

bash

# Install UFW (Uncomplicated Firewall) if not already installed
sudo apt-get install -y ufw

What this does: Installs Ubuntu's user-friendly firewall management tool

Default policy: Deny all incoming traffic

bash

# Set default policies
sudo ufw default deny incoming
sudo ufw default allow outgoing

Breaking down these commands:

sudo ufw default deny incoming:

  • Blocks ALL incoming connection attempts by default

  • Only explicitly allowed ports can receive traffic

  • Prevents unauthorized access to MoltBot gateway

  • Critical security foundation

sudo ufw default allow outgoing:

  • Allows ALL outgoing connections

  • Necessary for MoltBot to contact APIs

  • Enables Telegram message sending

  • Required for skill installations

Allow SSH connections (CRITICAL):

bash

# Allow SSH on port 22
sudo ufw allow 22/tcp

Why this is critical:

  • Without this rule, you'll lose SSH access

  • You'll be locked out of your own server

  • Would require VPS provider console to recover

IMPORTANT: Always allow SSH before enabling the firewall!

Allow Telegram webhook (if using):

bash

# If you configured Telegram webhooks instead of polling
sudo ufw allow 8443/tcp

Enable the firewall:

bash

# Activate firewall rules
sudo ufw enable

Warning message:

bash

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Type: y and press Enter

Confirmation:

bash

Firewall is active and enabled on system startup

Verify firewall status:

bash

sudo ufw status verbose

Expected output:

bash

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)

Step 11.2: Securing MoltBot Gateway

CRITICAL: Never expose MoltBot gateway to public internet

Edit MoltBot configuration:

bash

# Open configuration file
nano ~/.moltbot/config.json

Locate gateway configuration section:

json

{
  "gateway": {
    "host": "0.0.0.0",
    "port": 8080,
    "authentication": {
      "enabled": false,
      "username": "",
      "password": ""
    }
  }
}

What 0.0.0.0 means:

  • Binds to all network interfaces

  • Makes gateway accessible from internet

  • EXTREMELY DANGEROUS without authentication

  • Anyone can access web UI and configuration

Change to localhost only:

json

{
  "gateway": {
    "host": "127.0.0.1",
    "port": 8080,
    "authentication": {
      "enabled": true,
      "username": "admin",
      "password": "CHANGE_THIS_TO_STRONG_PASSWORD"
    }
  }
}

Breaking down changes:

"host": "127.0.0.1":

  • Binds only to localhost (loopback interface)

  • Only accessible from within the server

  • Not exposed to internet

  • Requires SSH tunnel for remote access

"enabled": true:

  • Activates authentication requirement

  • Protects against unauthorized access

  • Even with SSH tunnel, requires password

"username": "admin":

  • Web UI login username

  • Can be changed to anything you prefer

"password": "...":

  • CRITICAL: Change to strong password

  • Minimum 20 characters

  • Mix of uppercase, lowercase, numbers, symbols

Example strong password:

bash

Mb@WebUI2026!Secure#Gateway$789

Save and exit:

  • Press Ctrl+X

  • Press Y to confirm

  • Press Enter to save

Restart MoltBot gateway:

bash

moltbot gateway restart

Verification:

bash

# Try accessing from external IP (should fail)
curl http://YOUR_VPS_IP:8080

# Output: Connection refused (good!)

Step 11.3: Securing Credential Storage

Critical vulnerability: MoltBot stores credentials in plaintext

Location of sensitive files:

bash

~/.moltbot/config.json          # Contains API keys
~/.moltbot/memory/*.md          # Contains conversation history
~/.moltbot/skills/*/config.json # Contains skill API keys

Set proper file permissions:

bash

# Make config directory readable only by moltbot user
chmod 700 ~/.moltbot
chmod 700 ~/.moltbot/config
chmod 700 ~/.moltbot/memory
chmod 700 ~/.moltbot/skills

# Make config files readable only by owner
chmod 600 ~/.moltbot/config.json
chmod 600 ~/.moltbot/skills/*/config.json

Understanding permission codes:

chmod 700 explained:

  • 7 = Owner: Read (4) + Write (2) + Execute (1)

  • 0 = Group: No permissions

  • 0 = Others: No permissions

chmod 600 explained:

  • 6 = Owner: Read (4) + Write (2)

  • 0 = Group: No permissions

  • 0 = Others: No permissions

Why this matters:

  • Prevents other users on system from reading files

  • Protects against malware reading credentials

  • Limits damage if VPS is compromised

Verify permissions:

bash

ls -la ~/.moltbot/

Expected output:

bash

drwx------ 5 moltbot moltbot 4096 Jan 30 14:45 .
drwxr-xr-x 8 moltbot moltbot 4096 Jan 30 14:30 ..
drwx------ 2 moltbot moltbot 4096 Jan 30 14:40 config
-rw------- 1 moltbot moltbot 2847 Jan 30 14:42 config.json
drwx------ 3 moltbot moltbot 4096 Jan 30 14:41 memory
drwx------ 4 moltbot moltbot 4096 Jan 30 14:41 skills

First column breakdown:

  • d = directory

  • rwx------ = owner read/write/execute, no permissions for others

  • -rw------- = owner read/write, no permissions for others

Step 11.4: Implementing Fail2Ban (Advanced Protection)

Install Fail2Ban:

bash

sudo apt-get install -y fail2ban

What Fail2Ban does:

  • Monitors log files for suspicious activity

  • Automatically bans IP addresses after failed login attempts

  • Prevents brute-force attacks

  • Protects SSH from automated attacks

Create Fail2Ban jail configuration:

bash

# Create custom jail configuration
sudo nano /etc/fail2ban/jail.local

Add SSH protection:

bash

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

Configuration explained:

enabled = true:

  • Activates this jail

  • Starts monitoring immediately

port = 22:

  • Monitor SSH port

  • Standard SSH port number

maxretry = 3:

  • Allow 3 failed attempts

  • 4th failure triggers ban

  • Balance between security and usability

bantime = 3600:

  • Ban duration: 3600 seconds (1 hour)

  • IP blocked for 1 hour after triggering

  • Can increase to 86400 (24 hours) for stricter security

findtime = 600:

  • Time window: 600 seconds (10 minutes)

  • 3 failures within 10 minutes = ban

  • Resets after 10 minutes

Save and restart Fail2Ban:

bash

# Save: Ctrl+X, Y, Enter

# Restart Fail2Ban
sudo systemctl restart fail2ban

# Enable automatic startup
sudo systemctl enable fail2ban

# Verify status
sudo fail2ban-client status

Expected output:

bash

Status
|- Number of jail:      1
`- Jail list:   sshd

Check SSH jail specifically:

bash

sudo fail2ban-client status sshd

Output:

bash

Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:

Step 11.5: Regular Security Audits

Create security audit script:

bash

# Create audit script
nano ~/security-audit.sh

Add audit commands:

bash

#!/bin/bash

echo "=== MOLTBOT SECURITY AUDIT ==="
echo "Date: $(date)"
echo ""

echo "1. Checking file permissions..."
ls -la ~/.moltbot/config.json
ls -la ~/.moltbot/

echo ""
echo "2. Checking firewall status..."
sudo ufw status

echo ""
echo "3. Checking for exposed ports..."
sudo netstat -tulpn | grep LISTEN

echo ""
echo "4. Checking Fail2Ban status..."
sudo fail2ban-client status

echo ""
echo "5. Checking for unauthorized API key access..."
grep -r "sk-ant-" /var/log/ 2>/dev/null || echo "No API keys in logs (good!)"

echo ""
echo "6. Checking disk usage..."
df -h /home/moltbot

echo ""
echo "=== AUDIT COMPLETE ==="

Make script executable:

bash

chmod +x ~/security-audit.sh

Run audit:

bash

./security-audit.sh

Schedule weekly audits:

bash

# Add to crontab
crontab -e

Add this line:

bash

0 9 * * 1 /home/moltbot/security-audit.sh > /home/moltbot/audit-$(date +\%Y\%m\%d).log

What this does:

  • Runs every Monday at 9:00 AM

  • Generates timestamped audit log

  • Keeps audit history for review

Step 12: Making MoltBot Persistent (10 minutes)

Why We're Doing This

Currently, if your VPS reboots or you log out, MoltBot stops running. For a true 24/7 AI assistant, we need MoltBot to start automatically when the server boots and keep running in the background as a system service.

Creating Systemd Service File

bash

# Create systemd service file
sudo nano /etc/systemd/system/moltbot.service

Add service configuration:

bash

[Unit]
Description=MoltBot AI Assistant Gateway
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=moltbot
WorkingDirectory=/home/moltbot
Environment="PATH=/home/moltbot/.local/bin:/usr/local/bin:/usr/bin"
ExecStart=/home/moltbot/.local/bin/moltbot gateway start
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=moltbot

[Install]
WantedBy=multi-user.target

Understanding the service file:

[Unit] Section:

Description:

  • Human-readable service name

  • Appears in systemctl status

After=network-online.target:

  • Don't start until network is ready

  • Ensures API connections work

  • Prevents startup failures

Wants=network-online.target:

  • Request network to be online

  • Soft dependency (won't fail if unavailable)

[Service] Section:

Type=simple:

  • Service runs in foreground

  • Systemd tracks main process

  • Standard service type

User=moltbot:

  • Run as moltbot user, not root

  • Security best practice

  • Limits damage from compromise

WorkingDirectory=/home/moltbot:

  • Set working directory

  • Ensures relative paths work

  • Config files found correctly

Environment="PATH=...":

  • Define PATH variable

  • Includes moltbot command location

  • Ensures binary is found

ExecStart=...:

  • Command to start service

  • Full path to moltbot binary

  • gateway start subcommand

Restart=always:

  • Automatically restart if crashes

  • Ensures 24/7 operation

  • Critical for reliability

RestartSec=10:

  • Wait 10 seconds before restart

  • Prevents rapid restart loops

  • Gives system time to recover

StandardOutput=journal:

  • Log stdout to systemd journal

  • Viewable with journalctl

  • Centralized logging

StandardError=journal:

  • Log stderr to systemd journal

  • Captures error messages

  • Debugging support

[Install] Section:

WantedBy=multi-user.target:

  • Start service at boot

  • Multi-user mode (normal operation)

  • Ensures automatic startup

Save and exit: Ctrl+X, Y, Enter

Enabling and Starting the Service

Reload systemd configuration:

bash

# Tell systemd about new service file
sudo systemctl daemon-reload

What this does:

  • Reloads service definitions

  • Recognizes new moltbot.service

  • Required after creating service files

Enable auto-start on boot:

bash

# Enable service to start at boot
sudo systemctl enable moltbot

Output:

bash

Created symlink /etc/systemd/system/multi-user.target.wants/moltbot.service → /etc/systemd/system/moltbot.service

What this means:

  • Service will start automatically on boot

  • Runs every time VPS restarts

  • 24/7 operation guaranteed

Start the service now:

bash

# Start MoltBot service
sudo systemctl start moltbot

Check service status:

bash

# View service status
sudo systemctl status moltbot

Expected healthy output:

bash

● moltbot.service - MoltBot AI Assistant Gateway
     Loaded: loaded (/etc/systemd/system/moltbot.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2026-01-30 15:23:45 UTC; 30s ago
   Main PID: 12847 (node)
      Tasks: 11 (limit: 4915)
     Memory: 125.3M
        CPU: 2.543s
     CGroup: /system.slice/moltbot.service
             └─12847 /usr/bin/node /home/moltbot/.local/bin/moltbot gateway start

Jan 30 15:23:45 vps-12345 systemd[1]: Started MoltBot AI Assistant Gateway.
Jan 30 15:23:46 vps-12345 moltbot[12847]: [INFO] Gateway starting on 127.0.0.1:8080
Jan 30 15:23:47 vps-12345 moltbot[12847]: [INFO] Telegram connected: @my_moltbot_2026_bot
Jan 30 15:23:48 vps-12345 moltbot[12847]: [INFO] Skills loaded: 3 active
Jan 30 15:23:48 vps-12345 moltbot[12847]: [INFO] MoltBot ready

Status indicators explained:

Active: active (running):

  • Service is running successfully

  • Not crashed or stopped

  • Ready to process messages

enabled; vendor preset: enabled:

  • Will start on boot

  • Persistent across reboots

Main PID: 12847:

  • Process ID of running service

  • Unique identifier

  • Used for troubleshooting

Viewing real-time logs:

bash

# Follow logs in real-time
sudo journalctl -u moltbot -f

What you'll see:

bash

Jan 30 15:25:12 moltbot[12847]: [INFO] Telegram message received from @alex_telegram
Jan 30 15:25:12 moltbot[12847]: [INFO] Message: "test message"
Jan 30 15:25:13 moltbot[12847]: [INFO] Processing with Claude Opus 4.5
Jan 30 15:25:15 moltbot[12847]: [INFO] Response sent to Telegram

Press Ctrl+C to stop following logs

Service Management Commands

Stopping the service:

bash

sudo systemctl stop moltbot

Restarting the service:

bash

sudo systemctl restart moltbot

Reloading configuration (without restart):

bash

# Edit config.json, then:
sudo systemctl reload moltbot

Viewing full logs:

bash

# Last 100 lines
sudo journalctl -u moltbot -n 100

# Last hour
sudo journalctl -u moltbot --since "1 hour ago"

# Today's logs
sudo journalctl -u moltbot --since today

Checking if service is enabled:

bash

sudo systemctl is-enabled moltbot

Output should be: enabled

Testing auto-start:

bash

# Reboot VPS to test
sudo reboot

After reboot, SSH back in and check:

bash

sudo systemctl status moltbot

Should show: active (running) without manual start

Step 13: Testing Your MoltBot (15 minutes)

Why We're Doing This

Now that everything is configured and secured, let's thoroughly test your MoltBot to ensure all features work correctly. This testing phase helps identify any configuration issues before relying on your AI assistant for critical tasks.

Basic Communication Tests

Test 1: Simple greeting

Send to Telegram bot:

Hello! Are you working?

Expected response:

Yes, I'm working perfectly! I'm online and ready to help. What can I do for you today?

What this tests:

  • Telegram connection working

  • Message routing functional

  • AI model responding

  • Basic text processing

Test 2: Context retention

Send message 1:

My favorite color is blue.

Wait for response, then send message 2:

What's my favorite color?

Expected response:

Your favorite color is blue, as you just told me!

What this tests:

  • Persistent memory

  • Context understanding

  • Conversation history

  • Memory retrieval

Test 3: System information

Send:

What system are you running on?

Expected response:

I'm running on:
- Operating System: Ubuntu 24.04 LTS
- Server Type: VPS (Virtual Private Server)
- AI Model: Claude Opus 4.5 by Anthropic
- Platform: MoltBot (formerly ClawdBot)
- Location: /home/moltbot on your VPS

Would you like more detailed system information?

What this tests:

  • System awareness

  • Configuration access

  • Self-knowledge

File System Tests

Test 4: List files

Send:

Can you list the files in your home directory?

Expected response:

Here are the files in /home/moltbot:

Directories:
- .moltbot/ (MoltBot configuration and data)
- .npm/ (npm package cache)
- .local/ (local binaries and data)

Files:
- .bashrc (bash configuration)
- .profile (login profile)
- security-audit.sh (security audit script)

Total: 3 directories, 3 files

What this tests:

  • File system access

  • Shell command execution

  • Directory navigation

Test 5: Create test file

Send:

Create a file called test.txt with the content "Hello from MoltBot!"

Expected response:

✓ Created file: /home/moltbot/test.txt

Content:
Hello from MoltBot!

The file has been created successfully!

What this tests:

  • File creation capability

  • Write permissions

  • File system operations

Verify file exists:

bash

# On your VPS terminal
cat ~/test.txt

Should output:

bash

Hello from MoltBot!

Skill Tests

Test 6: ClawdHub skill (if installed)

Send:

Search ClawdHub for available skills related to email

Expected response:

I found several email-related skills on ClawdHub:

1. **Gmail Integration Pro**
   - Description: Full Gmail API integration with filters and rules
   - Downloads: 15,234
   - Rating: 4.8/5

2. **Email Parser**
   - Description: Extract structured data from emails
   - Downloads: 8,967
   - Rating: 4.6/5

3. **Inbox Zero Assistant**
   - Description: Automated email management and cleanup
   - Downloads: 6,543
   - Rating: 4.7/5

Would you like me to install any of these?

What this tests:

  • ClawdHub connection

  • Skill marketplace access

  • Search functionality

Test 7: Image generation (if Nano Banana Pro installed)

Send:

Generate an image of a futuristic city at sunset

Expected response:

🎨 Generating image...

[After 10-15 seconds, image appears]

✓ Image generated successfully!

Description: A futuristic city skyline at sunset, featuring tall glass buildings with orange and pink reflections, flying vehicles, and a vibrant sky.

Model: Gemini 2.0 Flash
Resolution: 1024x1024

What this tests:

  • Gemini API integration

  • Image generation skill

  • External API calls

  • Media handling

Error Handling Tests

Test 8: Invalid command

Send:

Delete all system files

Expected response:

⚠️ I cannot and will not perform that action.

Deleting system files would:
- Destroy the operating system
- Make the server unusable
- Cause catastrophic data loss
- Violate safety constraints

I'm designed to be helpful and safe. I won't execute commands that could cause serious harm.

Is there something specific you're trying to accomplish? I can suggest safe alternatives.

What this tests:

  • Safety constraints

  • Harmful action prevention

  • Ethical guidelines

  • Refusal mechanisms

Test 9: Resource-intensive task

Send:

Calculate the first 100 digits of pi

Expected response:

The first 100 digits of pi (π) are:

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

This is a mathematical constant representing the ratio of a circle's circumference to its diameter.

Would you like me to explain any properties of pi?

What this tests:

  • Computational tasks

  • Mathematical processing

  • Response accuracy

Performance Tests

Test 10: Concurrent requests

Send three messages quickly:

Message 1: What's the weather like?
Message 2: Tell me a joke
Message 3: Calculate 15 * 234

Expected: All three messages receive responses

What this tests:

  • Concurrent message handling

  • Queue processing

  • No message loss

  • Stable operation

Test 11: Long conversation

Send 10-15 messages back and forth

Then send:

Summarize our entire conversation

Expected: Coherent summary of all messages

What this tests:

  • Memory limits

  • Context window handling

  • Long conversation support

System Status Commands

Test 12: Status command

Send:

/status

Expected response:

📊 MoltBot System Status

🟢 Online - Running smoothly

System Information:
- Uptime: 2 hours, 34 minutes
- Model: Claude Opus 4.5
- Gateway: 127.0.0.1:8080
- Platform: MoltBot v2.14.0

Skills Active: 3
- ClawdHub
- Nano Banana Pro
- Browser Automation

Memory Usage: 145 MB / 8 GB
Disk Usage: 2.4 GB / 100 GB

API Usage Today:
- Tokens consumed: 234,567
- Estimated cost: $3.42
- Requests: 89

Last message: 12 seconds ago

What this tests:

  • Native commands

  • System monitoring

  • Resource tracking

Troubleshooting Common Test Failures

If bot doesn't respond:

bash

# Check service status
sudo systemctl status moltbot

# Check logs for errors
sudo journalctl -u moltbot -n 50

# Verify Telegram connection
moltbot doctor

If responses are slow:

bash

# Check system resources
free -h
top

# Check API connectivity
ping -c 4 api.anthropic.com

If skills don't work:

bash

# List installed skills
moltbot skills list

# Check skill status
moltbot skills status

# Reinstall problematic skill
moltbot skills install <skill-name>

Advanced Configuration: Customization and Optimization

Configuring Custom Skills

Installing additional skills from ClawdHub:

bash

# Search for skills
moltbot skills search "keyword"

# Install specific skill
moltbot skills install <skill-name>

# View installed skills
moltbot skills list

# Remove skill
moltbot skills remove <skill-name>

Memory Management

Viewing memory contents:

bash

# Check memory files
ls -lh ~/.moltbot/memory/

# View specific conversation
cat ~/.moltbot/memory/telegram-123456789.md

Clearing old conversations:

bash

# Archive conversations older than 30 days
find ~/.moltbot/memory/ -name "*.md" -mtime +30 -exec mv {} ~/.moltbot/archive/ \;

Performance Optimization

Optimizing for lower costs:

json

{
  "models": {
    "default": "anthropic/claude-sonnet-4-5",
    "expensive_tasks": "anthropic/claude-opus-4-5",
    "simple_tasks": "anthropic/claude-haiku-4-5"
  }
}

Configure task-based model selection

Monitoring and Maintenance

Setting up log rotation:

bash

# Create logrotate configuration
sudo nano /etc/logrotate.d/moltbot

Add:

bash

/var/log/moltbot/*.log {
    daily
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 moltbot moltbot
    sharedscripts
    postrotate
        systemctl reload moltbot > /dev/null 2>&1 || true
    endscript
}

Security Best Practices Summary

Critical Security Checklist

Network Security:

  • Firewall configured with UFW

  • Gateway bound to 127.0.0.1 only

  • SSH protected with Fail2Ban

  • No unnecessary ports exposed

Authentication:

  • Strong passwords on all accounts

  • API keys secured in protected files

  • Web UI requires authentication

  • Telegram pairing enforced

File System:

  • Config files: chmod 600

  • Directories: chmod 700

  • Running as non-root user

  • Separate user for MoltBot

Monitoring:

  • Regular security audits scheduled

  • Logs monitored for suspicious activity

  • Failed login attempts tracked

  • API usage monitored

Maintenance:

  • Regular system updates

  • Skill updates from trusted sources

  • Backup configuration files

  • Test recovery procedures

What NOT to Do

Never:

  • Expose gateway to public internet (use 127.0.0.1)

  • Share API keys in conversations

  • Run as root user

  • Install unverified skills

  • Disable authentication

  • Use weak passwords

  • Grant full system access blindly

  • Trust all ClawdHub skills without review

Real-World Use Cases and Examples

Use Case 1: Automated Email Management

Setup:

Send this command to your bot:
"Monitor my inbox every 10 minutes. For urgent emails from clients, send me a Telegram notification. Archive newsletters automatically."

What happens:

  • MoltBot checks email periodically

  • Identifies urgent messages using AI

  • Sends real-time notifications

  • Organizes inbox automatically

Use Case 2: Daily Morning Briefing

Setup:

"Every morning at 7 AM, send me:
1. Local weather forecast
2. Top 3 tech news headlines
3. My calendar for today
4. Unread important emails count"

Result:

  • Proactive daily briefing

  • Personalized information digest

  • No manual checking required

Use Case 3: Code Project Assistant

Example conversation:

You: "Create a Python script that monitors a directory and backs up new files to Google Drive"

MoltBot: "I'll create that script for you. First, let me clarify a few details:
1. Which directory should I monitor?
2. How frequently should it check for new files?
3. Do you want to exclude any file types?
4. Should it preserve the directory structure in Google Drive?"

You: "Monitor /home/user/projects every 5 minutes, exclude .tmp files, preserve structure"

MoltBot: "Perfect! Creating the script now..."

[Creates complete Python script with proper error handling, logging, and Google Drive integration]

"✓ Script created: /home/moltbot/monitor_backup.py
✓ Requirements file created
✓ Setup instructions included

The script is ready to use. Would you like me to test it or set it up as a systemd service?"

Use Case 4: Research Assistant

Example:

You: "Research the latest developments in quantum computing from the past week and summarize the key findings"

MoltBot: "I'll search for recent quantum computing developments and compile a summary..."

[After browsing and analyzing multiple sources]

"📊 Quantum Computing Developments - Past Week Summary

Key Breakthroughs:
1. IBM announced 1,000+ qubit processor advancement
2. Google demonstrated quantum error correction milestone
3. New algorithm for chemistry simulation published in Nature

Technical Details:
[Detailed breakdown of each development]

Business Impact:
[Analysis of implications]

Sources: [Links to original articles]

Would you like me to dive deeper into any specific development?"

Troubleshooting Guide

Common Issues and Solutions

Issue: Bot doesn't respond to Telegram messages

Solution:

bash

# Check service status
sudo systemctl status moltbot

# View recent errors
sudo journalctl -u moltbot -n 50 --no-pager

# Verify Telegram connection
moltbot doctor

# Check pairing status
moltbot pairing list telegram

Issue: High API costs

Solution:

json

// Adjust config.json
{
  "models": {
    "default": "anthropic/claude-sonnet-4-5"  // Use cheaper model
  },
  "rateLimit": {
    "maxTokensPerHour": 50000  // Limit token usage
  }
}

Issue: Gateway won't start

Solution:

bash

# Check if port 8080 is already in use
sudo netstat -tulpn | grep 8080

# Kill conflicting process
sudo kill -9 [PID]

# Restart MoltBot
sudo systemctl restart moltbot

Issue: Skills not working

Solution:

bash

# Update skills
moltbot skills update

# Reinstall specific skill
moltbot skills remove [skill-name]
moltbot skills install [skill-name]

# Check skill configuration
cat ~/.moltbot/skills/[skill-name]/config.json

Cost Optimization Strategies

Reducing API Costs

1. Use appropriate model tiers:

json

{
  "routing": {
    "simple_chat": "claude-haiku-4-5",
    "complex_tasks": "claude-sonnet-4-5", 
    "critical_work": "claude-opus-4-5"
  }
}

2. Implement usage limits:

json

{
  "limits": {
    "maxTokensPerDay": 500000,
    "maxRequestsPerHour": 100,
    "alertThreshold": 400000
  }
}

3. Monitor and analyze:

bash

# Check daily usage
moltbot usage today

# View monthly costs
moltbot usage month

# Set up cost alerts
moltbot alerts add --type cost --threshold 50

Frequently Asked Questions

Q: Can I run multiple MoltBots on one VPS?

A: Yes, but each needs separate ports and user accounts. Recommended only for VPS with 16GB+ RAM.

Q: How do I backup my MoltBot configuration?

A:

bash

# Backup entire configuration
tar -czf moltbot-backup-$(date +%Y%m%d).tar.gz ~/.moltbot

# Restore from backup
tar -xzf moltbot-backup-20260130.tar.gz -C ~/

Q: Can I use MoltBot for commercial purposes?

A: Check the license. MoltBot is open-source (MIT license), but you're responsible for API costs and compliance with AI provider terms.

Q: How do I update MoltBot?

A:

bash

# Update to latest version
moltbot update

# Restart service
sudo systemctl restart moltbot

Q: What happens if my VPS runs out of disk space?

A: MoltBot will stop functioning. Monitor disk usage:

bash

# Check disk space
df -h

# Clean old logs
sudo journalctl --vacuum-time=7d

# Remove old memory files
find ~/.moltbot/memory -mtime +90 -delete

Conclusion: Your AI Assistant is Ready

Congratulations! You've successfully deployed a fully functional, secure MoltBot AI assistant on your VPS. You now have:

24/7 Autonomous AI Assistant:

  • Running continuously on isolated VPS

  • Accessible through Telegram from anywhere

  • Persistent memory across conversations

  • Extensible through skills marketplace

Enterprise-Grade Security:

  • Firewall protection with UFW

  • Fail2Ban brute-force prevention

  • Proper file permissions

  • Authentication enforced

  • Non-root user isolation

Professional Infrastructure:

  • Systemd service management

  • Automatic restart on failure

  • Boot persistence

  • Centralized logging

  • Regular security audits

Cost Optimization:

  • VPS: $10-15/month

  • API: $20-50/month typical usage

  • Total: $30-65/month

  • vs. $500+ Mac Mini + electricity + human assistant

Next Steps

Week 1: Learning Phase

  • Send diverse messages to understand capabilities

  • Test different types of tasks

  • Explore installed skills

  • Review API usage and costs

Week 2: Customization

  • Install additional skills matching your needs

  • Configure automated workflows

  • Set up scheduled tasks

  • Personalize communication style

Week 3: Integration

  • Connect email and calendar

  • Set up project monitoring

  • Configure proactive alerts

  • Establish backup routines

Month 2+: Optimization

  • Analyze usage patterns

  • Optimize for cost efficiency

  • Develop custom workflows

  • Share experiences with community

Staying Updated

Monitor MoltBot development:

Regular maintenance schedule:

  • Weekly: Security audit script

  • Monthly: Update MoltBot and skills

  • Quarterly: Review and optimize configuration

  • Annually: VPS plan evaluation

Final Security Reminder

Critical practices to maintain:

  1. Never share your API keys - Not in screenshots, logs, or conversations

  2. Keep gateway on localhost - Never expose 0.0.0.0 to public

  3. Review skills before installing - Verify source and permissions

  4. Monitor unusual activity - Check logs regularly

  5. Backup configuration - Before major changes

  6. Use separate accounts - Don't connect work email/calendar initially

  7. Stay informed about vulnerabilities - Follow security announcements

  8. Test recovery procedures - Know how to restore from backup

Community and Support

Get help:

  • MoltBot Discord: Real-time community support

  • GitHub Issues: Report bugs and request features

  • Documentation: Comprehensive guides and API reference

  • Reddit r/MoltBot: Community discussions and use cases

Contribute back:

  • Share your experiences

  • Create custom skills

  • Improve documentation

  • Help other users

The Future of Personal AI

You're now part of the revolution in personal AI assistance. MoltBot represents a shift toward:

  • Privacy-first AI - Data stays on your infrastructure

  • Autonomous agents - Proactive, not just reactive

  • Customizable intelligence - Tailored to your specific needs

  • Community-driven - Open source and extensible

The power is now in your hands - literally, through your Telegram app. Your AI assistant is ready to work 24/7, learning your preferences, automating your workflows, and augmenting your capabilities.

Welcome to the future of personal productivity.

Parash Panta

Content Creator

Creating insightful content about web development, hosting, and digital innovation at Dplooy.