FTB-Skies-2-Aero

FTB-Skies-2-Aero

Docker app from Jonas Wörner's Repository

Overview

Dedicated server for the FTB Skies 2: Aero modpack (Minecraft 1.21.1, NeoForge, Java 21), a skyblock pack built around airships. On the first start the container installs the modpack into the appdata folder with the official FTB server installer (about 1.3 GB, takes a few minutes); after that the server starts right away. Set EULA to true to accept the Minecraft EULA. Ops, MOTD, world name and Java memory are set through the variables. To update the modpack, change FTB_VERSION_ID to the ID shown on the FTB versions page.

FTB Skies 2: Aero – Docker server for Unraid

Docker image and Unraid template for a dedicated server running the FTB Skies 2: Aero modpack (Minecraft 1.21.1, NeoForge 21.1.250, Java 21).

The image is on Docker Hub as jonaxio/ftb-skies-2-aero. It contains Java 21 and the official FTB server installer. On the first start the modpack (about 1.3 GB) is installed into /data; after that the server starts right away.

File Purpose
Dockerfile Image definition
entrypoint.sh Install/update, server.properties, EULA, ops, server start
templates/ftb-skies-2-aero.xml Unraid template with all variables
ca_profile.xml Repository profile for Unraid Community Apps
docker-compose.yml For local testing, e.g. with Docker Desktop

Install on Unraid

  1. Get the template: In the Apps tab (Community Apps), search for FTB-Skies-2-Aero and click Install. If the app is not listed (yet), add the template in the Unraid terminal (>_ icon, top right) instead, then go to Docker → Add Container and pick FTB-Skies-2-Aero under Template:

    curl -fsSL --create-dirs -o /boot/config/plugins/dockerMan/templates-user/my-FTB-Skies-2-Aero.xml https://raw.githubusercontent.com/JonaxScript/ftb-skies-2-aero-docker/main/templates/ftb-skies-2-aero.xml
    
  2. Set EULA to true, adjust OPS, MOTD and the RAM in JVM_OPTS → Apply. Unraid downloads the image from Docker Hub and starts the container.

  3. Watch the start: In the Docker tab, click the container icon → Logs. The first install takes a few minutes, the first server start including world generation a few more. The server is ready when it logs Done (...)! For help, type "help".

  4. Connect: In the FTB App (same pack version, currently 1.13.0), add the server <unraid-ip>:25565.

Without a template

You can also create the container by hand: Docker → Add Container, then

  • Name: FTB-Skies-2-Aero, Repository: jonaxio/ftb-skies-2-aero:latest
  • Extra Parameters (advanced view): --stop-timeout=120
  • via Add another Path, Port, Variable, Label or Device:
    • Port: container port 25565, protocol TCP
    • Path: container path /data, host path /mnt/user/appdata/ftb-skies-2-aero
    • Variable EULA with the value true, plus any other variables you want to change

Image updates

When a new image is published, the Docker tab shows update ready for the container; click it and confirm with apply update. The world and all server files are kept in the appdata folder, and your settings stay in the template. Modpack updates are separate, see Modpack updates.

Other Docker hosts

docker run -d --name ftb-skies-2-aero -p 25565:25565 -v ftb-data:/data \
  -e EULA=true --stop-timeout 120 jonaxio/ftb-skies-2-aero:latest

Variables

Variable Default Description
EULA false Must be true, otherwise the server does not start (Minecraft EULA)
JVM_OPTS -Xms6G -Xmx8G Java options (FTB recommends 8 GB RAM, minimum 6 GB)
OPS empty Comma-separated player names, e.g. Player1,Player2. They are resolved to UUIDs via the Mojang API on start and added to ops.json. Remove ops in-game with /deop.
MOTD FTB Skies 2: Aero Message shown in the server list (colour codes as §b etc.)
LEVEL world Name of the world directory
Port 25565/tcp 25565 Game port; the host port can be anything in Unraid
PUID / PGID 99 / 100 Owner of the files in /data (Unraid default nobody:users)
FTB_VERSION_ID 100527 (1.13.0) Modpack version, see Modpack updates

Path: /data → /mnt/user/appdata/ftb-skies-2-aero (world, configs, mods, logs). In Unraid, LEVEL, the path, PUID/PGID and FTB_VERSION_ID are under Show more settings.

Modpack updates

