Skip to content

Running from Source

Use this for contributing to the main Fabricator app, not for running the docs site.

Terminal window
git clone https://github.com/philderks/Fabricator.git
cd Fabricator
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Run the Flask app:

Terminal window
python3 run.py

Development defaults bind to 127.0.0.1:5000 and store data in the platform app-data directory. Use .env.example as a starting point for local overrides.

Terminal window
cd frontend
npm install
npm run dev

The frontend is Vue 3 + Vite. Production releases serve the built frontend through Flask, but local development can run Vite separately.

Terminal window
cd frontend
npm run build

The build output goes to frontend/dist and is served by the backend in production-like mode.

Run backend tests from the repository root:

Terminal window
pytest

The test suite covers app factory behavior, storage, routes, installers, Java compatibility, Modrinth integration, backup/restore behavior, player management, and runtime status contracts.

PathPurpose
backend/core/app.pyFlask app factory and blueprint registration.
backend/core/config.pyEnvironment-driven config object.
backend/server/routes.pyMain server, files, mods, Java, metrics, loader, console routes.
backend/server/installer/Loader-specific server installers.
backend/modrinth/Modrinth API client and routes.
backend/backups/Backup configs, storage, scheduler, progress, restore.
backend/server/players/Player files, live commands, and player routes.
frontend/src/router/index.jsDashboard route map.
frontend/src/stores/Pinia state stores.
tools/install.shRelease installer.
tools/cli.pyfabricator CLI.