Open-source desktop control panel for Apache, PHP, MySQL, Nginx, and systemd services on Linux.
Website · Snap Store · GitHub
Amper is a lightweight PySide6 desktop app that helps you manage a local Linux development stack from one place — similar to XAMPP or Laragon on Windows, but built natively for Linux with systemd, polkit, and your system package manager.
| Start / Stop services | Apache, Nginx, MySQL, MariaDB, PostgreSQL, Redis, MongoDB, PHP, phpMyAdmin |
| Install / Remove | Uses apt, dnf, yum, pacman, or zypper automatically |
| Monitor ports | Live port table with conflict detection |
| Open configs & logs | One click via xdg-open |
| System tray | Control services without keeping the window open |
Visit the Amper website for screenshots, features, and install options.
- Requirements
- Quick start
- One-time permissions
- Supported services
- Project structure
- How it works
- Install options
- Build Snap package
- Contributing
- License
- Author
| Requirement | Why |
|---|---|
| Python 3.10+ | Runtime |
| systemd | Service state and start/stop |
polkit (pkexec) |
Privileged actions when sudo is not configured |
| libxcb-cursor0 | Required by PySide6 6.5+ on X11 |
# Ubuntu / Debian
sudo apt install libxcb-cursor0
# Fedora
sudo dnf install libxcb-cursor
# Arch
sudo pacman -S libxcb-cursorgit clone https://github.com/HaSh3003/Amper---Linux-Control-Panel.git
cd Amper---Linux-Control-Panel
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
python main.pyWithout setup, every Start/Stop/Install action opens a polkit password dialog. Run once:
In the app: About → Grant Permissions (once)
Or manually:
pkexec bash setup_permissions.sh
newgrp amperThis creates the amper group and /etc/sudoers.d/amper so systemctl and package managers work with sudo -n (no password).
| Module | Detection |
|---|---|
| Apache | apache2 / httpd systemd unit |
| Nginx | nginx unit |
| MySQL | mysql / mysqld unit |
| MariaDB | mariadb unit |
| PostgreSQL | postgresql unit |
| Redis | redis / redis-server unit |
| MongoDB | mongod / mongodb unit |
| PHP | Filesystem (php binary) |
| phpMyAdmin | Filesystem install path |
Services not present on your system appear as Not installed with an Install button.
Amper/
├── main.py # Entry point
├── ui_main.py # All UI (window, tabs, tray, tables)
├── service_manager.py # Service catalog + systemd discovery
├── port_scanner.py # Port scan + conflict detection (psutil)
├── package_manager.py # apt / dnf / yum / pacman / zypper commands
├── privileged.py # sudo / pkexec wrapper
├── service_assets.py # Config, log, and admin paths per service
├── apache_welcome.py # Auto-deploy welcome page to Apache
├── platform_check.py # libxcb-cursor pre-flight check
├── setup_permissions.sh # One-time sudoers setup (root)
├── requirements.txt # PySide6, psutil
├── Amper.desktop # Desktop shortcut (local dev)
│
├── assets/
│ ├── icons/ # App icon + social SVGs
│ └── welcome/ # Apache welcome HTML
│
├── styles/
│ └── dark.qss # Dark theme (Qt Style Sheet)
│
└── snap/ # Snap Store packaging
├── snapcraft.yaml
├── gui/ # Desktop file + icon for snap
└── local/ # build.sh, publish.sh, amper-launch
These folders are generated by Snapcraft — not source code:
| Folder | Created by |
|---|---|
parts/ |
Snapcraft — per-part build |
stage/ |
Snapcraft — staged files |
prime/ |
Snapcraft — final snap contents |
overlay/ |
Snapcraft |
*.snap |
Output of snapcraft pack |
Clean snap build: sudo snapcraft clean
main.py
└── ui_main.py (MainWindow)
├── ModulesDashboard → service_manager + package_manager
├── PortMonitorPanel → port_scanner
├── AboutPanel
├── ActivityLogPanel
└── SystemTrayManager
User clicks Start/Stop/Install
└── privileged.py
├── sudo -n (if permissions configured)
└── pkexec (fallback)
└── systemctl / apt / dnf / ...
Best for development and contributors.
python3 -m venv env && source env/bin/activate
pip install -r requirements.txt
python main.pysudo snap install amper --classic
amperClassic confinement is required for host systemctl and package manager access.
sudo snapcraft pack --destructive-mode
# or: bash snap/local/build.sh
bash snap/local/publish.sh # upload to Snap Store (after snapcraft login)Contributions are welcome — bug reports, ideas, and pull requests.
- Fork the repository
- Create a feature branch
- Make your changes
- Test with
python main.py - Open a pull request
This project is open source under the MIT License.
Copyright © 2026 Hesham Yasser
Hesham Yasser — Software Engineer
| Website | amper-linux-control-panel.netlify.app |
| hesham-yasser | |
| X | @HaSh_Perfecto |
| GitHub | HaSh3003 |