Mindustry

Games
Report Issue

Mindustry is a hybrid tower-defense sandbox factory game. Create elaborate supply chains of conveyor belts to feed ammo into your turrets, produce materials to use for building, and defend your structures from waves of enemies.

Contributors:
README

Mindustry

About the game

Mindustry is a hybrid tower-defense sandbox factory game. Create elaborate supply chains of conveyor belts to feed ammo into your turrets, produce materials to use for building, and defend your structures from waves of enemies. Features include a map editor, 24 built-in maps, cross-platform multiplayer and large-scale PvP unit battles.

You can get it from Steam

Server Port

Mindustry requires a single port

Port Default
Game 6567

Note

You can't use hostname/alias to connect your mindustry server. IPv4 must be used to connect.

Docker Images (1)
Name Image
ghcr.io/ptero-eggs/yolks:java_11 ghcr.io/ptero-eggs/yolks:java_11
Startup Command
java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server-release.jar config port {{SERVER_PORT}},config name {{SERVER_NAME}},host {{MAPNAME}}
Variables (3)

Version

The version to download. Example "v96" NOT "4.0v96" (default is latest) This would also be the github tag for the release

Environment:
VERSION
Default:
latest
User Viewable:
User Editable:
Rules:
required

Server Name

The server name that shows up in the server list (Default: Pterodactyl Testing Server)

Environment:
SERVER_NAME
Default:
A Pterodactyl Hosted Server
User Viewable:
User Editable:
Rules:
required|string

Map Name

Default Maps Available: Ancient Caldera, Fork, Fortress, Glacier, Islands, Labyrinth, Maze, Shattered, Tendrils, Triad, Veins, Wasteland. (Default: Tendrils)

Environment:
MAPNAME
Default:
Tendrils
User Viewable:
User Editable:
Rules:
required|string
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash

GITHUB_PACKAGE=Anuken/Mindustry
MATCH=server-release.jar

cd /mnt/server

if [ -z ${DOWNLOAD_LINK} ]; then
    if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then
        echo -e "using anon api call"
    else
        echo -e "user and oauth token set"
        alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '
    fi

    ## get release info and download links
    LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest")
    RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases")

    if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
        DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq -r '.assets | .[].browser_download_url' | grep -i ${MATCH})
    else
        VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
        if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
            DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
        else
            echo -e "defaulting to latest release"
            DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
        fi
    fi
else
    echo -e "Checking supplied download link"
    if curl --output /dev/null --silent --head --fail ${DOWNLOAD_LINK}; then
        echo -e "link is valid. setting download link to ${DOWNLOAD_LINK}"
    else
        echo -e "link is invalid closing out"
        exit 2
    fi
fi

echo -e "running: wget ${DOWNLOAD_LINK}"
wget ${DOWNLOAD_LINK}

## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"