A modern, secure, and high-performance web dashboard designed to bridge the gap between large 4K/MKV media collections and FAT32-formatted drives. Now rewritten with a React frontend and secured with OIDC Authentication.
- 🛡️ Secure Access: Integrated OIDC Authentication (via Pocket-ID, Keycloak, etc.) to keep your dashboard private.
- 📂 Smart Navigation: Clean, reactive file browser with breadcrumbs, multi-select, and bulk actions.
- Format Support: Handles
.mkvand.mp4files (Large MKV/MP4 -> 4GB FAT32 chunks). - ⚡ Bit-Perfect Splitting: Splits files into 4GB segments (Store mode
-m0) with zero re-compression. - 🔄 Fault-Tolerant: Self-cleaning workflow that handles interruptions and locks robustly.
- 🎨 Modern UI: Built with React (Vite) and Tailwind-like CSS, featuring dark mode, animations, and real-time status updates.
The easiest way to run the application is using the pre-built Docker images.
-
Download Files:
- Download
docker-compose.release.ymland rename it todocker-compose.yml. - Download
.env.exampleand rename it to.env.
- Download
-
Configure Volumes: Open
docker-compose.ymland update the volume mapping to point to your media folder:volumes: - "/path/to/your/movies:/data" # <--- IMPORTANT: Change this to your actual media folder!
-
Configure
.env: By default,OIDC_AUTH=false(Mock Mode) is set for easy testing. If you want to enable authentication, open.env, setOIDC_AUTH=true, and fill in your provider details (see Authentication & Configuration for details). -
Run:
docker-compose up -d
- Framework: React 18 + Vite
- Styling: Custom CSS3 (Glassmorphism & Cyberpunk aesthetic)
- Auth:
react-oidc-contextfor PKCE flow - State: Real-time polling via Axios
- Core: FastAPI (Python 3.11)
- Engine: Official
rarCLI (Linux x64) - Server: Nginx (serving frontend & proxying API)
This project supports OpenID Connect (OIDC) for authentication. It can also run in a Mock Mode for local testing or secured networks.
Configuration is handled via a .env file in the root directory.
- Edit
.envwith your provider details:OIDC_AUTH=true OIDC_AUTHORITY=https://auth.yourdomain.com OIDC_CLIENT_ID=your-client-id OIDC_CLIENT_SECRET=your-client-secret
- Start the stack (Docker Compose automatically reads the
.envfile):docker-compose up -d
To disable authentication for local testing, set OIDC_AUTH=false in your .env file.
Clone the repo and configure your media directory:
git clone https://github.com/raidolo/kodi_fat32_splitter.git
cd kodi_fat32_splitterEdit docker-compose.yml to point to your movies and set up auth:
# docker-compose.yml
services:
backend:
volumes:
- "/path/to/your/movies:/data" # <--- Update this pathLaunch the stack:
docker-compose up -d --build- Open
http://localhost(or your server IP). - Login via your OIDC provider (if enabled).
- Browse your folders using the file navigator.
- Select one or multiple MKV files.
- Click "Start Split".
- Monitor progress in real-time. The app will generate
.partX.rarfiles next to your media.
This repository was refactored from a vanilla JS prototype to a robust React application.
- Runtime Config: The frontend container uses an
entrypoint.shscript to inject environment variables intowindow._env_at startup, allowing you to change auth settings without rebuilding the image. - Multi-Select: The UI supports batch processing — select multiple files, and the backend handles the queue.
Tip
Performance: The app uses rar with -m0 (Store), meaning it's limited only by your drive's I/O speed.
Note: This project provides a wrapper for the rar utility. Please ensure you comply with the RAR License.
Note
This entire repository was designed and implemented using Vibe Coding by Antigravity.
