An easy-to-use container image for a Red Eclipse Server.
dev,master- Source Commit
The development branch.latest,2.0.0- Source Commitstable- Source Commit
The latest legacy version (stable branch).1.6-impulse- Source Commit
The latest version with the 1.6. impulse system.1.6.0- Source Commit1.5.8- Source Commit1.5.6- Source Commit1.5.5- Source Commit1.5.3- Source Commit1.5.2- Source Commit
Bundles 1.5.3 maps, as the 1.5.2 maps are no longer available.1.5.1- Source Commit
Bundles 1.5.3 maps, as the 1.5.1 maps are no longer available.1.5.0- Source Commit
Bundles 1.5.3 maps, as the 1.5.0 maps are no longer available.1.4.0- Source Commit1.3.1- Source Commit1.2.0- Source Commit1.1.0- Source Commit1.0.0- Source Commit
-
Registries:
GitHub Container Registry (recommended):ghcr.io/iceflower/redeclipse-server
Docker Hub:docker.io/iceflower/redeclipse-server -
Built architectures:
amd64,arm64v8 -
Where to file issues:
https://github.com/IceflowRE/redeclipse-server-image/issues
Using Docker Compose is the easiest way to manage your Red Eclipse server container.
- Create a file named
compose.yaml. You can copy the template below or use the provided compose-template.yaml. - Replace all
<variable_placeholders>(including the angle brackets) with your actual settings.
services:
# <service_name>: The identifier used to manage this service (e.g., myserver, master, re_2_0)
<service_name>:
# <tag>: The image tag you want to use (e.g., master, latest, 2.0.0)
image: ghcr.io/iceflower/redeclipse-server:<tag>
ports:
# <serverport>: Must match the port defined in Red Eclipse's servinit.cfg
- "28801:28801/udp"
# <serverport + 1>: The server port plus one (e.g., if serverport is 28801, use 28802)
- "28802:28802/udp"
restart: unless-stopped
volumes:
# <home_dir>: Path to the RE home/config directory on your host system (e.g., /home/iceflower/re-master/home)
- <home_dir>:/re-server-config/home:ro
# <package_dir>: Optional path to your local package directory for custom maps. Remove this section if not needed.
- <package_dir>:/re-server-config/package:ro
# <sauerbraten_dir>: Only required for legacy versions (< 2.0.0). Remove this block if using v2.0.0 or master.
- <sauerbraten_dir>:/re-server-config/sauer:roTo pull/start/stop a specific service add the service name to the end (docker compose pull myserver) otherwise all services will be affected.
-
Pull the latest docker image from Docker Hub for all defined services
docker compose pull -
Start/ Restart container
docker compose up -d -
Shutdown and wait a maximum of 10 minutes before forcing it
docker compose stop --time=600
Copy and paste the whole service section above and change the values (service name, port, home directory, etc.)
If an image is not natively available for your architecture, first verify if Red Eclipse can be compiled on your target platform. If it can, follow these steps:
- Copy the appropriate
Dockerfile_X_X_Xfile corresponding to your version from this repository and place it next to yourcompose.yaml:
| Version Range | Dockerfile |
|---|---|
2.0.0 - master |
Dockerfile_2_0_0 |
1.5.3 - stable |
Dockerfile_1_5_3 |
1.5.0 - 1.5.3 |
Dockerfile_1_5_0 |
1.4.0 |
Dockerfile_1_4_0 |
1.0.0 - 1.3.1 |
Dockerfile_1_0_0 |
-
Create a file named
.dockerignorenext to theDockerfilewith the content**. -
Edit your
compose.yamland replace theimage: ...part in the service you want to build with
build:
# <dockerfile>: name of the dockerfile, usable for the chosen reference below
dockerfile: <dockerfile>
args:
# <reference>: can be any git reference (branch name, tag, SHA) (e.g. master, 2.0.0, ...)
RE_REF: <reference>- Use
docker compose buildto build the custom image.
Note
Depending on your specific host environment, minor modifications to the Dockerfile instructions may be necessary to complete the build successfully.
- Create a script named
update-server.shnext to yourcompose.yaml
#!/bin/bash -e
# Adjust this path to match your deployment directory
cd /home/iceflower/re/
docker compose stop -t 600
# Uncomment next line if using a custom local architecture build
# docker compose build
docker compose pull
docker compose up -d- Make the script executable:
chmod +x update-server.sh- Configure a cron job (
crontab -e) to execute the updates on a schedule. For example, to run every day at 03:00:
0 3 * * * /home/iceflower/re/update-server.sh > /home/iceflower/re/cron.log 2>&1The repository include a small tool to check for updates and get the image digest and support the image creation in the CI.
Building:
cd go-image-updater
go build -x -o updater ./cmd/updater/For usage options see --help.
Copyright 2017-present Iceflower S
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Red Eclipse is licensed under THE RED ECLIPSE LICENSE. Red Eclipse game binary and map assets are bundled directly during container provisioning and are independent properties of their respective authors.