How to Install Fabric on a Minecraft Server
Set up a lightweight Fabric server on Linux for performance mods and modern modpacks — installer, launcher, and mods folder explained.

Fabric is a lightweight, fast-updating mod loader that is popular for performance mods (Lithium, Sodium's server-side friends) and modern modpacks. This guide sets up a Fabric server on Linux and gets your first mods loading.
Fabric vs Forge in one paragraph
Fabric is leaner and updates to new Minecraft versions within days, which is why optimisation packs favour it. Forge has a bigger catalogue of large content mods. If your pack is on CurseForge or Modrinth, it will tell you which loader it needs — you cannot mix the two in one server.
Install Java
Fabric needs a JDK matching your Minecraft version. For 1.20.5 and newer use Java 21:
sudo apt update
sudo apt install -y openjdk-21-jdk wget screen
Download the Fabric installer
Fabric ships a single universal installer jar from fabricmc.net. Download it and run it in server mode, pinning your Minecraft version:
mkdir -p ~/fabric-server && cd ~/fabric-server
wget https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.1/fabric-installer-1.0.1.jar
java -jar fabric-installer-1.0.1.jar server -mcversion 1.20.1 -downloadMinecraft
That produces fabric-server-launch.jar and downloads the vanilla server jar it wraps.

Accept the EULA and start
As with any Java server, accept Mojang's EULA, then launch with sensible memory flags:
echo "eula=true" > eula.txt
java -Xmx4G -Xms4G -jar fabric-server-launch.jar nogui
The first boot generates server.properties, the world, and an empty mods folder, then stops so you can configure it.
Add the Fabric API and your mods
Almost every Fabric mod depends on the Fabric API — install it first, or mods will fail to load. Put jars into the mods folder:
cd ~/fabric-server/mods
wget -O fabric-api.jar "<Fabric-API-download-url-for-your-version>"
Only add server-compatible mods to a dedicated server. Client-only rendering mods like Sodium do nothing on the server and can even crash it. Performance mods that run server-side — Lithium, FerriteCore, Krypton — are the ones worth adding here. For the full workflow, see how to add mods to a Minecraft server, and if you are choosing between loaders, our Forge install guide covers the other side.
Run it as a service
Wrap the launch command in a systemd unit so it survives reboots:
[Unit]
Description=Minecraft Fabric Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/fabric-server
ExecStart=/usr/bin/java -Xmx4G -Xms4G -jar fabric-server-launch.jar nogui
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now mcfabric
sudo ufw allow 25565/tcp
For heavier packs, tuning the JVM makes a real difference — the Aikar flags guide explains the flags to use, and our lag-reduction tuning guide covers view-distance and entity settings.
Server-side performance mods worth adding
One reason people choose Fabric is its excellent optimisation mods. These run server-side only (players don't install them) and can noticeably improve tick times:
- Lithium: optimises game logic — mob AI, physics, block ticking. The single biggest win for most servers.
- FerriteCore: cuts memory usage, useful on RAM-limited plans.
- Krypton: optimises the networking stack for busier servers.
- C2ME: parallelises chunk generation and I/O — great if players explore a lot.
Drop them in mods like any other jar. Because they're server-side, they pair well with the config-level lag tuning in our tuning guide.
Troubleshooting a Fabric server
When a Fabric server won't start, the log almost always explains why. Check it first:
tail -n 60 logs/latest.log
The three most common messages and their fixes:
- "requires fabric-api": install the Fabric API jar into
mods. Nearly every content mod depends on it. - "Mod resolution failed" / version conflict: a mod is built for a different Minecraft version. Match every mod to your server version.
- Client-only mod crash: you added a rendering mod like Sodium to the server. Remove it — those belong only on the client.
Keep it alive while you test
Before wiring up systemd, run Fabric in a screen session so you can issue console commands and the server survives an SSH disconnect:
screen -S fabric
java -Xmx4G -Xms4G -jar fabric-server-launch.jar nogui
# Ctrl+A then D to detach, screen -r fabric to return
Once it's stable, switch to the systemd unit above. For choosing between the two loaders, our Forge guide covers the other side, and the mods guide explains matching client and server mod sets.
Sharing a mod list with players
Because every content mod must match on client and server, the smoothest way to keep a group in sync is to share an exact mod list. Two approaches work well: package your mods as a Modrinth pack (.mrpack) that players import into Prism Launcher in one click, or simply zip your mods folder (client-appropriate mods only) and share it. Whichever you choose, pin versions — "latest" drifts, and a mismatched version is the number-one reason a friend can't connect. When you add or update a mod on the server, tell players to update the same jar. For a hands-off alternative, a curated CurseForge or Modrinth modpack handles this syncing automatically, and our mods guide covers the client/server split in detail.
FAQ
Do players need Fabric installed?
Yes, players need the Fabric loader and any client-side mods that the pack requires. The Fabric API is needed on both client and server.
Why won't my mod load?
The three usual causes: the mod is for a different Minecraft version, it is Forge-only, or it is missing the Fabric API. Check the log — Fabric prints a clear reason.
Can I use Sodium on the server?
No. Sodium is a client rendering mod. Use Lithium and FerriteCore server-side for performance instead.
Is Fabric lighter than Forge?
Generally yes — the loader itself is minimal, and the popular Fabric optimisation mods can noticeably cut tick times.
A snappy Fabric server loves fast single-thread CPU and NVMe storage. Spin one up on Nxeon's Minecraft hosting plans with full root access and one-click Linux images.