Skip to content

Arclight

A Bukkit server implementation on common mod loaders.

egg-arclight.json

updated

Ports

Add an allocation on the node for each port.

  • Game 25565

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Install script
124 lines

Images

New servers use the first image. Users can change it on the Startup page.

  • Java 8 default ghcr.io/ptero-eggs/yolks:java_8
  • Java 11 ghcr.io/ptero-eggs/yolks:java_11
  • Java 16 ghcr.io/ptero-eggs/yolks:java_16
  • Java 17 ghcr.io/ptero-eggs/yolks:java_17
  • Java 19 ghcr.io/ptero-eggs/yolks:java_19
  • Java 21 ghcr.io/ptero-eggs/yolks:java_21
  • Java 22 ghcr.io/ptero-eggs/yolks:java_22
  • Java 25 ghcr.io/ptero-eggs/yolks:java_25

Panel features

  • eula

    The Panel asks the user to accept the Minecraft EULA when the server needs it.

  • java_version

    The Panel lets the user change the Java version when the server needs a different one.

  • pid_limit

    The Panel tells the user when the server reaches its process or memory limit.

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

5 variables

Startup command

java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar server.jar nogui
  • Name of the server JAR file that will be created (e.g. server.jar).

    SERVER_JARFILEUsers can edit

    required|string|max:20

  • The version of Minecraft to download.

    MINECRAFT_VERSIONUsers can edit

    required|string|max:20

  • Optional custom download URL. Leave empty to use the Arclight API.

    DOWNLOAD_URLUsers cannot see

    nullable|string

  • Select the Arclight build channel (e.g. stable, beta). Use 'auto' to use the most recent one.

    ARCLIGHT_CHANNELUsers can edit

    required|string|in:stable,beta,auto

  • Select the mod loader you want to use (forge, neoforge, fabric).

    ARCLIGHT_LOADERUsers can edit

    required|string|in:forge,neoforge,fabric

Wings

Stop command
stop
Running when the console shows
)! For help, type

Files Wings edits

Wings sets these values in these files before each start.

server.properties properties

server-ip
0.0.0.0
server-port
{{server.build.default.port}}

Readme

Arclight

A Bukkit server implementation on common mod loaders.

Check out the Github for more information.

Server Ports

The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.

Port default
Game 25565

Changes

  1. Adding java 25 to most minecraft eggs

    · Red-Banana-Official · fb0c032

  2. Add: Arclight

    · chredeur · 3b976a2

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 124 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash
# Arclight Installation Script
#
# Server Files: /mnt/server
cd /mnt/server

BASE_API_URL="https://files.hypoglycemia.icu/v1/files/arclight"

if [ -n "${DOWNLOAD_URL}" ]; then
    echo "Using custom download URL: ${DOWNLOAD_URL}"
