A self-hosted fork of LaBrute designed to run entirely on your own machine or LAN. No cloud dependency, no account on an external server. Drop the .bat, click play.
Changes over the upstream:
- One-click Windows launcher (
Lancer_MyBrute.bat) that handles Docker, Postgres, and the dev server automatically. - In-app server selector: switch between a local backend and a remote machine (NAS, gaming PC, any host on your LAN) without touching config files.
- PostgreSQL runs in Docker on port 5433 to avoid conflicts with any existing local Postgres instance.
Backend: Node.js, Express, Prisma, TypeScript.
Frontend: React, MUI, create-react-app, TypeScript.
- Install Docker Desktop and Node.js (v18+).
- Clone the repo and run
Lancer_MyBrute.bat. - Pick option 3 to install dependencies, then option 1 to launch.
The launcher starts Docker, waits for Postgres to be ready, then runs yarn dev. The app is available at http://localhost:3000.
On first run, select option 2 to sync the database schema before launching.
git clone https://github.com/infinition/MyBruteLocal.git
cd MyBruteLocaldocker compose up -d postgrescp server/.env.sample server/.envEdit server/.env if needed. The defaults work out of the box with the Docker setup.
yarn installThis also runs Prisma migrations and sets up the database schema.
yarn eternaltwin db syncyarn devFrontend at http://localhost:3000, backend at http://localhost:9000.
The settings drawer (gear icon in the app) lets you switch the API endpoint at runtime:
- Local server: client talks to the backend on the same machine.
- Remote server: client talks to a backend on another machine.
The remote field accepts any of:
192.168.1.50:9000
http://192.168.1.50:9000
https://my-server.example.com
After saving, the client reloads and uses the new API base URL.
PostgreSQL runs on port 5433 (not the default 5432) to avoid conflicts. The docker-compose.yml creates a named volume labrute_pg_data automatically on first run.
Useful commands:
# Sync schema after a Prisma migration
yarn db:sync:dev
# Seed the database
yarn db:seed
# Reset the database
yarn db:reset
# Open Prisma Studio
yarn studioSwitching between local and remote Postgres is done via DATABASE_URL in server/.env:
# Local
DATABASE_URL="postgresql://postgres:admin@localhost:5433/labrute"
# Remote (NAS, server, etc.)
DATABASE_URL="postgresql://postgres:password@192.168.1.50:5432/labrute"
Not supported. The Prisma schema uses PostgreSQL-specific types (UUIDs, arrays, native column types). A SQLite port would require a storage refactor.
npm ci # Install and build everything
yarn db:sync:prod # Apply migrations on the production database
yarn start # Start the backendServe the compiled frontend (client/build) with any static server (Nginx, Caddy, etc.).
Environment variables can be overridden at runtime via the Config table in the database without restarting the server.
Run yarn core:export after adding or removing files in the core package to update the index exports.
Requires ffmpeg and Node v18+.
yarn sfx:generate # Git Bash
yarn sfx:wsl:generate # WSLyarn sitemap:generateMyBruteLocal/
Lancer_MyBrute.bat # Windows launcher
docker-compose.yml # Postgres container
client/
public/
i18n/ # Translation files
src/
components/ # Reusable components
hooks/ # React hooks
layouts/
theme/
utils/
views/
core/ # Shared code (front + back)
src/
server/
prisma/ # DB schema and migrations
src/
controllers/
utils/
prisma/ # Shared Prisma types
Based on LaBrute by Zenoo.
CC BY-NC-SA 4.0. See LICENSE.