Skip to content

philderks/Fabricator

Repository files navigation

Fabricator Logo

Fabricator

Self-hosted web dashboard for managing Fabric and Vanilla Minecraft servers.

License: GPL-3.0 Stars Platform

Website | Documentation


image

Features

Feature Status
🧩 Loaders β€” Fabric (modded) and Vanilla βœ… Available
πŸ“¦ Mod Management β€” install, remove, and browse Fabric mods βœ… Available
πŸ“‹ Logs & Monitoring β€” live log stream, TPS and RAM graphs βœ… Available
πŸ’Ύ Backups & Restore β€” manual snapshots, restore from any backup βœ… Available
πŸ–₯️ Multiple Servers β€” manage several instances from one dashboard βœ… Available
⬆️ Fabricator self-update β€” checks GitHub Releases; update from the sidebar or reinstall script βœ… Available
πŸ”„ One-click Minecraft / Fabric server updates πŸ”§ Coming soon
⌨️ CLI (fabricator command) πŸ”§ Coming soon

Quick Start

One-line installer

The script downloads a release tarball from GitHub Releases, installs dependencies, creates a fabricator user and systemd unit, and starts the app. Supported distros: Debian/Ubuntu (and derivatives), Arch, Fedora/RHEL family. systemd and curl are required.

curl -fsSL https://fabricator.site/install.sh | bash

By default this installs the latest published release.

Updating an existing install (backs up servers.json and fabricator.env, replaces app files, keeps data under /var/lib/fabricator):

curl -fsSL https://fabricator.site/install.sh | bash -s -- --update

After install, open http://<host>:5000 (the default packaged config binds to all interfaces β€” use a firewall or reverse proxy if the host is reachable from untrusted networks).

For local development, the app defaults to loopback-only; see .env.example.

Manual installation
# Clone
git clone https://github.com/philderks/Fabricator.git
cd Fabricator

# Backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Frontend
cd frontend
npm install
npm run build
cd ..

# Run (development β€” serves API + built frontend from frontend/dist)
python3 run.py

Environment variables are documented in .env.example. For production-like paths, set FLASK_ENV=production, SERVER_ROOT, and SERVER_INDEX_FILE (see Configuration).


Requirements

Requirement
OS Linux β€” Debian/Ubuntu, Arch, or Fedora/RHEL (systemd)
Python 3.10+
Node.js 20.x (frontend build only)

Windows is not supported yet.


Configuration

The installer writes /etc/fabricator/fabricator.env (group fabricator, mode 0640). Common variables:

# Listen address β€” packaged default is all interfaces; use a reverse proxy in production
HOST=0.0.0.0
PORT=5000
FLASK_ENV=production

# Server instances and index (paths must be writable by the fabricator user)
SERVER_ROOT=/var/lib/fabricator/servers
SERVER_INDEX_FILE=/var/lib/fabricator/servers.json

# Optional: comma-separated origins for a separate dev UI or external frontends (no *)
# CORS_ORIGINS=https://dashboard.example.com

# playit.gg tunnel agent β€” set to "true" to start the agent automatically on boot.
# The agent creates a public tunnel so the server is reachable without port-forwarding.
PLAYIT_ENABLED=false

The playit.gg tunnel makes a server reachable without port forwarding. The installer provisions the pinned, sha256-verified playit and playit-cli binaries automatically β€” no separate step. Turn the tunnel on per server under Server β†’ Settings β†’ Network (or Overview β†’ Public access), which walks you through the one-time playit.gg account claim. Set PLAYIT_ENABLED=true above only if you want it to auto-start on boot.

Managed Java runtimes are stored under /var/lib/fabricator/java by default when FLASK_ENV=production.

After editing, restart the service:

sudo systemctl restart fabricator
Filesystem layout
/opt/fabricator/app              # Application code (fabricator:fabricator)
/opt/fabricator/venv             # Python virtualenv (fabricator:fabricator)
/var/lib/fabricator              # Server data, backups, managed Java
/etc/fabricator/fabricator.env   # Config (root:fabricator, 0640)
/etc/systemd/system/fabricator.service

Roadmap

Status Feature
βœ… Done Mod management
βœ… Done Logs & monitoring
βœ… Done Backups & restore
βœ… Done Multiple server instances
βœ… Done Fabricator self-update (UI + installer)
πŸ”§ In progress CLI (fabricator command)
πŸ”§ In progress Additional loader support β€” Vanilla shipped; NeoForge, Forge, Quilt, Paper next
πŸ“‹ Planned One-click Minecraft / Fabric server upgrades
πŸ“‹ Planned Windows support

Contributing

Bug reports and pull requests are welcome. For larger changes, open an issue first.

The frontend is Vue 3 + Vite in /frontend. The backend is Flask with blueprints under /backend; the process entrypoint is run.py. HTTP API details live in API_DOCS.md. Both halves can be run without the installer for local development.


License

GPL-3.0

About

Fabricator is an open-source, self-hosted web UI for managing Minecraft servers and mods via Modrinth. (in beta)

Topics

Resources

License

Stars

Watchers

Forks

Contributors