PanoptiPulse/Laravel-MDM-Server

PHP

0

289 commits

updated Oct 6, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built an open-source MDM server with Laravel + PowerShell (r/selfhosted)

Hey everyone! I wanted to share an open-source project I’ve been working on since June 2022 First, I built this purely for fun, curiosity, and as a learning experience. I’m not trying to compete with enterprise MDM solutions or start a corporate crusade. I simply wanted to dive deeper into how…

0

Oct 6, 2026

README

Laravel-MDM

A simple, self-hosted portal for keeping an eye on your Windows and Linux (Debian / Ubuntu) computers: free disk space, pending updates, services, Docker containers, disk health and more. A lightweight PowerShell agent on each device reports to the portal and takes commands from it.

Device detail

Quick start

# docker-compose.yml
services:
  mdm:
    image: ghcr.io/panoptipulse/laravel-mdm-server:latest
    container_name: mdm
    ports:
      - "8000:8000"
    volumes:
      - storage:/var/www/storage
    restart: unless-stopped

volumes:
  storage:
docker compose up -d

Open http://<server>:8000, create the first account (it becomes the system admin) and click Add device. No .env and no database server are needed: SQLite, keys and logs live in the storage volume. For access from outside your network, put it behind a TLS proxy (see Server).

Add a device

Add device in the portal shows a ready-made command for Windows PowerShell and for PowerShell 7 (Windows, Debian / Ubuntu). Run it as Administrator / root and the device appears in the portal. Details: Installing the agent.

What it does

  • Monitoring: CPU and RAM history, drives, networks, battery, services, Docker, S.M.A.R.T.
  • Updates: Windows Update, winget, apt, flatpak, snap and PowerShell modules, installed from the portal.
  • Commands: restart, turn off, Wake-on-LAN, delivered instantly over a WebSocket.
  • Alerts: per device and rule, sent to ntfy, Discord, Telegram, e-mail and more.
  • Also: ping-only devices, a network map, remediation scripts, a security scanner, dashboards.

Documentation

Topic
ServerSetup, Docker, MySQL, real-time WebSocket, PWA
Installing the agentInstall, parameters, config.json, checking, uninstalling
AgentHow it works, feature matrix, signed communication
Alerts and notificationsSmart alerts, agent errors, rules, notification channels
DevicesTags, Wake-on-LAN, ping-only devices
NetworksNetwork map and discovery of unknown devices
Remediation scriptsDetection and remediation in PowerShell
Security scannerInventory, logs, parsers and detection rules
DashboardConfigurable dashboards and widgets

Screenshots

NetworksNotifications
NetworksNotifications

Repository structure

PathContent
src/laravelServer application (Laravel)
src/powershellAgent (Windows, Debian / Ubuntu)
src/dockerContainer image and its configuration
docker-compose.yml, docker-compose.mysql.ymlRunning the image

PanoptiPulse/Laravel-MDM-Server

PHP

0

289 commits

updated Oct 6, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built an open-source MDM server with Laravel + PowerShell (r/selfhosted)

Hey everyone! I wanted to share an open-source project I’ve been working on since June 2022 First, I built this purely for fun, curiosity, and as a learning experience. I’m not trying to compete with enterprise MDM solutions or start a corporate crusade. I simply wanted to dive deeper into how…

0

Oct 6, 2026

README

Laravel-MDM

A simple, self-hosted portal for keeping an eye on your Windows and Linux (Debian / Ubuntu) computers: free disk space, pending updates, services, Docker containers, disk health and more. A lightweight PowerShell agent on each device reports to the portal and takes commands from it.

Device detail

Quick start

# docker-compose.yml
services:
  mdm:
    image: ghcr.io/panoptipulse/laravel-mdm-server:latest
    container_name: mdm
    ports:
      - "8000:8000"
    volumes:
      - storage:/var/www/storage
    restart: unless-stopped

volumes:
  storage:
docker compose up -d

Open http://<server>:8000, create the first account (it becomes the system admin) and click Add device. No .env and no database server are needed: SQLite, keys and logs live in the storage volume. For access from outside your network, put it behind a TLS proxy (see Server).

Add a device

Add device in the portal shows a ready-made command for Windows PowerShell and for PowerShell 7 (Windows, Debian / Ubuntu). Run it as Administrator / root and the device appears in the portal. Details: Installing the agent.

What it does

  • Monitoring: CPU and RAM history, drives, networks, battery, services, Docker, S.M.A.R.T.
  • Updates: Windows Update, winget, apt, flatpak, snap and PowerShell modules, installed from the portal.
  • Commands: restart, turn off, Wake-on-LAN, delivered instantly over a WebSocket.
  • Alerts: per device and rule, sent to ntfy, Discord, Telegram, e-mail and more.
  • Also: ping-only devices, a network map, remediation scripts, a security scanner, dashboards.

Documentation

Topic
ServerSetup, Docker, MySQL, real-time WebSocket, PWA
Installing the agentInstall, parameters, config.json, checking, uninstalling
AgentHow it works, feature matrix, signed communication
Alerts and notificationsSmart alerts, agent errors, rules, notification channels
DevicesTags, Wake-on-LAN, ping-only devices
NetworksNetwork map and discovery of unknown devices
Remediation scriptsDetection and remediation in PowerShell
Security scannerInventory, logs, parsers and detection rules
DashboardConfigurable dashboards and widgets

Screenshots

NetworksNotifications
NetworksNotifications

Repository structure

PathContent
src/laravelServer application (Laravel)
src/powershellAgent (Windows, Debian / Ubuntu)
src/dockerContainer image and its configuration
docker-compose.yml, docker-compose.mysql.ymlRunning the image