Updates are not automatic; the version is pinned via FTB_VERSION_ID. To update:

  1. Find the new version ID: the FTB versions page lists it for every version, e.g. "1.13.0 Release ID 100527".
  2. Stop the container and back up the appdata folder, at least the world folder (e.g. with the Appdata Backup plugin from Community Apps).
  3. In Unraid, edit the container → Show more settings → change FTB_VERSION_ID → Apply.
  4. All players update the pack to the same version in the FTB App.

On start, the container detects the new ID (/data/.ftb-installed-version) and runs the FTB installer as an update. No new image is needed for this. Tested with an update from 1.10.0 to 1.13.0:

Kept Replaced or removed
World (including world/serverconfig) Configs the pack changed in the new version. Your own edits to those files are lost, without a backup.
server.properties, ops.json, whitelist Mods the pack updated or removed
Configs the pack did not change, including your edits
Mods and config files you added yourself

Rolling back: Restore the backup and set FTB_VERSION_ID back to the old ID. Only resetting the ID also works (the installer then downgrades), but the world has already been loaded by the newer version.

To repair a broken installation, delete .ftb-installed-version and restart the container.

Building the image yourself

Local testing: Set EULA to "true" in docker-compose.yml, then run docker compose up --build. The server data is stored in the Docker volume ftb-data.

Own build on Unraid: Build with docker build -t ftb-skies-2-aero:latest . and set Repository in the container settings to ftb-skies-2-aero:latest. The update column then shows "not available", which is expected for local images.

Publishing to Docker Hub (maintainers):

docker buildx build --platform linux/amd64 --provenance=false --sbom=false \
  --output type=image,name=docker.io/jonaxio/ftb-skies-2-aero:latest,push=true,oci-mediatypes=false .

This pushes a plain single-platform Docker manifest without attestations, the same format a classic docker push creates.

Notes

  • -Xmx must fit into the free RAM of your server; Java needs roughly 1–2 GB on top of -Xmx.
  • The template sets --stop-timeout=120 so the server has enough time to save the world when it stops (otherwise Docker kills containers after 10 seconds).
  • server.properties is created from the modpack's defaults on the first start (including allow-flight=true, which matters for airships). After that, only motd, level-name and server-port are set on every start; you can change everything else directly in the file.
  • run.sh and user_jvm_args.txt from the FTB installer are not executed (run.sh is only read to find the installed NeoForge version). Memory and Java options come from JVM_OPTS only.
  • Server console: add -it to Extra Parameters to send commands via docker attach FTB-Skies-2-Aero (detach with Ctrl+P, Ctrl+Q). Alternatively, run commands in-game as an op.
  • x86-64 only (the Unraid default).

License

The files in this repository are licensed under the MIT License. The modpack, Minecraft and the FTB server installer are downloaded at runtime and are subject to their own licenses and the Minecraft EULA. This project is not affiliated with Feed The Beast or Mojang.

Requirements

About 8 GB of free RAM for the server (JVM_OPTS default -Xms6G -Xmx8G). Players need the same modpack version in the FTB App.

Categories

Download Statistics

30
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
jonaxio/ftb-skies-2-aero:latest
Last Updated2026-10-18
First Seen2026-10-18

Runtime arguments

Network
bridge
Shell
bash
Privileged
false
Extra Params
--stop-timeout=120

Template configuration

EULAVariable

Do you agree to the Mojang EULA available at https://account.mojang.com/documents/minecraft_eula? Server will not start without accepting. Set to 'true' to accept.

Default
false
Value
false
JVM_OPTSVariable

Java Options

Default
-Xms6G -Xmx8G
Value
-Xms6G -Xmx8G
OPSVariable

Comma separated list of players to have op capability

MOTDVariable

Set the server MOTD

Default
FTB Skies 2: Aero
Value
FTB Skies 2: Aero
PortPorttcp

Port for the server

Target
25565
Default
25565
Value
25565
LEVELVariable

Name of the world directory. It is usually world.

Default
world
Value
world
DataPathrw

Server files, world and configs

Target
/data
Default
/mnt/user/appdata/ftb-skies-2-aero
Value
/mnt/user/appdata/ftb-skies-2-aero
PUIDVariable

User ID that owns the server files

Default
99
Value
99
PGIDVariable

Group ID that owns the server files

Default
100
Value
100
FTB_VERSION_IDVariable

FTB modpack version ID (100527 = 1.13.0). Change it to update the modpack on the next start.

Default
100527
Value
100527