Arclight
A Bukkit server implementation on common mod loaders.
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 noguiName 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
- Adding java 25 to most minecraft eggs
· Red-Banana-Official · fb0c032
- Add: Arclight
· chredeur · 3b976a2
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 Hide
#!/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}"