Free tools Windows power users keep installed
One-click scans. No signup required.
You can run Red-DiscordBot as a Docker Compose service with a community image, a Discord bot token, and a persistent /data mount. The basic workflow is: install Docker Engine and the Compose plugin, create a compose.yaml, start the container with docker compose up -d, invite the bot, and back up the mounted data directory. This is a community workaround rather than an officially supported Red deployment: Red’s hosting documentation currently says, “Docker support found in GitHub is also a work in progress and not ready for daily use.”
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What you need before creating the container
Red-DiscordBot is configured and operated through Discord after installation. Docker only supplies the runtime; you still need a Discord application, a bot user, and a host that can keep the container running.
As an Amazon Associate I earn from qualifying purchases.
- A supported host: Use a Linux server, desktop, or single-board computer that can run Docker Engine and the Compose plugin. The host must remain powered and connected to the internet for the bot to stay online.
- A Discord application and bot token: Create the bot in the Discord Developer Portal and copy its token. Treat the token like a password.
- A project directory: Keep the Compose file and persistent Red data together in a directory you can back up.
- Enough storage for the bot’s data: The selected image stores its configuration and other Red data under the path mounted at
/data. - An image that matches your CPU architecture: The PhasecoreX image documents support for normal x86-64 servers and ARM64 devices, including Raspberry Pi. That statement applies to that image, not automatically to every Red container image.
Red’s official hosting information also warns that unsupported platforms may not receive support when problems occur. Before deploying, record the exact image name and tag you choose so you can reproduce the environment when troubleshooting.
Choose an image with the right expectations
Docker Compose does not provide an official Red runtime by itself. It launches whichever image you specify, so maintenance practices and support depend on that image’s publisher.
| Decision point | PhasecoreX image | rHomelab image |
|---|---|---|
| Image referenced in the documentation | phasecorex/red-discordbot |
The rHomelab RedBot image (use the current image name from its README) |
| Environment variables documented | TOKEN and PREFIX, with timezone and user-ID variables shown in the Compose example |
Follow the current README’s variable contract |
| Persistent-data location | Container path /data; the example binds ./redbot on the host |
Use the path specified by the image documentation |
| Architecture statement | Documentation says it runs on x86-64 and arm(64) devices, including Raspberry Pi | Verify supported architectures in the current image documentation |
| Update behavior | The README documents updating Red on container restart and offers an optional UpdateNotify cog | Re-read the README before changing tags or update procedures |
| Logging and invitation workflow | Inspect the container logs for startup status and any generated information | The instructions use Compose logs to obtain the invitation URL after startup |
| Red developer support | Neither community image changes Red’s official warning that Docker support is work in progress and not ready for daily use | |
The sample below uses the PhasecoreX image because its documented environment variables and /data path make a compact Compose example possible. If you select another image, do not assume that its variable names, data path, or upgrade process are identical.
Create the Compose project
1. Make a directory for the bot
On the host, create a dedicated directory and enter it. For example:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →mkdir -p ~/redbot
cd ~/redbot
The directory will contain compose.yaml and a subdirectory named redbot that Docker creates or populates as the bind-mounted data location. Keeping these files together makes backups and migrations easier.
2. Add compose.yaml
Save the following as compose.yaml:
services:
redbot:
container_name: redbot
image: phasecorex/red-discordbot
restart: unless-stopped
volumes:
- ./redbot:/data
environment:
- TOKEN=replace_with_your_discord_bot_token
- PREFIX=.
- TZ=UTC
- PUID=1000
This configuration defines one service named redbot. The explicit container name is convenient when using Docker commands, while the service name is what Compose uses in commands such as docker compose logs redbot.
3. Set the required values
TOKEN: Replacereplace_with_your_discord_bot_tokenwith the token generated for your Discord bot.PREFIX: The example uses a period, so commands begin with.. Choose a prefix that does not conflict with other bots in your servers.TZ: The example sets the container timezone to UTC. Change it only if you need logs and scheduled behavior interpreted in another timezone supported by the image.PUID: The example uses user ID1000. The image documents this variable for aligning container file ownership with a host user; use the value appropriate for your host account and the image’s current instructions.
Do not commit a Compose file containing a live token to a public repository. Restrict the file’s permissions if other users share the host, and rotate the token in the Discord Developer Portal immediately if it is exposed. After rotating it, update the Compose configuration and recreate the service so the container receives the new value.
Start Red-DiscordBot with Compose
1. Validate that Docker and Compose are available
Docker Engine and the Compose plugin must be installed on the host. Confirm the installation with:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11docker --version
docker compose version
If either command fails, install Docker Engine and the Compose plugin using the instructions for your host operating system before continuing. Compose is the Docker tool for defining an application stack and managing its lifecycle.
2. Launch the service in the background
From the directory containing compose.yaml, run:
docker compose up -d
The -d option detaches the process so the bot continues running after you close the terminal. Compose pulls the image if it is not already present, creates the container, mounts ./redbot at /data, and starts Red with the environment values from the file.
Rank #2
- All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
- Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
- Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
- Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
- Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
3. Read the startup logs
Logs are the first diagnostic tool and may contain startup messages or an invitation URL. Follow the service logs with:
docker compose logs -f redbot
The rHomelab instructions show docker compose logs RedBot for this purpose. Compose service names are case-sensitive in practice, so use the name declared under services: in your own file. In the example above that name is redbot; if you copied an image’s example with a service named RedBot, use that exact name instead.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesStop following the log stream with Ctrl+C; this does not stop the container. To see whether it is running, use:
docker compose ps
Invite the bot and finish configuration in Discord
Container startup does not automatically place the bot in a server. Use the invitation URL produced by the image’s startup instructions or generate an OAuth2 URL for the bot in the Discord Developer Portal with the permissions your intended commands require.
- Open the invitation URL shown in the startup output, or create the equivalent bot invite in the developer portal.
- Select a Discord server where you have permission to add applications.
- Review the requested permissions before authorizing the bot.
- Return to Discord and confirm that the bot appears online.
- Use the configured prefix,
.in the sample, to issue Red’s setup and help commands.
Red’s project documentation describes normal interaction and configuration as taking place through Discord after installation. If the bot is online but does not respond, verify the prefix, channel permissions, and the container logs before changing the Compose file.
Why the ./redbot:/data mount is essential
A container’s writable layer is tied to that specific container. If the container is removed and recreated, data stored only in that layer disappears. The bind mount in the example maps the host directory ./redbot to the container’s /data path, so Red’s configuration survives routine recreation and image replacement.
Do not delete the host-side redbot directory when troubleshooting unless you intentionally want to reset the installation. Removing it can erase the bot’s configuration, installed cogs, and other data written there by the image.
Back up the data directory
Stop writes briefly, create an archive of the mounted directory, and store that archive somewhere separate from the Docker host:
Rank #3
- powful cputhe cpu of the raspberry pi 4 model b adopts the latest arm cortex-a72 architecture, which is also used in high-performance smartphones, and has evolved into a real pc.the operating clock has been changed from pi3's 1.2ghz to 1.5ghz, and the speed has become a different dimension with the updated architecture.
- video output/gputhe on-board gpu of the raspberry pi 4 supports 4kp@60 and newly supports h.265 decoding, opengl es 3.0, etc.as for the video output, two micro hdmis with smaller connectors are installed, and the raspberry pi 4 also supports dual screen output.
- usb 3.0with a new soc, the speed of the raspberry pi 4 around i/o has been improved, and finally usb 3.0 is supported.usb boot is faster and more convenient.
- network&bluetoothgigabit ethernet (wired lan) has also been significantly speeded up from 300mbps of pi 3b + to 1000mbps (logical value).in addition, bluetooth supported version has been upgraded to 5.0, and the transfer speed of pi 4 has been doubled.
- power input connectorthe power input connector of the raspberry pi 4 has been changed to usb type c. it is easier to use than micro usb and can supply a larger current reliably.the power requirement of raspberry pi 4 model b is 5v 3.0a, which is higher than the previous model.
docker compose stop redbot
tar -czf redbot-backup-$(date +%Y-%m-%d).tar.gz redbot
docker compose start redbot
Test that you can read the archive and keep more than one dated backup. If your selected image uses a different host path or named volume, back up that location instead; the requirement is to preserve the image’s documented data path, not a particular backup command.
Keep the bot online after reboots
restart: unless-stopped tells Docker to restart the service after routine daemon or host restarts, while still honoring an intentional manual stop. It does not fix a bad token, an incompatible image, a crash loop caused by configuration, or a host that is powered off.
After a reboot, check the service explicitly:
docker compose ps
docker compose logs --tail=100 redbot
If the container is stopped because you previously ran docker compose stop, start it with:
docker compose start redbot
If the project was brought down with docker compose down, recreate it with:
docker compose up -d
Updating the image without losing Red data
Update behavior is image-specific. The PhasecoreX README documents Red updating on restart and describes an optional UpdateNotify cog. That does not mean every image updates in the same way, and it does not remove the need for backups.
- Read the selected image’s current README and note its supported update procedure.
- Back up the host directory mounted at
/data. - Pull the image version you intend to run, if the image documentation calls for a pull:
docker compose pull
- Recreate the service according to the documented procedure. A common Compose sequence is:
docker compose up -d
- Watch the logs and confirm that the bot reconnects and that the existing configuration is present.
Do not change image tags casually. Record the old image reference and keep the backup until the new container has completed startup and responded in Discord. The rHomelab documentation also warns that its deployment method is unsupported by Red developers, so its README should be treated as the authority for that image’s update steps.
Recommended Free Tools
Troubleshoot the common failure modes
The container exits immediately
Inspect the complete service output:
docker compose logs redbot
Check for a missing or malformed TOKEN, an unsupported architecture, a permissions problem on ./redbot, or an image-specific initialization error. Correct one issue at a time, then recreate the service with docker compose up -d.
The bot is online but ignores commands
- Use the prefix configured in
PREFIX; the sample requires commands beginning with.. - Confirm the bot can read messages and send replies in the channel.
- Check that you invited the correct application and that the intended server contains that bot user.
- Read the logs while sending one command so connection or parsing errors appear next to the action.
The bot loses configuration after an update
Verify that the Compose file still contains ./redbot:/data and that the host-side directory is the same one used by the previous container. Inspect the service definition with:
Rank #4
- Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
- Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
- CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
- CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
- CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
docker compose config
If the mount was removed or changed, stop the service, restore the correct mount, and recover the data directory from backup. A new empty directory at the mount path can make a healthy container look like a fresh installation.
Compose cannot find the service in a logs command
Use docker compose config --services to list the exact service names. Then pass that spelling to docker compose logs. The sample declares redbot; an image guide may use RedBot instead.
The image will not run on a Raspberry Pi
Confirm the Pi’s architecture and the image’s published architectures. PhasecoreX documents x86-64 and ARM64 support, including Raspberry Pi, but compatibility is image-specific. A 32-bit operating system, an ARM variant not covered by the image, insufficient storage, or an outdated Docker installation can still prevent startup. Use the image’s architecture documentation and the logs to distinguish an unsupported image from a configuration error.
Running Red on a Raspberry Pi
A Raspberry Pi can be a low-power, always-on host when the chosen image supports its architecture and the device has adequate storage, memory, cooling, and network reliability. The PhasecoreX statement that it runs on arm(64) devices, including Raspberry Pi, supports that use case for that image; it is not a guarantee for all Red images.
- Use a current 64-bit operating system when the image requires ARM64.
- Prefer reliable external storage for the Docker data directory rather than relying on a heavily worn boot medium.
- Keep the Pi connected to stable power and configure the host to restart Docker after a power interruption.
- Monitor disk usage because logs and bot data accumulate over time.
- Make the same
/databackup you would make on an x86-64 server.
Before buying or repurposing a Pi, check the exact model, operating-system architecture, Docker support, and current image documentation. The architecture claim is evidence that the image can target ARM64; it is not a performance guarantee for every workload or cog.
Security and operational checklist
- Keep the Discord token out of public repositories, screenshots, issue reports, and shell history where possible.
- Limit access to
compose.yamland the mounted data directory on a multi-user host. - Back up the host-side data directory before updates, migrations, or major configuration changes.
- Use
restart: unless-stoppedfor automatic recovery from routine restarts, but still inspect logs after a reboot. - Pin and document the image reference you deploy, then re-read its README before changing tags.
- Keep Docker Engine, the Compose plugin, and the host operating system maintained according to their distribution’s guidance.
- Test a restore from a backup instead of assuming that an archive is usable.
- Remember that community images are not covered by Red’s official Docker support; investigate image-specific issues with the image documentation and maintainers.
When Docker Compose is the wrong choice
Compose is convenient when you already operate Docker and want a reproducible service definition. It may be a poor fit if you need a deployment method covered by Red’s official support, cannot maintain a community image, or cannot provide persistent storage and regular backups. Red’s own hosting information explicitly describes Docker support found in GitHub as work in progress and not ready for daily use. In those situations, consider a hosting method documented as supported by the Red project rather than treating this Compose setup as an officially endorsed installation.
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 →Complete command sequence
For the sample project, the essential sequence is:
mkdir -p ~/redbot
cd ~/redbot
# create compose.yaml and replace the TOKEN value
docker compose up -d
docker compose ps
docker compose logs -f redbot
Once the invitation URL has been used and the bot responds in Discord, leave the project directory and its mounted redbot data in place. Future restarts use docker compose up -d; maintenance and recovery begin with a backup and the service logs.
Bottom line
The practical Compose recipe is small: define the community image, provide TOKEN and PREFIX, mount persistent data at /data, set restart: unless-stopped, and start with docker compose up -d. The operational details matter more than the YAML: protect the token, back up the host directory, read logs when startup fails, and verify architecture support—especially on Raspberry Pi. Because Red currently labels Docker support as work in progress, identify the exact image you deploy and treat its README as part of the installation.
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.




