diff --git a/.gitea/workflows/pipeline.yml b/.gitea/workflows/pipeline.yml index 06abe66..ff33746 100644 --- a/.gitea/workflows/pipeline.yml +++ b/.gitea/workflows/pipeline.yml @@ -21,7 +21,7 @@ env: IMAGE_REPO_MINECRAFT: minecraft IMAGE_TAG_DEBIAN: bookworm DIGEST_FILE: .cache/debian-base.digest - VERSIONS: testing vanilla fabric neoforged forge bukkit + VERSIONS: testing vanilla fabric neoforged forge bukkit quilt jobs: docker-prune: @@ -145,7 +145,7 @@ jobs: needs.poll-debian-base-and-detect-changes.outputs.new_versions != '' strategy: matrix: - version: [testing, vanilla, fabric, neoforged, forge, bukkit] + version: [testing, vanilla, fabric, neoforged, forge, bukkit, quilt] name: Build and Push ${{ matrix.version }} steps: - name: Checkout repo diff --git a/quilt/CHANGES.md b/quilt/CHANGES.md new file mode 100644 index 0000000..cd83856 --- /dev/null +++ b/quilt/CHANGES.md @@ -0,0 +1,5 @@ +## 2025-12-21T13:25:27Z + +- Update base digest to gitea.fithwum.tech/fithwum/debian-base@sha256:db0eabfda290d0262bc49f917fdd05fa9677f87e6c1692afb86d01c2fd6613d4 (fithwum) +- build test (fithwum) +- build test (fithwum) diff --git a/quilt/Dockerfile b/quilt/Dockerfile new file mode 100644 index 0000000..7115d18 --- /dev/null +++ b/quilt/Dockerfile @@ -0,0 +1,41 @@ +FROM gitea.fithwum.tech/fithwum/debian-base:bookworm +LABEL maintainer="fithwum" + +ENV ACCEPT_EULA="" +ENV GAME_PORT="" +ENV MC_VERSION="" +ENV QUILT_VERSION="" +ENV XMX_SIZE="" +ENV XMS_SIZE="" +ENV XMN_SIZE="" + +# URL's for files +ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/quilt/Install_Script.sh + +# Install java-17 & Dependencies. +RUN apt-get -y update && apt-get -y autoclean && apt-get -y autoremove \ + && apt-get install -y wget +RUN wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && dpkg -i packages-microsoft-prod.deb +RUN apt-get -y update && apt-get -y --fix-broken install \ + && apt-get install -y --no-install-recommends msopenjdk-21 bzip2 lsb-release screen jq \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates -f; + +# Folder creation. +RUN mkdir -p /MCserver /MCtemp \ + && chmod 777 -R /MCserver /MCtemp \ + && chown 99:100 -R /MCserver /MCtemp \ + && cd /MCserver + +ADD "$INSTALL_SCRIPT" /MCtemp +RUN chmod +x /MCtemp/Install_Script.sh + +# Directory where data is stored +VOLUME /MCserver + +# 25565 Default. +EXPOSE 25565/udp 25565/tcp + +# Run command +CMD [ "/bin/bash", "./MCtemp/Install_Script.sh" ] diff --git a/quilt/Install_Script.sh b/quilt/Install_Script.sh new file mode 100644 index 0000000..96fb123 --- /dev/null +++ b/quilt/Install_Script.sh @@ -0,0 +1,104 @@ +#!/bin/bash +# Copyright (c) 2022 fithwum +# All rights reserved + +MC_DIR=/MCserver +EULA_FILE=$MC_DIR/eula.txt +EULA_MARKER=$MC_DIR/.eula_accepted + +# Main Install Links +https://quiltmc.org/api/v1/download-latest-installer/java-universal +INSTALLER_FILE=https://quiltmc.org/api/v1/download-latest-installer/java-universal +MC_RUN_FILE=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/neoforged/run.sh + +# Main install (Debian). +# Check for server files and download if needed. +if [ -e $MC_DIR/quilt-installer-$QUILT_VERSION.jar ] + then + echo " " + echo "INFO ! quilt-installer-$QUILT_VERSION.jar found starting now." + else + echo " " + echo "WARNING ! quilt-installer-$QUILT_VERSION.jar is out of date/missing ... will download now." + echo " " + echo "INFO ! Cleaning old files." + cd $MC_DIR + mkdir -p /old-server-versions/ + mv quilt-installer-*.jar old-server-versions/ + mv /libraries /libraries_OLD + mv /libraries_OLD old-server-versions/ + wget --no-cache --show-progress --progress=bar:force:noscroll $INSTALLER_FILE -O quilt-installer-$QUILT_VERSION.jar + chmod +x quilt-installer-$QUILT_VERSION.jar + java -jar quilt-installer-$QUILT_VERSION.jar install server $MC_VERSION --download-server + cd server + mv * /$MC_DIR + cd .. + rm -fr server + cd .. +fi + +# Looking for run.sh +if [ -e $MC_DIR/run-$MC_VERSION.sh ] + then + echo " " + echo "INFO ! run-$MC_VERSION.sh found ... will use existing file." + else + echo " " + echo "WARNING ! run-$MC_VERSION.sh is out of date/missing ... will download now." + mv $MC_DIR/run-*.sh $MC_DIR/old-server-versions/ + wget --no-cache --show-progress --progress=bar:force:noscroll $MC_RUN_FILE -O $MC_DIR/run-$MC_VERSION-$QUILT_VERSION.sh + chmod +x $MC_DIR/run-$MC_VERSION-$QUILT_VERSION.sh +fi + +echo "INFO ! Setting game port." +if [ -f $MC_DIR/server.properties ]; then + sed -i '/server-port='*'/c\server-port='$GAME_PORT'' $MC_DIR/server.properties +fi + +echo "INFO ! Setting java settings." +cat > $MC_DIR/user_jvm_args.txt <> $MC_DIR/user_jvm_args.txt + +# Wait briefly for installer/server to generate eula.txt +if [ ! -f "$EULA_FILE" ] && [ ! -f "$EULA_MARKER" ]; then + echo "INFO ! Waiting for EULA generation..." + sleep 5 +fi + +# If EULA already accepted once, never touch it again +if [ -f "$EULA_MARKER" ]; then + echo "INFO ! EULA previously accepted" + return 0 2>/dev/null || true +fi + +# First-time decision +if [ "$ACCEPT_EULA" = "true" ]; then + echo "INFO ! Accepting EULA (one-time)" + sed -i 's/eula=false/eula=true/' "$EULA_FILE" 2>/dev/null \ + || echo "eula=true" > "$EULA_FILE" + touch "$EULA_MARKER" +elif [ "$ACCEPT_EULA" = "false" ]; then + echo "WARNING ! EULA not accepted on first run" + echo "WARNING ! Set ACCEPT_EULA=true to proceed" + sleep infinity +else + echo "ERROR ! ACCEPT_EULA must be set to true or false on first run" + sleep infinity +fi + +# Set permissions. +chown 99:100 -R $MC_DIR +chmod 777 -R $MC_DIR + +sleep 1 + +# Run Minecraft server. +echo " " +echo "INFO ! Starting Minecraft Server $MC_VERSION-$QUILT_VERSION" +cd $MC_DIR +exec ./run-$MC_VERSION-$QUILT_VERSION.sh nogui + +exit \ No newline at end of file diff --git a/quilt/build-info.json b/quilt/build-info.json new file mode 100644 index 0000000..065fa2c --- /dev/null +++ b/quilt/build-info.json @@ -0,0 +1,9 @@ +{ + "version": "forge", + "commit": "a07704614c4475145e3bd1f2a62ad19747e5fb31", + "build_time": "2025-12-21T13:27:48Z", + "image_tag": "gitea.fithwum.tech/fithwum/minecraft:forge", + "digest": "gitea.fithwum.tech/fithwum/minecraft@sha256:f34264b6d8d2a1333e2b8a8f395798638bcd8398ffd5e176d31fbf7024c7895e", + "image_size": "1GB", + "image_size_bytes": 1129404705 +}