PHPackages                             zilleali/mikrotik-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. zilleali/mikrotik-laravel

ActiveLibrary[HTTP &amp; Networking](/categories/http)

zilleali/mikrotik-laravel
=========================

MikroTik RouterOS API for Laravel — PPPoE, Hotspot, Queues &amp; Monitoring

v1.4.0(2w ago)110↑500%2[5 issues](https://github.com/Zilleali/mikrotik-laravel/issues)[6 PRs](https://github.com/Zilleali/mikrotik-laravel/pulls)MITPHPPHP ^8.2CI passing

Since May 15Pushed 1w agoCompare

[ Source](https://github.com/Zilleali/mikrotik-laravel)[ Packagist](https://packagist.org/packages/zilleali/mikrotik-laravel)[ RSS](/packages/zilleali-mikrotik-laravel/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (5)Dependencies (8)Versions (14)Used By (0)

zilleali/mikrotik-laravel
=========================

[](#zillealimikrotik-laravel)

[![Tests](https://github.com/Zilleali/mikrotik-laravel/actions/workflows/ci.yml/badge.svg)](https://github.com/Zilleali/mikrotik-laravel/actions)[![Packagist](https://camo.githubusercontent.com/f11fa337984109346798959ce9adf9991ca81fb43331e22e93d1b29f7bd0c631/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7a696c6c65616c692f6d696b726f74696b2d6c61726176656c)](https://packagist.org/packages/zilleali/mikrotik-laravel)[![PHP](https://camo.githubusercontent.com/999d7cba2be493926df9adfe235e6b150bb07027f481c48307b5f2811dc70041/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7a696c6c65616c692f6d696b726f74696b2d6c61726176656c)](https://packagist.org/packages/zilleali/mikrotik-laravel)[![License](https://camo.githubusercontent.com/662d088d86a77c456c2f59c14c9330490f4fa9a6221b5f006e0f8fd2fdca37b6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f5a696c6c65616c692f6d696b726f74696b2d6c61726176656c)](LICENSE)[![MTCNA](https://camo.githubusercontent.com/3bb792e5401260325cdb6e25ad30d18b3751ccc22d537714ca3c3020604f58e2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d54434e412d4365727469666965642d303039414337)](https://zilleali.com)[![Wiki](https://camo.githubusercontent.com/0340cad6ca6533914cb39c47bbdb73247c445701199dc8a2070dacab2d331960/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f57696b692d446f63756d656e746174696f6e2d626c7565)](https://github.com/Zilleali/mikrotik-laravel/wiki)[![Visitors](https://camo.githubusercontent.com/06a8308ba62020b6677acd06e867bc8e26ad932ae67f8c8e97ef454f591be234/68747470733a2f2f6170692e76697369746f7262616467652e696f2f6170692f76697369746f72733f706174683d68747470732533412532462532466769746875622e636f6d2532465a696c6c65616c692532466d696b726f74696b2d6c61726176656c266c6162656c3d56697369746f7273266c6162656c436f6c6f723d25323335353535353526636f756e74436f6c6f723d253233314439453735267374796c653d666c6174)](https://camo.githubusercontent.com/06a8308ba62020b6677acd06e867bc8e26ad932ae67f8c8e97ef454f591be234/68747470733a2f2f6170692e76697369746f7262616467652e696f2f6170692f76697369746f72733f706174683d68747470732533412532462532466769746875622e636f6d2532465a696c6c65616c692532466d696b726f74696b2d6c61726176656c266c6162656c3d56697369746f7273266c6162656c436f6c6f723d25323335353535353526636f756e74436f6c6f723d253233314439453735267374796c653d666c6174)

> **MikroTik RouterOS API for Laravel** — Manage PPPoE, Hotspot, Queues, Firewall &amp; System health from any Laravel application. Built by an [MTCNA-certified](https://zilleali.com) ISP engineer.

---

Documentation
-------------

[](#documentation)

📖 **[Full Documentation — GitHub Wiki](https://github.com/Zilleali/mikrotik-laravel/wiki)**

PageLinkGetting Started[→ Read](https://github.com/Zilleali/mikrotik-laravel/wiki/Getting-Started)Managers Reference[→ Read](https://github.com/Zilleali/mikrotik-laravel/wiki/Managers-Reference)Configuration[→ Read](https://github.com/Zilleali/mikrotik-laravel/wiki/Configuration)Multi-Router Setup[→ Read](https://github.com/Zilleali/mikrotik-laravel/wiki/Multi-Router-Setup)SSL Setup[→ Read](https://github.com/Zilleali/mikrotik-laravel/wiki/SSL-Setup)Changelog[→ Read](https://github.com/Zilleali/mikrotik-laravel/wiki/Changelog)Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Quick Start](#quick-start)
- [PPPoE Manager](#pppoe-manager)
- [Hotspot Manager](#hotspot-manager)
- [Queue Manager](#queue-manager)
- [Firewall Manager](#firewall-manager)
- [System Manager](#system-manager)
- [Multi-Router Setup](#multi-router-setup)
- [Events](#events)
- [Filament Integration](#filament-integration)
- [Testing](#testing)
- [Changelog](#changelog)
- [Contributing](#contributing)
- [License](#license)

---

Features
--------

[](#features)

- **PPPoE Management** — secrets, profiles, sessions, bulk operations
- **Hotspot Management** — users, profiles, active hosts, voucher generation
- **Queue Management** — simple/tree queues, bulk bandwidth limits
- **Firewall Management** — filter rules, NAT, mangle, address lists
- **System Management** — resources, health, logs, ping, reboot
- **Interface Management** — traffic monitoring, VLANs, enable/disable
- **DHCP Management** — leases, servers, static assignments
- **Wireless Management** — registration table, access list, client count
- **IP Pool Management** — address ranges, usage tracking
- **RADIUS Management** — servers, incoming CoA config
- **Router User Management** — Winbox/SSH/API users, groups
- **VPN Management** — WireGuard peers, L2TP/PPTP sessions
- **Bridge Management** — bridges, ports, host table, L2 filters
- **SSL Connection** — TLS encrypted API connection (port 8729)
- **ConnectionPool** — persistent connections, auto-reconnect
- **Widget Data Classes** — ready-to-use data providers for dashboards
- **Multi-Router Support** — manage multiple routers from one app
- **Caching Layer** — reduce router API load automatically
- **Retry Mechanism** — configurable attempts + delay
- **Laravel Events** — SessionCreated, SessionDisconnected, RouterUnreachable
- **Artisan Commands** — mikrotik:ping, mikrotik:sync, mikrotik:monitor

Available Managers
------------------

[](#available-managers)

ManagerFacade MethodSincePppoeManager`MikroTik::pppoe()`v1.0.0HotspotManager`MikroTik::hotspot()`v1.0.0QueueManager`MikroTik::queue()`v1.0.0FirewallManager`MikroTik::firewall()`v1.0.0SystemManager`MikroTik::system()`v1.0.0InterfaceManager`MikroTik::interfaces()`v1.0.0DhcpManager`MikroTik::dhcp()`v1.0.0WirelessManager`MikroTik::wireless()`v1.0.0IpPoolManager`MikroTik::ipPool()`v1.0.0RadiusManager`MikroTik::radius()`v1.0.0RouterUserManager`MikroTik::routerUsers()`v1.0.0VpnManager`MikroTik::vpn()`v1.0.0BridgeManager`MikroTik::bridge()`v1.1.0IpAddressManager`MikroTik::ipAddress()`v1.2.0ArpManager`MikroTik::arp()`v1.2.0DnsManager`MikroTik::dns()`v1.2.0RouteManager`MikroTik::routes()`v1.2.0NtpManager`MikroTik::ntp()`v1.2.0ScriptManager`MikroTik::scripts()`v1.2.0SyslogManager`MikroTik::syslog()`v1.2.0SessionMonitor`MikroTik::sessionMonitor()`v1.2.0UsageTracker`MikroTik::usageTracker()`v1.2.0RateLimiter`MikroTik::rateLimiter()`v1.2.0---

SSL Connection
--------------

[](#ssl-connection)

For production ISPs — enable TLS encrypted API connection:

```
MIKROTIK_SSL=true
MIKROTIK_SSL_VERIFY=false
```

```
// Auto-selected from config
MikroTik::pppoe()->getActiveSessions(); // uses SSL if configured

// Manual
$client = new RouterosClientSSL(
    host:       '192.168.88.1',
    verifyPeer: false, // accept self-signed cert
);
```

Enable API-SSL on router:

```
IP → Services → api-ssl → enabled

```

Requirements
------------

[](#requirements)

RequirementVersionPHP^8.2Laravel^11.0 | ^12.0RouterOS6.43+ | 7.xMikroTik APIPort 8728 (plain) or 8729 (SSL)> Make sure the **API service is enabled** on your MikroTik router: `IP → Services → api → enabled`

---

Installation
------------

[](#installation)

```
composer require zilleali/mikrotik-laravel
```

Publish the config file:

```
php artisan vendor:publish --tag=mikrotik-config
```

---

Configuration
-------------

[](#configuration)

Edit `config/mikrotik.php`:

```
return [

    /*
    |--------------------------------------------------------------------------
    | Default Router Connection
    |--------------------------------------------------------------------------
    | Used when no specific router is selected via MikroTik::router('name')
    */

    'default' => env('MIKROTIK_HOST', '192.168.88.1'),

    'host'     => env('MIKROTIK_HOST',    '192.168.88.1'),
    'port'     => env('MIKROTIK_PORT',    8728),
    'username' => env('MIKROTIK_USER',    'admin'),
    'password' => env('MIKROTIK_PASS',    ''),
    'timeout'  => env('MIKROTIK_TIMEOUT', 10),

    /*
    |--------------------------------------------------------------------------
    | Multiple Routers
    |--------------------------------------------------------------------------
    | Define named routers for multi-site ISP setups.
    | Access via: MikroTik::router('branch')->pppoe()->getSessions()
    */

    'routers' => [
        'main' => [
            'host'     => env('MIKROTIK_MAIN_HOST', '192.168.88.1'),
            'port'     => env('MIKROTIK_MAIN_PORT', 8728),
            'username' => env('MIKROTIK_MAIN_USER', 'admin'),
            'password' => env('MIKROTIK_MAIN_PASS', ''),
            'timeout'  => 10,
        ],
        'branch' => [
            'host'     => env('MIKROTIK_BRANCH_HOST', '10.0.0.1'),
            'port'     => env('MIKROTIK_BRANCH_PORT', 8728),
            'username' => env('MIKROTIK_BRANCH_USER', 'admin'),
            'password' => env('MIKROTIK_BRANCH_PASS', ''),
            'timeout'  => 10,
        ],
    ],

];
```

Add to your `.env`:

```
MIKROTIK_HOST=192.168.88.1
MIKROTIK_PORT=8728
MIKROTIK_USER=admin
MIKROTIK_PASS=your_password
MIKROTIK_TIMEOUT=10
```

---

Quick Start
-----------

[](#quick-start)

```
use ZillEAli\MikrotikLaravel\Facades\MikroTik;

// PPPoE — get all active sessions
$sessions = MikroTik::pppoe()->getActiveSessions();

// Hotspot — get active hosts count
$count = count(MikroTik::hotspot()->getActiveHosts());

// System — get CPU load
$cpu = MikroTik::system()->getCpuLoad();

// Queue — set bandwidth limit
MikroTik::queue()->setLimit('ali-home', '10M', '10M');

// Firewall — block an IP
MikroTik::firewall()->addToAddressList('1.2.3.4', 'blocked');
```

---

PPPoE Manager
-------------

[](#pppoe-manager)

### Get secrets (users)

[](#get-secrets-users)

```
// All secrets
$secrets = MikroTik::pppoe()->getSecrets();

// Single secret by name
$secret = MikroTik::pppoe()->getSecret('ali-home');

// Find by IP address
$user = MikroTik::pppoe()->getSecretByIp('10.0.0.45');
```

### Create / update / delete

[](#create--update--delete)

```
// Create new PPPoE user
MikroTik::pppoe()->createSecret([
    'name'     => 'ali-home',
    'password' => 'pass123',
    'service'  => 'pppoe',
    'profile'  => '10mbps',
    'comment'  => 'Ali House Connection',
]);

// Update user
MikroTik::pppoe()->updateSecret('ali-home', [
    'password' => 'newpass',
    'profile'  => '20mbps',
]);

// Delete user
MikroTik::pppoe()->deleteSecret('ali-home');
```

### Enable / disable

[](#enable--disable)

```
MikroTik::pppoe()->enableSecret('ali-home');
MikroTik::pppoe()->disableSecret('ali-home');

// Bulk operations
MikroTik::pppoe()->bulkEnable(['user1', 'user2', 'user3']);
MikroTik::pppoe()->bulkDisable(['user1', 'user2']);
```

### Active sessions

[](#active-sessions)

```
// Get all active sessions
$sessions = MikroTik::pppoe()->getActiveSessions();

// Kick (disconnect) a user
MikroTik::pppoe()->kickSession('ali-home');

// Bulk kick
MikroTik::pppoe()->bulkKick(['user1', 'user2']);
```

### Profiles

[](#profiles)

```
// Get all profiles
$profiles = MikroTik::pppoe()->getProfiles();

// Create a profile
MikroTik::pppoe()->createProfile([
    'name'             => '20mbps',
    'rate-limit'       => '20M/20M',
    'session-timeout'  => '30d',
]);
```

---

Hotspot Manager
---------------

[](#hotspot-manager)

### Users

[](#users)

```
// Get all hotspot users
$users = MikroTik::hotspot()->getUsers();

// Get single user
$user = MikroTik::hotspot()->getUser('guest001');

// Create user
MikroTik::hotspot()->createUser([
    'name'     => 'guest001',
    'password' => 'pass123',
    'profile'  => 'default',
    'comment'  => '1 hour voucher',
]);

// Update user
MikroTik::hotspot()->updateUser('guest001', [
    'profile' => 'premium',
]);

// Delete user
MikroTik::hotspot()->deleteUser('guest001');

// Enable / disable
MikroTik::hotspot()->enableUser('guest001');
MikroTik::hotspot()->disableUser('guest001');
```

### Active hosts

[](#active-hosts)

```
// Get all active hotspot sessions
$hosts = MikroTik::hotspot()->getActiveHosts();

// Kick a host
MikroTik::hotspot()->kickHost('guest001');
```

### Voucher generation

[](#voucher-generation)

```
// Generate 10 vouchers with default profile
$vouchers = MikroTik::hotspot()->generateVouchers(10);

// With custom prefix and profile
$vouchers = MikroTik::hotspot()->generateVouchers(
    count:   20,
    profile: 'premium',
    prefix:  'VIP',
);

// Each voucher:
// ['name' => 'VIP3F8A2C', 'password' => 'A1B2C3D4', 'profile' => 'premium']

// Print vouchers or export to PDF
foreach ($vouchers as $voucher) {
    echo "User: {$voucher['name']} | Pass: {$voucher['password']}";
}
```

---

Queue Manager
-------------

[](#queue-manager)

### Simple queues

[](#simple-queues)

```
// Get all queues
$queues = MikroTik::queue()->getSimpleQueues();

// Get single queue
$queue = MikroTik::queue()->getSimpleQueue('ali-home');

// Create queue
MikroTik::queue()->createSimpleQueue([
    'name'      => 'ali-home',
    'target'    => '10.0.0.45/32',
    'max-limit' => '10M/10M',
    'comment'   => 'Ali House',
]);

// Update queue
MikroTik::queue()->updateQueue('ali-home', [
    'max-limit' => '20M/20M',
]);

// Delete queue
MikroTik::queue()->deleteQueue('ali-home');

// Enable / disable
MikroTik::queue()->enableQueue('ali-home');
MikroTik::queue()->disableQueue('ali-home');
```

### Bandwidth shortcuts

[](#bandwidth-shortcuts)

```
// Set upload/download limit quickly
MikroTik::queue()->setLimit('ali-home', '10M', '10M');

// Bulk set limits for multiple users
MikroTik::queue()->bulkSetLimit([
    ['name' => 'ali-home',   'ul' => '10M', 'dl' => '10M'],
    ['name' => 'zain-fiber', 'ul' => '20M', 'dl' => '20M'],
    ['name' => 'shop-001',   'ul' => '5M',  'dl' => '5M'],
]);
```

### Tree queues

[](#tree-queues)

```
// Get HTB tree queues
$treeQueues = MikroTik::queue()->getTreeQueues();

// Create tree queue
MikroTik::queue()->createTreeQueue([
    'name'      => 'isp-parent',
    'parent'    => 'global',
    'max-limit' => '100M',
]);
```

---

Firewall Manager
----------------

[](#firewall-manager)

### Filter rules

[](#filter-rules)

```
// Get all filter rules
$rules = MikroTik::firewall()->getFilterRules();

// Add filter rule
MikroTik::firewall()->addFilterRule([
    'chain'       => 'input',
    'action'      => 'drop',
    'src-address' => '1.2.3.4',
    'comment'     => 'block attacker',
]);
```

### NAT rules

[](#nat-rules)

```
// Get NAT rules
$nat = MikroTik::firewall()->getNatRules();

// Add masquerade rule
MikroTik::firewall()->addNatRule([
    'chain'         => 'srcnat',
    'action'        => 'masquerade',
    'out-interface' => 'ether1',
]);
```

### Mangle rules

[](#mangle-rules)

```
// Get mangle rules
$mangle = MikroTik::firewall()->getMangleRules();

// Add mangle rule
MikroTik::firewall()->addMangleRule([
    'chain'            => 'prerouting',
    'action'           => 'mark-connection',
    'new-connection-mark' => 'isp1',
]);
```

### Address lists

[](#address-lists)

```
// Get all address lists
$lists = MikroTik::firewall()->getAddressLists();

// Get specific list
$blocked = MikroTik::firewall()->getAddressList('blocked');

// Add IP to list
MikroTik::firewall()->addToAddressList('1.2.3.4', 'blocked', 'spam IP');

// Remove IP from list
MikroTik::firewall()->removeFromAddressList('1.2.3.4', 'blocked');

// Check if IP is in list
if (MikroTik::firewall()->isIpInList('1.2.3.4', 'blocked')) {
    echo 'IP is blocked';
}
```

---

System Manager
--------------

[](#system-manager)

### Resources

[](#resources)

```
// Full resource info
$resources = MikroTik::system()->getResources();
// returns: cpu-load, free-memory, total-memory, uptime, version, board-name

// Shortcuts
$cpu    = MikroTik::system()->getCpuLoad();     // int: 0-100
$uptime = MikroTik::system()->getUptime();      // string: "14d6h30m"
$ram    = MikroTik::system()->getFreeMemory();  // int: bytes
$ver    = MikroTik::system()->getVersion();     // string: "7.14.3"
```

### Health

[](#health)

```
// Hardware health (supported routers only)
$health = MikroTik::system()->getHealth();
// returns: temperature, voltage, fan-speed

$temp = MikroTik::system()->getTemperature(); // int: Celsius or null
```

### Identity &amp; logs

[](#identity--logs)

```
// Router hostname
$name = MikroTik::system()->getIdentity();  // "Main-Router"

// Set identity
MikroTik::system()->setIdentity('Main-Router');

// Get logs (all)
$logs = MikroTik::system()->getLogs();

// Get last 20 logs
$logs = MikroTik::system()->getLogs(20);

// Filter by topic
$pppoe = MikroTik::system()->getLogsByTopic('pppoe', limit: 10);
```

### Ping &amp; reboot

[](#ping--reboot)

```
// Ping from the router
$result = MikroTik::system()->ping('8.8.8.8', count: 4);

// Check reachability
if (MikroTik::system()->isReachable('8.8.8.8')) {
    echo 'Internet is up';
}

// Reboot router (WARNING: disconnects all sessions)
MikroTik::system()->reboot();
```

---

Multi-Router Setup
------------------

[](#multi-router-setup)

Manage multiple MikroTik routers from a single Laravel application:

```
// Default router (from .env)
MikroTik::pppoe()->getActiveSessions();

// Named router
MikroTik::router('branch')->pppoe()->getActiveSessions();
MikroTik::router('main')->system()->getCpuLoad();

// Loop through all routers
$routers = ['main', 'branch'];

foreach ($routers as $router) {
    $sessions = MikroTik::router($router)->pppoe()->getActiveSessions();
    echo "{$router}: " . count($sessions) . " sessions";
}
```

---

Events
------

[](#events)

The package dispatches Laravel events you can listen to:

```
// EventServiceProvider or using #[AsEventListener]
use ZillEAli\MikrotikLaravel\Events\SessionCreated;
use ZillEAli\MikrotikLaravel\Events\SessionDisconnected;
use ZillEAli\MikrotikLaravel\Events\RouterUnreachable;

// Listen for new PPPoE session
Event::listen(SessionCreated::class, function ($event) {
    Log::info("New session: {$event->username} @ {$event->ip}");
});

// Listen for disconnection
Event::listen(SessionDisconnected::class, function ($event) {
    Log::info("Disconnected: {$event->username}");
});

// Listen for router going offline
Event::listen(RouterUnreachable::class, function ($event) {
    // send alert to NOC team
    Notification::send($noc, new RouterDownNotification($event->host));
});
```

---

Filament Integration
--------------------

[](#filament-integration)

> Available in **v0.3.0** — coming soon.

Register widgets in your Filament panel provider:

```
use ZillEAli\MikrotikLaravel\Filament\Widgets\ActiveSessionsWidget;
use ZillEAli\MikrotikLaravel\Filament\Widgets\BandwidthChartWidget;
use ZillEAli\MikrotikLaravel\Filament\Widgets\RouterHealthWidget;
use ZillEAli\MikrotikLaravel\Filament\Widgets\InterfaceTableWidget;

public function panel(Panel $panel): Panel
{
    return $panel
        ->widgets([
            ActiveSessionsWidget::class,   // live PPPoE + hotspot count
            BandwidthChartWidget::class,   // TX/RX line chart
            RouterHealthWidget::class,     // CPU, RAM, temp bars
            InterfaceTableWidget::class,   // interface up/down table
        ]);
}
```

---

Testing
-------

[](#testing)

Run the test suite:

```
composer test
```

Or with Pest directly:

```
./vendor/bin/pest --no-coverage
```

The package uses **mock RouterOS clients** for all tests — no real router required. All managers are tested with:

- CRUD operations
- Bulk operations
- Edge cases (empty results, not found)
- Exception handling

---

Changelog
---------

[](#changelog)

### v0.1.0 — Initial Release

[](#v010--initial-release)

- `RouterosClient` — TCP socket, length encoding, login (v6 + v7)
- `PppoeManager` — secrets, profiles, sessions, bulk ops
- `HotspotManager` — users, profiles, active hosts, vouchers
- `QueueManager` — simple queues, tree queues, bulk limits
- `FirewallManager` — filter, NAT, mangle, address lists
- `SystemManager` — resources, health, logs, ping, reboot
- CI/CD — GitHub Actions (PHP 8.3 / Laravel 12)
- Packagist published

---

Contributing
------------

[](#contributing)

Contributions are welcome. Please:

1. Fork the repo
2. Create a feature branch (`git checkout -b feature/wireless-manager`)
3. Write tests first — red then green
4. Submit a PR to `develop` branch

---

License
-------

[](#license)

MIT — [Zill E Ali](https://zilleali.com)

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance77

Regular maintenance activity

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

6

Last Release

14d ago

Major Versions

v0.1.0 → v1.0.02026-05-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/883b876c9fadbd49c574cfbc43f5bad221cd5dce64d786f09d8c7659e57e25f5?d=identicon)[zilleali](/maintainers/zilleali)

---

Top Contributors

[![Zilleali](https://avatars.githubusercontent.com/u/63631432?v=4)](https://github.com/Zilleali "Zilleali (95 commits)")

---

Tags

laravelmikrotikmikrotik-hotspotmikrotik-routeros-apinetworkingopen-sourcephppppoequeuesradiusrouteroslaravelnetworkingisprouterosmikrotikhotspotpppoe

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/zilleali-mikrotik-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/zilleali-mikrotik-laravel/health.svg)](https://phpackages.com/packages/zilleali-mikrotik-laravel)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[api-platform/laravel

API Platform support for Laravel

59156.3k10](/packages/api-platform-laravel)[binary-cats/laravel-mailgun-webhooks

Handle Mailgun webhooks in a Laravel application

64318.4k](/packages/binary-cats-laravel-mailgun-webhooks)[onlime/laravel-http-client-global-logger

A global logger for the Laravel HTTP Client

2037.5k](/packages/onlime-laravel-http-client-global-logger)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