else
    echo "Fetching available Minecraft versions for Arclight..."
    ARCLIGHT_VERSION=$(curl -s "${BASE_API_URL}/minecraft" | jq -r '.files[].name' | sort -Vr)
    if [ -z "$ARCLIGHT_VERSION" ] || [ "$ARCLIGHT_VERSION" == "null" ]; then
        echo "Error: Could not fetch version list from API."
        exit 1
    fi
    if [ "$MINECRAFT_VERSION" == "auto" ]; then
        MINECRAFT_VERSION=$(echo "$ARCLIGHT_VERSION" | head -n 1)
        echo "Auto-selected Minecraft version: ${MINECRAFT_VERSION}"
    else
        VERSION_EXISTS=$(echo "$ARCLIGHT_VERSION" | grep -Fx "$MINECRAFT_VERSION")
        if [ -z "$VERSION_EXISTS" ]; then
            echo "Warning: Specified version '${MINECRAFT_VERSION}' not found. Falling back to the latest available version."
            MINECRAFT_VERSION=$(echo "$ARCLIGHT_VERSION" | head -n 1)
            echo "Fallback version: ${MINECRAFT_VERSION}"
        fi
    fi

    echo "Fetching available loaders for version ${MINECRAFT_VERSION}..."
    LOADER_LIST=$(curl -s "${BASE_API_URL}/minecraft/${MINECRAFT_VERSION}/loaders" | jq -r '.files[].name')
    if [ -z "$LOADER_LIST" ] || [ "$LOADER_LIST" == "null" ]; then
        echo "Error: Could not fetch loader list from API."
        exit 1
    fi
    LOADER_EXISTS=$(echo "$LOADER_LIST" | grep -Fx "$ARCLIGHT_LOADER")
    if [ -z "$LOADER_EXISTS" ]; then
        echo "Warning: Specified loader '${ARCLIGHT_LOADER}' not found for version ${MINECRAFT_VERSION}"
        exit 1
    fi

    echo "Fetching available channels for version ${MINECRAFT_VERSION} and loader ${ARCLIGHT_LOADER}..."
    CHANNEL_LIST=$(curl -s "${BASE_API_URL}/minecraft/${MINECRAFT_VERSION}/loaders/${ARCLIGHT_LOADER}")
    CHANNEL_LIST_NAME=$(echo "$CHANNEL_LIST" | jq -r '.files[].name')
    if [ "$ARCLIGHT_CHANNEL" == "auto" ]; then
        echo "Selecting preferred channel for loader ${ARCLIGHT_LOADER} ${MINECRAFT_VERSION}..."
        ARCLIGHT_CHANNEL=$(echo "$CHANNEL_LIST_NAME" | grep -E 'latest-stable|version-stable|latest-snapshot|version-snapshot' | \
            grep -x 'latest-stable' || \
            echo "$CHANNEL_LIST_NAME" | grep -x 'version-stable' || \
            echo "$CHANNEL_LIST_NAME" | grep -x 'latest-snapshot' || \
            echo "$CHANNEL_LIST_NAME" | grep -x 'version-snapshot' | head -n 1)
    
        if [ -z "$ARCLIGHT_CHANNEL" ]; then
            echo "No preferred channel found. Falling back to last in list."
            ARCLIGHT_CHANNEL=$(echo "$CHANNEL_LIST_NAME" | tail -n 1)
        fi

        CHANNEL_TYPE=$(echo "$CHANNEL_LIST" | jq -r ".files[] | select(.name==\"${ARCLIGHT_CHANNEL}\") | .type")
        echo "Auto-selected channel: ${ARCLIGHT_CHANNEL}"
    else
        if [ "$ARCLIGHT_CHANNEL" == "beta" ]; then
            CHANNELS=("latest-snapshot" "versions-snapshot")
        elif [ "$ARCLIGHT_CHANNEL" == "stable" ]; then
            CHANNELS=("latest-stable" "versions-stable")
        fi
        
        for CHANNEL in "${CHANNELS[@]}"; do
            if echo "$CHANNEL_LIST_NAME" | grep -q "$CHANNEL"; then
                ARCLIGHT_CHANNEL="$CHANNEL"
                break
            fi
        done
        
        if [ -z "$ARCLIGHT_CHANNEL" ]; then
            echo "Warning: Specified channel '${ARCLIGHT_CHANNEL}' not found for loader ${ARCLIGHT_LOADER} and Minecraft version ${MINECRAFT_VERSION}. Falling back to default channel."
    
            ARCLIGHT_CHANNEL=$(echo "$CHANNEL_LIST_NAME" | grep -E 'latest-stable|version-stable|latest-snapshot|version-snapshot' | \
                grep -x 'latest-stable' || \
                echo "$CHANNEL_LIST_NAME" | grep -x 'version-stable' || \
                echo "$CHANNEL_LIST_NAME" | grep -x 'latest-snapshot' || \
                echo "$CHANNEL_LIST_NAME" | grep -x 'version-snapshot' | head -n 1)
    
            if [ -z "$ARCLIGHT_CHANNEL" ]; then
                ARCLIGHT_CHANNEL=$(echo "$CHANNEL_LIST_NAME" | tail -n 1)
            fi
    
            echo "Fallback channel: ${ARCLIGHT_CHANNEL}"
        fi

        CHANNEL_TYPE=$(echo "$CHANNEL_LIST" | jq -r ".files[] | select(.name==\"${ARCLIGHT_CHANNEL}\") | .type")
    fi

    echo "Fetching builds for ${ARCLIGHT_LOADER}-${MINECRAFT_VERSION}-${ARCLIGHT_CHANNEL}..."
    if [ -z "$CHANNEL_TYPE" ] || [ "$CHANNEL_TYPE" == "null" ] || [ "$CHANNEL_TYPE" == "link" ]; then
        BUILD_NAME=${ARCLIGHT_CHANNEL}
        DOWNLOAD_URL="${BASE_API_URL}/minecraft/${MINECRAFT_VERSION}/loaders/${ARCLIGHT_LOADER}/${ARCLIGHT_CHANNEL}"
    elif [ "$CHANNEL_TYPE" == "directory" ]; then
        BUILD=$(curl -s "${BASE_API_URL}/minecraft/${MINECRAFT_VERSION}/loaders/${ARCLIGHT_LOADER}/${ARCLIGHT_CHANNEL}" | jq -r '.files[0]')
        BUILD_NAME=$(echo "${BUILD}" | jq -r '.name')
        DOWNLOAD_URL="${BASE_API_URL}/minecraft/${MINECRAFT_VERSION}/loaders/${ARCLIGHT_LOADER}/${ARCLIGHT_CHANNEL}/${BUILD_NAME}"
    else
        echo "Error: Unknown channel type. Exiting."
        exit 1
    fi


    echo "Selected build: ${BUILD_NAME}"
fi

echo "Downloading Arclight from: ${DOWNLOAD_URL}"

if [ -f "${SERVER_JARFILE}" ]; then
    echo "Backing up existing server jar..."
    mv "${SERVER_JARFILE}" "${SERVER_JARFILE}.old"
fi

curl -s -L -o "${SERVER_JARFILE}" "${DOWNLOAD_URL}"

if [ $? -ne 0 ]; then
    echo "Download failed. Please check the URL or your internet connection."
    exit 1
fi

echo "Download complete. File saved as ${SERVER_JARFILE}"