A production-ready starter template for building Stremio addons using Laravel. This template provides a solid foundation for creating high-quality Stremio addons with modern PHP practices.
- 🚀 Built with Laravel 12
- 🎯 Clean architecture with services and interfaces
- 🔒 Type-safe with PHP 8.2+
- 🎨 Modern UI with Vue 3 and Inertia
- 📦 Easy configuration management
- 🧪 Testing ready
- 🐳 Docker support
- PHP 8.2+
- Composer
- Node.js 18+
- Docker (optional)
- Clone the repository:
git clone https://github.com/rleroi/Stremio-Laravel.git
cd Stremio-Laravel
- Install dependencies:
composer install
npm install
- Set up your environment:
cp .env.example .env
php artisan key:generate
- Start the development server:
php artisan serve
- Visit
http://localhost:8000
to see your addon.
docker compose up -d
The template includes an example configuration UI at /configure
.
This template implements the Stremio addon protocol with the following endpoints:
/manifest.json
- Addon manifest/catalog/{type}/{id}/{extra?}.json
- Content catalog/meta/{type}/{id}/{extra?}.json
- Content metadata/stream/{type}/{id}/{extra?}.json
- Stream information/subtitles/{type}/{id}/{extra?}.json
- Subtitles
Each endpoint supports an optional {config}
parameter to specify which configuration to use.
app/
├── DataTransferObjects/ # Data transfer objects
│ └── AddonConfig.php # Configuration DTO
├── Http/
│ ├── Controllers/ # HTTP controllers
│ │ ├── AddonController.php # Stremio protocol endpoints
│ │ └── ConfigController.php # Configuration UI
│ └── Resources/ # JSON resources
│ ├── MetaCollection.php
│ ├── MetaResource.php
│ └── StreamResource.php
├── Services/
│ ├── Interfaces/ # Service interfaces
│ │ ├── AddonConfigServiceInterface.php
│ │ ├── AddonManifestServiceInterface.php
│ │ └── CatalogServiceInterface.php
│ └── ... # Service implementations
└── ...
php artisan test
composer format
composer lint
The project includes a complete Docker setup for development:
- PHP 8.2 FPM
- Nginx
- MySQL 8.0
- Redis (optional)
To start the development environment:
docker compose up -d
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is open-sourced software licensed under the MIT license.
If you find this template useful, please consider giving it a star ⭐️ on GitHub!
This starter is compatible with Laravel Breeze for authentication (register, login, etc). If you want to enable user authentication features:
- Open
routes/web.php
- Uncomment the Breeze routes section (around line 18)
- This will enable
/register
,/login
,/dashboard
, and profile management routes.
Example:
// Uncomment to enable default Laravel Breeze routes
Route::get('/dashboard', function () {
return Inertia::render('Dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});
require __DIR__.'/auth.php';
See the Laravel Breeze documentation for more details.