A unified, developer-first homelab dashboard. Monitor and orchestrate your infrastructure, containers, and media from a single pane of glass.
PHP
125
9 commits
updated Sep 29, 2026
[!CAUTION] This is NOT a production-ready release. Muraqib is still a work in progress (beta).
Features change, data migrations may break, and security has not been audited. Muraqib stores credentials for your infrastructure (Cloudflare, Portainer, media apps, Git hosts), so only run it if you really know what you are doing, keep it off the public internet (VPN or an access layer in front), and keep backups.
The Ultimate Sentinel for your Cloud & Infrastructure.
Features • Installation • Screenshots • Contributing • License
Muraqib (meaning "Observer" or "Supervisor") is a cutting-edge centralized dashboard designed to unify your infrastructure management. Built on the robust Laravel 13 framework and energized by Filament 5, Muraqib provides a single pane of glass for monitoring servers, managing cloud access, and orchestrating containerized environments.
Stop juggling multiple portals. Monitor your Netdata instances, manage Cloudflare Zero Trust policies, and oversee Portainer stacks from one beautiful, responsive interface.
The image (ghcr.io/slimani-dev/muraqib) runs the web app, the queue worker, the scheduler and the SSR server; docker-compose.yml adds MariaDB, Redis and registry-api (container update checks; its image is amd64 only for now).
git clone https://github.com/slimani-dev/muraqib.git
cd muraqib
cp .env.example .env
Edit .env:
APP_KEY: generate one with docker run --rm ghcr.io/slimani-dev/muraqib:beta php artisan key:generate --showAPP_URL: the address you'll open Muraqib atDB_PASSWORD: any strong password (the database container is created with it)ADMIN_EMAIL / ADMIN_PASSWORD: your first login (leave the password empty to have one generated and printed in docker compose logs app)docker compose up -d
Muraqib runs on port 8080 (change it with MURAQIB_PORT). The first start runs the migrations and creates your admin account.
Prerequisites: PHP 8.4+ (with intl), Composer, Node.js 22 with pnpm, a database (SQLite, MySQL/MariaDB or PostgreSQL), Redis (recommended), and a running registry-api for container update checks (set REGISTRY_API_URL, default http://localhost:8080).
git clone https://github.com/slimani-dev/muraqib.git
cd muraqib
composer install
pnpm install
cp .env.example .env
php artisan key:generate
Set your database, ADMIN_EMAIL and ADMIN_PASSWORD in .env, then:
php artisan migrate --seed # creates your admin account
pnpm run build:ssr # client and server-side rendering bundles
Keep these running (e.g. with Supervisor or systemd):
php artisan queue:work --queue=high,default,low # background jobs (repository syncs, ...)
php artisan schedule:work # every-30-minute syncs
php artisan inertia:start-ssr # server-side rendering (or set INERTIA_SSR_ENABLED=false)
For development, php artisan dev starts the Vite dev server, the queue worker, the scheduler and the log viewer together.
There's no public sign-up. Your first admin comes from ADMIN_EMAIL / ADMIN_PASSWORD; everyone else is added in the admin panel under Users. Only admins can open the admin panel (/admin), where integrations and credentials live. Change the seeded password after your first login and turn on two-factor authentication.
Everything is added in the admin panel:
notifications or repo scope.API keys, tokens and passwords are stored encrypted with your APP_KEY and never sent to the browser.
In the admin panel under Settings → Weather: the location (forecasts come from Open-Meteo, no key needed) and an optional Unsplash key for a matching background photo.
Media services used to be configured in .env (JELLYFIN_URL, RADARR_API_KEY, ...). Run php artisan media:import-env once, then remove those lines.
php artisan test --compact
Some integration tests hit live Cloudflare/Portainer/Netdata APIs. They are skipped unless you copy .env.testing.example to .env.testing and fill in test credentials.
Please report vulnerabilities privately; see SECURITY.md.
We welcome contributions! Please see CONTRIBUTING.md for details on how to submit pull requests, report issues, and suggest improvements.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is open-sourced software licensed under the MIT license.
PHP
55.6%
Vue
35.5%
TypeScript
4.6%
Python
3.2%
A unified, developer-first homelab dashboard. Monitor and orchestrate your infrastructure, containers, and media from a single pane of glass.
PHP
125
9 commits
updated Sep 29, 2026
[!CAUTION] This is NOT a production-ready release. Muraqib is still a work in progress (beta).
Features change, data migrations may break, and security has not been audited. Muraqib stores credentials for your infrastructure (Cloudflare, Portainer, media apps, Git hosts), so only run it if you really know what you are doing, keep it off the public internet (VPN or an access layer in front), and keep backups.
The Ultimate Sentinel for your Cloud & Infrastructure.
Features • Installation • Screenshots • Contributing • License
Muraqib (meaning "Observer" or "Supervisor") is a cutting-edge centralized dashboard designed to unify your infrastructure management. Built on the robust Laravel 13 framework and energized by Filament 5, Muraqib provides a single pane of glass for monitoring servers, managing cloud access, and orchestrating containerized environments.
Stop juggling multiple portals. Monitor your Netdata instances, manage Cloudflare Zero Trust policies, and oversee Portainer stacks from one beautiful, responsive interface.
The image (ghcr.io/slimani-dev/muraqib) runs the web app, the queue worker, the scheduler and the SSR server; docker-compose.yml adds MariaDB, Redis and registry-api (container update checks; its image is amd64 only for now).
git clone https://github.com/slimani-dev/muraqib.git
cd muraqib
cp .env.example .env
Edit .env:
APP_KEY: generate one with docker run --rm ghcr.io/slimani-dev/muraqib:beta php artisan key:generate --showAPP_URL: the address you'll open Muraqib atDB_PASSWORD: any strong password (the database container is created with it)ADMIN_EMAIL / ADMIN_PASSWORD: your first login (leave the password empty to have one generated and printed in docker compose logs app)docker compose up -d
Muraqib runs on port 8080 (change it with MURAQIB_PORT). The first start runs the migrations and creates your admin account.
Prerequisites: PHP 8.4+ (with intl), Composer, Node.js 22 with pnpm, a database (SQLite, MySQL/MariaDB or PostgreSQL), Redis (recommended), and a running registry-api for container update checks (set REGISTRY_API_URL, default http://localhost:8080).
git clone https://github.com/slimani-dev/muraqib.git
cd muraqib
composer install
pnpm install
cp .env.example .env
php artisan key:generate
Set your database, ADMIN_EMAIL and ADMIN_PASSWORD in .env, then:
php artisan migrate --seed # creates your admin account
pnpm run build:ssr # client and server-side rendering bundles
Keep these running (e.g. with Supervisor or systemd):
php artisan queue:work --queue=high,default,low # background jobs (repository syncs, ...)
php artisan schedule:work # every-30-minute syncs
php artisan inertia:start-ssr # server-side rendering (or set INERTIA_SSR_ENABLED=false)
For development, php artisan dev starts the Vite dev server, the queue worker, the scheduler and the log viewer together.
There's no public sign-up. Your first admin comes from ADMIN_EMAIL / ADMIN_PASSWORD; everyone else is added in the admin panel under Users. Only admins can open the admin panel (/admin), where integrations and credentials live. Change the seeded password after your first login and turn on two-factor authentication.
Everything is added in the admin panel:
notifications or repo scope.API keys, tokens and passwords are stored encrypted with your APP_KEY and never sent to the browser.
In the admin panel under Settings → Weather: the location (forecasts come from Open-Meteo, no key needed) and an optional Unsplash key for a matching background photo.
Media services used to be configured in .env (JELLYFIN_URL, RADARR_API_KEY, ...). Run php artisan media:import-env once, then remove those lines.
php artisan test --compact
Some integration tests hit live Cloudflare/Portainer/Netdata APIs. They are skipped unless you copy .env.testing.example to .env.testing and fill in test credentials.
Please report vulnerabilities privately; see SECURITY.md.
We welcome contributions! Please see CONTRIBUTING.md for details on how to submit pull requests, report issues, and suggest improvements.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is open-sourced software licensed under the MIT license.
PHP
55.6%
Vue
35.5%
TypeScript
4.6%
Python
3.2%