FTB-Skies-2-Aero
Docker app from Jonas Wörner's Repository
Overview
Readme
View on GitHubFTB 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
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.xmlSet
EULAtotrue, adjustOPS,MOTDand the RAM inJVM_OPTS→ Apply. Unraid downloads the image from Docker Hub and starts the container.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".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
EULAwith the valuetrue, plus any other variables you want to change
- Port: container port
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:
- Find the new version ID: the FTB versions page lists it for every version, e.g. "1.13.0 Release ID 100527".
- Stop the container and back up the appdata folder, at least the world folder (e.g. with the Appdata Backup plugin from Community Apps).
- In Unraid, edit the container → Show more settings → change
FTB_VERSION_ID→ Apply. - 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
-Xmxmust fit into the free RAM of your server; Java needs roughly 1–2 GB on top of-Xmx.- The template sets
--stop-timeout=120so the server has enough time to save the world when it stops (otherwise Docker kills containers after 10 seconds). server.propertiesis created from the modpack's defaults on the first start (includingallow-flight=true, which matters for airships). After that, onlymotd,level-nameandserver-portare set on every start; you can change everything else directly in the file.run.shanduser_jvm_args.txtfrom the FTB installer are not executed (run.shis only read to find the installed NeoForge version). Memory and Java options come fromJVM_OPTSonly.- Server console: add
-itto Extra Parameters to send commands viadocker attach FTB-Skies-2-Aero(detach withCtrl+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
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
jonaxio/ftb-skies-2-aero:latestRuntime arguments
- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--stop-timeout=120
Template configuration
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
Java Options
- Default
- -Xms6G -Xmx8G
- Value
- -Xms6G -Xmx8G
Comma separated list of players to have op capability
Set the server MOTD
- Default
- FTB Skies 2: Aero
- Value
- FTB Skies 2: Aero
Port for the server
- Target
- 25565
- Default
- 25565
- Value
- 25565
Name of the world directory. It is usually world.
- Default
- world
- Value
- world
Server files, world and configs
- Target
- /data
- Default
- /mnt/user/appdata/ftb-skies-2-aero
- Value
- /mnt/user/appdata/ftb-skies-2-aero
User ID that owns the server files
- Default
- 99
- Value
- 99
Group ID that owns the server files
- Default
- 100
- Value
- 100
FTB modpack version ID (100527 = 1.13.0). Change it to update the modpack on the next start.
- Default
- 100527
- Value
- 100527