Lightweight, temporary Docker images used by deployment scripts (Pterodactyl, custom managers) to install game servers and applications. These are not production containers—they're deployment utilities.
When deploying a new game server or application, installers:
- Pre-install dependencies -
curl,wget,git,tar,jq, etc. - Reduce deployment time - Scripts don't need to install basic tools
- Ensure consistency - Same tools available across all deployments
- Lightweight - Temporary containers, deleted after install completes
- Alpine 3.20 - Minimal, ~11MB uncompressed
- Debian Bookworm - Full package support + 32-bit libraries, ~150MB uncompressed
- Ubuntu 22.04, 24.04, 25.10, 26.04 - Full package support, latest tools, amd64 only
- Java 8, 11, 17, 21, 25, 26 - Pre-installed JDK for Java app deployments
# Pterodactyl runs your install script inside a temporary installer container
docker run --rm -it \
-v /path/to/server:/mnt/server \
ghcr.io/nodebytehosting/installers:alpine \
bash /path/to/install.sh# Alpine variant
docker run --rm -it \
-v /path/to/game:/mnt/installer \
ghcr.io/nodebytehosting/installers:alpine \
/bin/sh -c "cd /mnt/installer && ./install.sh"
# Debian variant with 32-bit support
docker run --rm -it \
-v /path/to/game:/mnt/installer \
ghcr.io/nodebytehosting/installers:debian \
/bin/bash -c "cd /mnt/installer && ./install.sh"Pass through to the install script:
docker run --rm -it \
-v /path/to/game:/mnt/installer \
-e GAME_LICENSE=your_license \
-e SERVER_PORT=30120 \
ghcr.io/nodebytehosting/installers:alpine \
./install.shBoth Alpine and Debian installers include:
| Tool | Purpose |
|---|---|
curl |
HTTP/HTTPS downloads |
wget |
Alternative downloader |
git |
Clone repositories |
tar |
Archive extraction |
jq |
JSON parsing |
ca-certificates |
SSL/TLS validation |
lib32gcc-s1- 32-bit library supportlibsdl2-2.0-0:i386- 32-bit SDL2 (some older games need this)- Full apt package repository access
| Aspect | Alpine | Debian |
|---|---|---|
| Base size | ~11MB | ~150MB |
| Common tools | ✅ | ✅ |
| 32-bit support | Limited | ✅ Full |
| Package mgr | apk | apt |
| Best for | Most games | Legacy/complex installs |
| Deployment speed | Fastest | Slower (more tools) |
#!/bin/sh
set -e
echo "Installing Game Server..."
# Download binaries
curl -sSL https://cdn.example.com/server.tar.gz -o /tmp/server.tar.gz
tar -xzf /tmp/server.tar.gz -C /mnt/installer
# Download configs
wget https://cdn.example.com/config.zip -O /tmp/config.zip
unzip /tmp/config.zip -d /mnt/installer
# Cleanup
rm -rf /tmp/*.tar.gz /tmp/*.zip
echo "Installation complete!"#!/bin/bash
set -e
echo "Installing Game Server (with 32-bit support)..."
# Check architecture support
if dpkg --print-architecture | grep -q i386; then
echo "32-bit support available"
apt-get install -y --no-install-recommends lib32z1
fi
# Download and extract
cd /mnt/installer
curl -sSL https://cdn.example.com/server.tar.gz | tar -xz
git clone https://github.com/example/server-configs ./configs
echo "Installation complete!"- Use
/mnt/installeras working directory - Mounted as install destination by deployment tools - Handle failures gracefully - Use
set -eto exit on first error - Clean up temporaries - Remove download files to reduce container size during install
- Log everything - Scripts should output progress for debugging
- Test locally first - Run installer script manually before deploying to production
- These are temporary, disposable containers
- They run with the same permissions as your host user
- Don't run untrusted install scripts in these containers
- Volume mounts expose your filesystem—verify script sources
If you need specialized tools, extend these images:
FROM ghcr.io/nodebytehosting/installers:alpine
# Add game-specific tools
RUN apk add --no-cache lua5.4 python3
WORKDIR /mnt/installerThen use your custom installer in deployment scripts.
#!/bin/sh
set -e
# This runs inside the Alpine installer container
cd /mnt/server
curl -sSL https://api.example.com/server.tar.gz | tar -xz
git clone https://github.com/example/mods ./mods
# Create config
curl -sSL https://api.example.com/config.json -o server.json
echo "Server installation successful!"#!/bin/bash
SERVER_TYPE="${1:-default}"
INSTALLER_IMAGE="ghcr.io/nodebytehosting/installers:debian"
docker run --rm -it \
-v "${PWD}:/mnt/installer" \
-e SERVER_TYPE="$SERVER_TYPE" \
"$INSTALLER_IMAGE" \
bash -c "
echo 'Deploying $SERVER_TYPE...'
source /mnt/installer/deploy.sh
run_deployment
"MIT License - See LICENSE file for details