HomeFlix is a modern, self-hosted streaming service — designed for simplicity, beauty, and cross-platform accessibility.
With no database setup required, AI-generated posters, and a sleek modern interface, HomeFlix turns your media library into a cinematic experience that works seamlessly on Windows, macOS, and Linux.
HomeFlix makes it easy to enjoy your personal media library anywhere, on any platform.
- Cross-Platform: Runs smoothly on Windows, macOS, and Linux.
- Easy Installation: No complex setup or external database required.
- AI Poster Generator: Automatically creates beautiful movie and show posters using built-in face detection AI.
- Modern UI: Clean, minimal, and responsive design.
Make sure you have:
-
Adding Movies
To add movies to HomeFlix:
- Create a folder inside the
movies/directory with the name of the movie. - Add your video file (currently supported formats: .mp4, .mkv) into the folder.
- Add subtitle file (currently supported formats: .vtt, .srt, .ass, .sub).
- File names can be anything — HomeFlix will automatically detect them.
Example folder structure:
HomeFlix/ └─ movies/ # Add each movie here in its own folder └─ Movie Name/ ├─ video.mp4 / video.mkv └─ subtitle.srt / subtitle.vtt / subtitle.ass / subtitle.sub
- Create a folder inside the
-
Clone the repository
git clone https://github.com/majdev25/Homeflix.git cd homeflix -
Install dependencies
npm install
-
Start the backend server
node server --prod
You can customize the backend behavior using these optional flags:
| Flag | Description |
|---|---|
| force_poster | Forces regeneration of all posters, even if they already exist. |
| debug | Generates a poster.png-debug image for monitoring face detection accuracy and positioning. |
| prod | Builds react client and correctly connects it backend. |
Then open your browser and visit the link displayed in the terminal..
Frontend:
- React
- TypeScript
- Vite
Backend:
- Node.js
- Express.js
- Face Detection AI (using TensorFlow.js and face-api.js)
Contributions are welcome! If you’d like to report a bug or suggest a feature, open an issue or pull request.
Created by majdev25
- Built with React, TypeScript, and Node.js
- Powered by face-api.js
- Portfolio: majdev25.github.io
