Running from Source
Use this for contributing to the main Fabricator app, not for running the docs site.
Backend setup
Section titled “Backend setup”git clone https://github.com/philderks/Fabricator.gitcd Fabricatorpython3 -m venv venvsource venv/bin/activatepip install -r requirements.txtRun the Flask app:
python3 run.pyDevelopment 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.
Frontend setup
Section titled “Frontend setup”cd frontendnpm installnpm run devThe frontend is Vue 3 + Vite. Production releases serve the built frontend through Flask, but local development can run Vite separately.
Build frontend
Section titled “Build frontend”cd frontendnpm run buildThe build output goes to frontend/dist and is served by the backend in production-like mode.
Run backend tests from the repository root:
pytestThe test suite covers app factory behavior, storage, routes, installers, Java compatibility, Modrinth integration, backup/restore behavior, player management, and runtime status contracts.
Useful source locations
Section titled “Useful source locations”| Path | Purpose |
|---|---|
backend/core/app.py | Flask app factory and blueprint registration. |
backend/core/config.py | Environment-driven config object. |
backend/server/routes.py | Main 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.js | Dashboard route map. |
frontend/src/stores/ | Pinia state stores. |
tools/install.sh | Release installer. |
tools/cli.py | fabricator CLI. |