Back to projects
PHP ★ pinned Active · new

ISPadmin

MikrotikExe/ispadmin

Web-based customer management for small ISPs built on the MikroTik RouterOS API — DHCP leases, Simple Queues, PPPoE, non-payer blocking, multi-site, 10 languages.

RouterOS APIDHCPSimple QueuesPPPoEDockerSQLite / MySQL

Overview

ISPadmin is a lightweight, self-hosted customer management app for small ISPs. When a customer is saved, the app automatically writes the DHCP lease and Simple Queue (or PPP secret for PPPoE) to the selected MikroTik, based on the customer status and plan (speed profile). Plain PHP with SQLite or MySQL — no framework, no dependencies, up and running in minutes.

Key features

  • Customer records: contacts, contract, IP/MAC, plan, status, notes and change history
  • Automatic MikroTik provisioning via the RouterOS API — DHCP leases, Simple Queues, ARP, firewall address-lists, PPP secrets (PPPoE)
  • Multi-router / multi-site — every customer belongs to a specific MikroTik and network
  • Plans (speed profiles) with aggregation — max-limit and limit-at are calculated automatically
  • Status-driven blocking: connected / temporarily disconnected / non-payer / contract terminated
  • Users and roles, password management, trash bin and audit log
  • One-click database backup with FTP/FTPS upload and restore from backup
  • Optional geo-blocking of the login (Cloudflare header or offline CIDR lists)
  • UI in 10 languages, light / dark theme, responsive design

Tech & architecture

Plain PHP 8.1+ with PDO (SQLite by default, MySQL for larger setups) — no framework, no Composer dependencies. Talks to routers over the RouterOS API (8728, or api-ssl 8729). Ships with a Docker compose setup (host networking, Apache behind an nginx reverse proxy) and CLI helper scripts for JSON import, reading real speeds from Simple Queues, bulk edits and geo-IP updates — all with a preview mode before --apply.

Project structure

public/     — web root (UI)
lib/        — application logic + RouterOS API client
lang/       — 10 language files (Slovak source, English fallback)
docker/     — Dockerfile + sample nginx proxy config
schema.sql  — MySQL schema (SQLite is created automatically)

Requirements

  • PHP 8.1+ with PDO (pdo_sqlite or pdo_mysql) — or just Docker + docker compose
  • MikroTik RouterOS with the API service enabled (8728, or api-ssl 8729)