Free tools Windows power users keep installed
One-click scans. No signup required.
For most servers, the best self-hosted Discord bot depends on the job: Muse is the clearest music choice, BoneBot is the most straightforward Docker Compose option for a general-purpose feature set, Modmail and Ticketsbot target staff support, and Red-DiscordBot offers a broad cog-based system when you are comfortable using a community-maintained image. All of them still connect to Discord through a bot account and token; self-hosting moves the running software to your machine, not Discord itself.
The projects and deployment details below reflect information available on October 14, 2026. Several projects do not have independently verified release dates, official image ownership, or current installation documentation in the available material, so check the project’s own repository and documentation immediately before deploying.
As an Amazon Associate I earn from qualifying purchases.
What “self-hosted Discord bot” actually means
A self-hosted bot is an application you run on a computer, NAS, VPS, or home server that maintains a connection to Discord’s API. You create the bot user in the Discord Developer Portal, copy its token into your deployment, and invite it to the required servers. Discord continues to provide the chat service, permissions, gateway connection, and API; your machine supplies the process, storage, updates, and uptime.
This differs from a hosted bot service, where somebody else runs the process and you only configure it through a dashboard. Self-hosting gives you control over source code, data location, logs, backups, and restart policy, but it also makes you responsible for security and maintenance. If your host is powered off or your container crashes, the bot goes offline.
#1 Best Overall
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
Best choices at a glance
| Bot | Best for | Deployment described in available documentation | Licence information | Important qualification |
|---|---|---|---|---|
| Muse | Music playback | Docker is recommended; a Node.js route is also described; the project publishes a container through GHCR. | Not stated in the available material. | Confirm the current image name, supported audio providers, and release activity before using it. |
| BoneBot | General, modular server features | Docker Compose. Set bot-token in resources/config.txt, then run docker compose up -d. |
Not stated in the available material. | The configuration file and compose definition should be checked against the current project version. |
| Red-DiscordBot | Modular commands and a cog ecosystem | Community Docker images, including images associated with PhasecoreX and 4o66. | GPL-3.0 was reported by a third-party wrapper repository, not verified against the official project. | The cited images are not official Red project images. Inspect the maintainer, tags, source, and update process. |
| Modmail | Private staff-to-user messaging | Self-hostable; the available summary did not provide current installation steps. | MIT, as listed by a DEV Community roundup. | Obtain the current deployment instructions from the project before committing to it. |
| Ticketsbot | Support-ticket workflows | Self-hostable; the available summary did not provide current installation steps. | GPL-3.0, as listed by a DEV Community roundup. | Verify the repository, release status, and ticket-storage behavior before production use. |
Practical shortlist: choose Muse when music is the only requirement; choose BoneBot when you want a documented Compose starting point; choose Red-DiscordBot when extensibility matters more than using an official image; choose Modmail or Ticketsbot for a support team rather than a general command bot.
Server requirements and realistic resource needs
These bots are generally small compared with a full web application, but the exact footprint depends on enabled modules, voice connections, databases, caches, and logging. Two published estimates help set a floor, although neither is a benchmark of every bot in the table:
- A Haven self-hosting guide, for a different self-hosted chat platform rather than a Discord bot, lists Docker Engine 24 or newer, the Docker Compose plugin, one vCPU, 512 MB of RAM, and 1 GB of disk space. Treat these as a conservative example of a small container host, not a guaranteed bot specification.
- A third-party Red-DiscordBot guide estimates 0.1 vCPU and 256 MB RAM as a minimum, with 0.5 vCPU and 1 GB RAM recommended. Those figures are estimates from that guide, not an official Red requirement.
For a single low-traffic bot, a current Linux machine with at least 1 GB of available memory gives more headroom than the smallest estimates. Leave additional disk space for container layers, logs, configuration, and backups. Voice playback, large media caches, multiple bots, or a busy community can increase usage substantially.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Host checklist
- A stable outbound internet connection. The bot must reach Discord’s API continuously; inbound port forwarding is normally unnecessary for a basic gateway bot.
- A supported container runtime if you are following a Docker deployment. Confirm that Docker Engine and the Compose plugin are installed and that your user can run Compose without granting unnecessary administrative access.
- Persistent storage for configuration and any database or queue data. A disposable container without a mounted data location can lose settings when recreated.
- A restart policy and a way to view logs. Uptime is an operational task once the bot is yours.
Create the Discord application before installing software
- Open the Discord Developer Portal and create an application.
- Create or enable the application’s bot user. The bot token is generated in the portal, not by Docker or by the bot project.
- Copy the token into a password manager or another protected secret store. A third-party setup guide reports that the token is shown once and that resetting it on the Bot page invalidates the old token; verify the current portal behavior when you perform this step.
- Enable only the privileged gateway intents that the selected bot documents as necessary. A third-party Red-DiscordBot guide names Presence, Server Members, and Message Content intents, but that requirement was not verified against Discord’s current policy documentation. Do not enable all intents automatically.
- Generate an install URL with the scopes and permissions the bot actually needs, then invite it to a test server first. Granting Administrator can hide configuration mistakes and increases the impact of a compromised token; use narrower permissions where the bot supports them.
If the token appears in a shell history, compose file committed to source control, public issue, or log, assume it is compromised. Reset it in the Developer Portal, replace the secret in the deployment, and restart the bot.
Docker is the default deployment path
Docker is the most consistently documented route in the available material. It isolates dependencies, makes restarts predictable, and lets you update or roll back by changing an image tag. It does not make an untrusted image safe: image ownership and update practices still matter.
Rank #2
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (4GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- CanaKit Mega Heat Sink - Black Anodized
If you prefer to run these containers on a VPS rather than a home machine, Antihost VPS offers Linux instances with full root access, NVMe storage, and a one-click Docker image. The VPS is self-managed, so you remain responsible for the bot’s configuration, updates, and Discord token security.
Muse
Muse documentation recommends Docker and describes a GHCR image. Use the project’s current image reference and tag rather than guessing a URL or relying on an unpinned “latest” tag. A Node.js installation is also described, which may suit an operator who wants to manage the process with a system service instead of containers.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsBoneBot
- Download the project’s current Compose files and inspect the service definition before starting it.
- Open
resources/config.txtand set thebot-tokenvalue to the token created for your application. Protect the file’s permissions and keep it out of public repositories. - From the directory containing the Compose file, run
docker compose up -d. - Use
docker compose logs -fto confirm that the bot authenticates and reaches the ready state. Stop following logs withCtrl+C; that does not stop the container.
The command and path above are the deployment details cited for BoneBot. Check the current configuration schema before adding other settings, because a renamed key can leave a container running without a connected bot.
Red-DiscordBot images
Red-DiscordBot is commonly deployed through community images rather than an image maintained by the Red project team. One cited image updates to the latest PyPI release when the container restarts; another accepts the token as an environment variable and then stores it in settings.json, with one instance per container. Those behaviors are image-specific, not universal Red behavior.
Before starting an image, inspect its Dockerfile or source, maintainer identity, published tags, volume paths, environment-variable handling, and update history. Pin a known tag for production, keep a backup of the settings directory, and test an update on a separate instance. Never assume that two community images have compatible paths or startup options.
Rank #3
- CanaKit Raspberry Pi 5 Essentials Starter Kit
Bot-by-bot guidance
Muse: the focused music option
Muse is described as a self-hosted “midwestern Discord music bot” and supports Docker or Node.js, with Docker recommended. Its focused purpose can make permission design simpler than running a large general-purpose bot: invite only the voice and message permissions required by its commands, then test playback and disconnect behavior in a private channel.
The available material does not establish Muse’s current licence, release cadence, supported sources, or resource consumption. Verify those items, along with whether audio dependencies require extra system packages, before deploying it to a large server.
BoneBot: a Compose-first general bot
BoneBot is presented as a modular bot that adds features to a server. Its explicit resources/config.txt token setting and docker compose up -d start command make it the clearest fit for an operator who wants a conventional Compose project rather than a one-line community image.
Modularity increases configuration surface area. Start with the smallest feature set, confirm which permissions each module requests, and keep the Compose directory under version control without committing the token-bearing file. The current licence and maintenance status were not established in the available material.
Red-DiscordBot: broad functionality with image risk
Red-DiscordBot uses a cog system, allowing functionality to be added or removed as modules. That is useful when one bot must handle several jobs, but each cog can introduce its own permissions, dependencies, and data behavior.
Rank #4
- Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
The key operational issue is provenance: the Docker images cited for Red are community-maintained and explicitly not run by the Red project team. The GPL-3.0 claim also came from a third-party wrapper repository and should not be treated as a verified statement of the official project’s current licence. Read the official project files and image source before redistribution or commercial use.
Modmail: staff conversations
Modmail is aimed at private messaging between users and moderators. The cited licence is MIT, according to a DEV Community roundup. The available material does not include a current install recipe, database design, or backup procedure, so treat it as a candidate rather than a ready-to-copy deployment. Confirm how staff permissions, message retention, attachments, and deletion are handled before enabling it for sensitive reports.
Ticketsbot: structured support requests
Ticketsbot targets support-ticket workflows and is listed as GPL-3.0 by the same type of roundup. A ticket system can be a better fit than general-purpose commands when you need assignment, transcripts, and closure states, but those features also create records that require a retention and backup policy. Current installation steps were not available in the material; obtain them from the project’s maintained documentation and test permissions with a non-administrator account.
Permissions, secrets, and data protection
- Use least privilege. Compare the bot’s requested permissions with the commands you will enable. Avoid Administrator unless a documented feature genuinely requires it.
- Separate test and production servers. Validate commands, role checks, ticket visibility, and music playback in a private test guild.
- Protect token-bearing files. Restrict file permissions, exclude them from Git, and redact tokens from support bundles and screenshots.
- Back up persistent data. Include Compose volumes, BoneBot’s configuration directory, and Red’s
settings.jsonor equivalent volume in an encrypted backup. - Plan retention. Modmail and ticket systems may store messages or transcripts. Decide who can access those records, how long to keep them, and how to remove them.
- Monitor authentication failures. Repeated invalid-token errors usually mean a revoked, mistyped, or leaked token; reset it rather than repeatedly restarting the container.
Updating and maintaining a self-hosted bot
Maintenance status is unresolved for every candidate in the available material: no independently verified last-commit or release dates were provided. Check those dates, open issues, supported runtime versions, and security advisories before adoption.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →- Read the project’s release notes and migration instructions.
- Back up configuration and data volumes.
- Pull or download the new version in a staging directory.
- Start it against the test server and inspect
docker compose logs -for the image’s equivalent logs. - Promote the tested version to production and record the image tag or commit used.
For community images, compare the image’s source with the upstream project and verify that the maintainer publishes reproducible, signed, or otherwise auditable builds when available. An automatic “latest release on restart” policy is convenient but removes your ability to schedule and test upgrades.
Best Value
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 32GB EVO+ Micro SD Card pre-loaded with 64-bit Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit 45W PD Power Supply for the Raspberry Pi 5
- Display Cable - 6 foot (Supports up to 4K 60p)
Troubleshooting common failures
The container runs but the bot is offline
- Check logs for an invalid or missing token.
- Confirm the bot user exists in the application and was invited to the intended server.
- Verify outbound DNS and HTTPS access from the host.
- Check whether a required privileged intent is disabled in the Developer Portal or absent from the bot configuration.
Commands do not respond
- Confirm the bot has access to the channel and the relevant command permissions.
- Check that the invite used the scopes required by the bot’s command type.
- Review Message Content or other privileged-intent requirements only when the project documents them.
- Test with a simple command before enabling optional modules.
Settings disappear after a restart
The container probably has no persistent volume, or the mounted path does not match the path used by the image. Inspect the Compose volumes and the project’s documented data directory. For Red images, verify where settings.json is written; for BoneBot, preserve the configuration directory containing resources/config.txt.
An update breaks startup
Restore the previous image tag or package version from your backup, review migration notes, and reproduce the failure in the test server. Do not delete the data volume while diagnosing; that can turn a startup problem into permanent data loss.
Do you actually want to self-host Discord?
Some projects described in 2026 roundups are alternatives to Discord itself, not bots that connect to Discord. Spacebar is described as a project for running real Discord bots and clients against your own server, while Stoat, formerly Revolt, is described as a close Discord look-alike with a bot API. Haven is another self-hosted Discord alternative with a Docker guide. These replace the chat platform and therefore change client compatibility, user accounts, moderation tools, and migration effort. They are relevant only if your goal is to operate the entire service rather than run a bot for an existing Discord community.
How to choose
- Choose Muse when music is the only required capability and you prefer a documented Docker or Node.js path.
- Choose BoneBot when you want a general-purpose project with an explicit Compose workflow and a visible configuration file.
- Choose Red-DiscordBot when a cog ecosystem is worth the extra diligence of selecting and auditing a community image.
- Choose Modmail when private staff conversations are the central workflow and an MIT licence is important, subject to verifying the current project.
- Choose Ticketsbot when support requests need ticket-style handling and the project’s current GPL-3.0 terms and data practices meet your requirements.
Whichever option you select, deploy it first in a test server, keep the token outside source control, persist its data, and verify current releases and licences from the project maintainers. Those checks matter more than a nominally small CPU or memory requirement.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




