Sign inSign up

iceflower/redeclipse-server

By iceflower

•Updated about 23 hours ago

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

Image
1

50K+

iceflower/redeclipse-server repository overview

⁠Red Eclipse Server Image

maintained github actions
GHCR DockerHub GitHub


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

⁠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 RangeDockerfile
2.0.0 - masterDockerfile_2_0_0
1.5.3 - stableDockerfile_1_5_3
1.5.0 - 1.5.3Dockerfile_1_5_0
1.4.0Dockerfile_1_4_0
1.0.0 - 1.3.1Dockerfile_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.

Tag summary

Content type

Image

Digest

sha256:a6754334b…

Size

15.9 MB

Last updated

10 days ago

docker pull iceflower/redeclipse-server