88b d88 88 88 88888888ba 88888888ba 8b d8
888b d888 "" 88 88 "8b 88 "8b Y8, ,8P
88`8b d8'88 88 88 ,8P 88 ,8P `8b d8'
88 `8b d8' 88 88 88 ,d8 ,adPPYba, 88aaaaaa8P' 88aaaaaa8P' Y88P
88 `8b d8' 88 88 88 ,a8" a8" "8a 88""""""' 88""""""8b, d88b
88 `8b d8' 88 88 8888[ 8b d8 88 88 `8b ,8P Y8,
88 `888' 88 88 88`"Yba, "8a, ,a8" 88 88 a8P d8' `8b
88 `8' 88 88 88 `Y8a `"YbbdP"' 88 88888888P" 8P Y8
MikoPBX is an open-source PBX system with a modern web interface for managing Asterisk. It ships as a compact Linux distribution with all necessary services pre-configured — Asterisk, Nginx, PHP-FPM, Redis, Fail2Ban, and more. You can write any module you can think of and distribute it to your users through the built-in marketplace.
Install MikoPBX on premise, in a virtual machine, in a Docker or LXC container, or on any major cloud provider (AWS, Google Cloud, Azure, etc.)
The system has an easy and convenient web interface with call recording, conference calls, voicemail, call transfers and pickup, call queues, IVR menus, inbound and outbound call rules, holidays and night-time call switcher, custom call-flow programming, and a marketplace with paid and free extensions. All core business functionality is free forever!
MikoPBX can be deployed in multiple ways depending on your environment:
Download the latest ISO and boot from it in your hypervisor:
| Hypervisor | Guide |
|---|---|
| VMware ESXi | Installation guide |
| VMware Workstation Pro | Installation guide |
| VMware Fusion (Mac) | Installation guide |
| VirtualBox | Installation guide |
| Hyper-V | Installation guide |
| Proxmox (VM) | Installation guide |
| Proxmox (LXC container) | Installation guide |
| UTM (Apple Silicon) | Installation guide |
- Docker installation prerequisites
- Running MikoPBX in a container
- Running MikoPBX with Docker Compose
| Provider | Guide |
|---|---|
| AWS EC2 | Deployment guide • AWS Marketplace |
| Google Cloud | Deployment guide • GCP Marketplace |
| Microsoft Azure | Deployment guide |
| DigitalOcean | Deployment guide |
| Vultr | Deployment guide |
| Alibaba Cloud | Deployment guide |
| Hetzner Cloud | Deployment guide |
Open the web interface and log in with default credentials — username: admin, password: admin.
Then follow the Quick Start guide to configure your system.
- Compact Linux distribution — boots in seconds.
- Easy to install, easy to set up.
- Multilingual interface (26 languages) with community translation via Weblate.
- x86_64 and ARM64 architectures.
- Latest PJSIP stack and Asterisk 22 LTS.
- Dual-stack IPv4/IPv6 networking.
- Fail2Ban, iptables firewall, WebAuthn/Passkey authentication.
- Modular architecture with a plugins marketplace.
- PHP 8.4, Phalcon Framework, Nginx, Redis.
- REST API with 259+ endpoints and JWT authentication.
- Cloud auto-provisioning (AWS, GCP, Azure, DigitalOcean, Vultr, Yandex Cloud, VK Cloud, Alibaba Cloud).
- Modern codebase written according to PSR standards and Airbnb JS style.
| Concurrent Calls | CPU | RAM | Storage |
|---|---|---|---|
| 5–10 | 1 GHz x86-64 or ARM64, 1–2 cores | 2 GB | 1 GB system + 50 GB recordings |
| Up to 25 | 3 GHz x86-64 or ARM64 | 2 GB | 1 GB system + 50 GB recordings |
| 25+ | Dual CPU 3 GHz x86-64 | 4 GB+ | 1 GB system + 50 GB recordings |
See the full system requirements.
For easy customisations, use the dialplan application editor. It supports PHP-AGI or Asterisk Dialplan language.
Or use direct system file customisation on the web interface.
MikoPBX usually loads from a read-only offload partition. If you want to change something in the core, remount the partition to write mode with the SSH command: remount-offload
If you want to add new functionality, we strongly advise you look at the ModuleTemplate repository.
MikoPBX is a self-contained Linux distribution built on T2 SDE. Key components:
| Component | Version | Purpose |
|---|---|---|
| Asterisk | 22 | PBX engine with PJSIP stack |
| PHP | 8.4 | Application runtime |
| Phalcon | 5 | High-performance PHP framework |
| Nginx | 1.29 | Web server with WebSocket support (nchan) |
| Redis | 7 | Cache, sessions, and API queue |
| Beanstalkd | 1.12 | Background job processing |
| Fail2Ban | 1 | Intrusion prevention |
| SQLite | — | Main database and CDR storage |
src/
├── AdminCabinet/ # Web UI (MVC + Volt templates + Semantic UI)
├── Common/ # Models, translations, DI providers
├── Core/ # Asterisk configs, system utilities, workers
├── Modules/ # Module framework
├── PBXCoreREST/ # REST API (49 controllers, 259+ endpoints)
└── Service/ # Service layer
The web interface has been translated into 26 languages with the help of our community:
If you find any mistakes, you are welcome to fix them on the Weblate translation service.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Forum: forum.mikopbx.com — questions, discussions, community help
- Telegram: Developer Chat — real-time community chat
- Bug Reports: GitHub Issues
- Documentation: docs.mikopbx.com
- Paid Support: Professional support from MIKO LLC
Become a sponsor and get your logo on our README on GitHub with a link to your site. Become a sponsor
MikoPBX© — free phone system for small business Copyright © 2017–2026 Alexey Portnov and Nikolay Beketov
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.


