Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The practical way to run Red-DiscordBot with Docker Compose is to use a documented community image, pass the Discord bot token and command prefix as environment variables, and mount a host directory at the container’s /data path. The mount preserves Red’s configuration when the container is replaced, while restart: unless-stopped lets Docker bring the service back after routine host or daemon restarts.
This is a community deployment rather than an officially supported Red installation. Red’s hosting documentation currently warns: Docker support found in GitHub is also a work in progress and not ready for daily use. Treat the selected image, its README, and its stated architecture support as part of the installation requirements.
Recommended Free Tools
What you are building
Docker Compose describes the Red service in one YAML file and gives you repeatable commands for starting, stopping, inspecting, and replacing it. The container runs Red-DiscordBot; Compose supplies its environment variables, maps persistent storage, and applies a restart policy.
The example below uses the PhasecoreX community image, whose documentation states that it runs on normal x86-64 servers and ARM64 devices, including Raspberry Pi. Image behavior is image-specific, so the same assumptions should not automatically be applied to another Red image.
- Container image:
phasecorex/red-discordbot - Persistent data: the host directory
./redbotmounted at/data - Required settings: the Discord token in
TOKENand the command prefix inPREFIX - Availability:
restart: unless-stoppedrequests automatic recovery after ordinary restarts
Requirements and decisions before installation
A supported Docker host
Install Docker Engine and the Docker Compose plugin on the machine that will run the bot. Docker describes Compose as the tool for defining and running application stacks and managing their lifecycle. Use a host whose operating-system architecture is supported by the image you select.
A Discord application and bot token
Create or use a Discord application in the Discord developer portal, add its bot account, and copy the generated token. The token is a credential, not a channel password: anyone who obtains it may be able to control the bot. Do not publish it in a repository, paste it into an issue, or include it in screenshots.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
A persistent storage location
Decide where the host will keep Red’s files. The example uses a directory named redbot beside compose.yaml. You must back up this directory, because it contains the data that should survive container replacement.
An image and a support expectation
Read the current README for the exact image before deploying. Check its environment-variable names, data path, supported architectures, logging instructions, and update procedure. Red’s own documentation does not present Docker as ready for daily use, and unsupported platforms may not receive support when problems occur.
Create the Compose project
1. Make a dedicated directory
Create a directory for the bot and change into it. Keeping the Compose file and its relative data directory together makes the bind mount easy to understand and back up.
mkdir redbot-compose
cd redbot-compose
The commands above create only the project location; the container and its data are created when Compose starts.
2. Create compose.yaml
Put this configuration in a file named compose.yaml:
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
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
3. Understand each setting
| Setting | Purpose | What to change |
|---|---|---|
services.redbot |
Defines the single Compose service for Red. | Keep the service name unless you also change commands that address it. |
container_name: redbot |
Gives the container a predictable name. | Change only if another container already uses that name. |
image: phasecorex/red-discordbot |
Selects the PhasecoreX community image. | Use the exact image and tag documented for the release you intend to run. No tag is specified in this example. |
restart: unless-stopped |
Allows Docker to start the service again after routine restarts, while respecting an intentional stop. | Usually leave it enabled for an always-on bot. |
./redbot:/data |
Maps a host directory to the image’s data directory. | Change the host side only if you want another backup location; preserve the container path required by the image. |
TOKEN |
Supplies the Discord bot token. | Replace the placeholder with the real token and keep the file private. |
PREFIX |
Sets the command prefix Red will recognize. | Use another prefix if your server’s commands require one. |
TZ |
Sets the timezone value used by the image. | Keep UTC or use the value supported by the image documentation. |
PUID |
Passes the user-ID value expected by this image. | 1000 is the documented example value; change it only when the image instructions and your host permissions call for a different value. |
The environment-variable names are part of the image contract. Renaming TOKEN to a personal label, or changing /data to an arbitrary path, can leave the container unable to start or unable to find its configuration.
Put the token in place safely
Edit the TOKEN line and replace only the placeholder:
- TOKEN=your_actual_discord_bot_token
Do not add the token to a public Git repository. If the Compose project must be shared, remove the credential first and provide it through a private deployment process. The supplied image documentation identifies TOKEN as the bot token and PREFIX as the command prefix, so those names must remain unchanged.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteAfter saving the file, restrict access to the project directory according to the account that operates Docker. The important operational rule is simple: treat compose.yaml as secret-bearing configuration because the token is written there.
Start Red and obtain the invitation URL
1. Start in detached mode
From the directory containing compose.yaml, run:
docker compose up -d
The -d option leaves the service running in the background. Compose creates the container and the host-side redbot directory if it does not already exist.
2. Read the startup logs
Logs are the first troubleshooting tool and, for the rHomelab image instructions, the place to find the invitation URL after startup:
docker compose logs RedBot
Service names are case-sensitive in Compose commands. The configuration shown here defines the service as redbot; if your selected image’s instructions use RedBot, follow that project’s exact service name and logging command. If the command reports that no such service exists, run it from the directory containing the correct Compose file and use the service name under services:.
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.
3. Invite the bot
Copy the invitation URL printed by the image’s startup process, open it in a browser, choose the intended server, and complete Discord’s authorization flow. Red’s project documentation says normal bot interaction and configuration occur through Discord after installation. The container can be running while the bot is still absent from a server; authorization is a separate step.
Why the /data bind mount matters
A container has a writable layer, but data stored only there does not survive removal and replacement of that container. The mapping ./redbot:/data moves Red’s persistent files onto the host, where they remain available when Compose recreates the container with the same mount.
What persistence protects
- Red’s configuration stored by the selected image under
/data - Settings created through Discord after the bot is invited
- Any other image-managed state written beneath the mounted path
What persistence does not protect
- The token if you delete or overwrite the Compose file without another copy
- Data written outside the mounted path
- A backup that was never copied away from the host
Back up the host directory
Stop making changes to the bot while you take a consistent copy, then back up the entire redbot directory and the Compose file through your normal host backup process. Keep at least one copy separate from the Docker host. A backup is useful only if you know which directory it represents and can restore it before starting a replacement container.
Restore after a damaged container
- Place the saved
compose.yamland the backed-upredbotdirectory in the project location. - Verify that the
TOKEN,PREFIX, image name, and mount still match the image documentation. - Run
docker compose up -dfrom that directory. - Inspect the service logs and then check the bot in Discord.
Keeping the bot online after a reboot
restart: unless-stopped tells Docker to attempt to bring the service back after routine host or Docker-daemon restarts. It also preserves an intentional administrative stop: if you deliberately stop the service, the policy does not treat that stop as a request to keep relaunching it.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →This policy is not a substitute for monitoring. If the process repeatedly exits because the token is invalid, the image cannot run on the host architecture, or a required setting is wrong, Docker can keep attempting restarts while the bot remains unavailable. Check the logs before changing the restart policy.
Logs-first troubleshooting
| Symptom | Likely check | Safe next action |
|---|---|---|
| The container starts and exits | Read the complete Compose logs for configuration, token, or image errors. | Correct the reported setting in compose.yaml, then run docker compose up -d again. |
| The bot never appears online | Confirm that the token was copied into TOKEN without the placeholder and inspect logs. |
Replace an invalid or revoked token in the private Compose file and start the service again. |
| The bot runs but forgets configuration after replacement | Check that ./redbot:/data is present and that you are using the same host directory. |
Restore the backed-up redbot directory before recreating the container. |
| No invitation URL is visible | Inspect startup logs using the command documented by the chosen image. | Use the service name defined in your Compose file; the rHomelab instructions specifically use docker compose logs RedBot. |
| The image will not run on the host | Compare the host architecture with the image’s published support statement. | Use a compatible host or select an image that explicitly supports your architecture. |
Files in ./redbot have unusable ownership |
Review the image’s PUID guidance and the value used in Compose. |
Set the documented user-ID value for your host and image, then restart through Compose. |
Capture logs before deleting a failed container. The error message often distinguishes a bad credential from an architecture mismatch or a path/permission problem, and deleting the container without preserving the mounted directory can make diagnosis harder.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Updating a community image deliberately
Do not assume every Red image updates in the same way. The PhasecoreX README documents Red updating on restart and offers an optional UpdateNotify cog. The rHomelab image documentation uses a different deployment description and warns that its method is unsupported by Red developers.
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)
- Read the current README for the exact image and tag in your Compose file.
- Check whether that image updates Red automatically on restart or requires a documented action.
- Back up the host directory mounted at
/data. - Apply the image’s documented update procedure.
- Start the service with
docker compose up -dand inspect logs for migration or startup errors. - Test the bot in Discord before treating the update as complete.
If you change image names or tags, record the change alongside your backup. Reproducibility depends on knowing which image produced the data in ./redbot.
Choosing between documented community images
The following comparison uses only behaviors stated in the available image documentation. Neither image should be described as officially endorsed by Red.
| Comparison point | PhasecoreX image | rHomelab image |
|---|---|---|
| Image identifier shown in the example | phasecorex/red-discordbot |
Not stated |
| Architecture statement | Normal x86-64 servers and ARM64 devices, including Raspberry Pi | Not stated |
| Environment contract | Documents TOKEN and PREFIX; the example also sets TZ and PUID |
Not stated in the supplied instructions |
| Persistent-data path | The example maps the host directory to /data |
Use the path documented by that image; not stated here |
| Update behavior | README documents Red updating on restart and an optional UpdateNotify cog | Read its current README before changing the deployment |
| Logging and invitation workflow | Follow the image’s current startup output | Instructions use docker compose up -d and inspect docker compose logs RedBot for the invitation URL |
| Red developer support | Community image; Red’s Docker warning still applies | Deployment method is warned to be unsupported by Red developers |
For any image, write down the exact identifier, tag, mount path, environment variables, and log command you used. Those details are more useful for recovery than a generic statement that the bot runs in Docker.
Can you run Red on a Raspberry Pi?
The PhasecoreX image says it runs on ARM64 devices, including Raspberry Pi, as well as x86-64 servers. That makes a compatible Raspberry Pi a plausible low-power, always-on host when the model, operating system, Docker installation, storage, and workload match the image requirements.
This is an image-specific compatibility statement, not a guarantee that every Red container image supports every Raspberry Pi. Before moving the project, verify all of the following:
- The Pi and operating system provide the ARM64 environment required by the selected image.
- Docker Engine and the Compose plugin are available on that host.
- The image README explicitly lists the architecture you intend to use.
- The
redbotdata directory is copied intact and mounted at the path expected by the image. - The bot token remains private during the migration.
After copying the project, run docker compose up -d, inspect the logs, and verify the bot in Discord. If the image lacks ARM64 support, changing only the Compose file will not make it compatible; choose an image whose documentation covers the Pi architecture or use an x86-64 host.
Security and operational checklist
- Keep the Discord token out of public repositories, tickets, screenshots, and chat messages.
- Back up the mounted host directory and the Compose file before updates or migrations.
- Use the exact environment-variable names and data path required by the selected image.
- Record the image identifier and tag so a replacement container can be reproduced.
- Use logs before deleting or rebuilding a failing container.
- Remember that a restart policy improves availability but cannot repair an invalid token, unsupported architecture, or incorrect configuration.
- Read the image README again when its update instructions or environment contract changes.
What to expect from this deployment
With the sample Compose file, Docker creates one Red service, stores its persistent files in ./redbot, and supplies the token and prefix through the environment. Starting with docker compose up -d, checking the startup logs for the invitation URL, and completing authorization in Discord are the core installation sequence.
The trade-off is supportability: this is a practical community workaround, while Red’s official hosting information says Docker support is still work in progress and not ready for daily use. Keep the deployment reproducible, back up /data, and treat architecture and image documentation as mandatory rather than optional.
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.
Free tools Windows power users keep installed
One-click scans. No signup required.

