Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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 ./redbot mounted at /data
  • Required settings: the Discord token in TOKEN and the command prefix in PREFIX
  • Availability: restart: unless-stopped requests 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Create compose.yaml

Put this configuration in a file named compose.yaml:

Rank #2
SANOOV Raspberry Pi 5 4GB Kit, 4GB RAM Single Board Computer with Active Cooler and ABS Case, Complete Raspberry Pi 5 Starter Kit for IoT Robotics Retro Gaming
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

After 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:.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Raspberry Pi 4 Computer Model B 8GB Single Board Computer Suitable for Building Mini PC/Smart Robot/Game Console/Workstation/Media Center/Etc.
  • 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

  1. Place the saved compose.yaml and the backed-up redbot directory in the project location.
  2. Verify that the TOKEN, PREFIX, image name, and mount still match the image documentation.
  3. Run docker compose up -d from that directory.
  4. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.Support on Ko-Fi

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
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • 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)
  1. Read the current README for the exact image and tag in your Compose file.
  2. Check whether that image updates Red automatically on restart or requires a documented action.
  3. Back up the host directory mounted at /data.
  4. Apply the image’s documented update procedure.
  5. Start the service with docker compose up -d and inspect logs for migration or startup errors.
  6. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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 redbot data 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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.