Skip to content

IceflowRE/redeclipse-server-image

Repository files navigation

Red Eclipse Server Image

maintained github actions
GHCR DockerHub GitHub


An easy-to-use container image for a Red Eclipse Server.

Supported tags and respective Dockerfile Links

Quick reference

Usage

Using Docker Compose is the easiest way to manage your Red Eclipse server container.

  1. Create a file named compose.yaml. You can copy the template below or use the provided compose-template.yaml.
  2. 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:ro

To 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

Multiple Server

Copy and paste the whole service section above and change the values (service name, port, home directory, etc.)

An image is not available for my architecture

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:

  1. Copy the appropriate Dockerfile_X_X_X file corresponding to your version from this repository and place it next to your compose.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
  1. Create a file named .dockerignore next to the Dockerfile with the content **.

  2. Edit your compose.yaml and replace the image: ... 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>
  1. Use docker compose build to 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.

Update server automatically

Linux

  1. Create a script named update-server.sh next to your compose.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
  1. Make the script executable:
chmod +x update-server.sh
  1. 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>&1

Image updater

The 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.

License

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.

About

An easy-to-use container image for a Red Eclipse Server.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors