-
Notifications
You must be signed in to change notification settings - Fork 0
Supported OS
PulseDeploy supports 4 Linux families with a dedicated OS module for each. The correct module is auto-loaded at runtime based on /etc/os-release.
| Version | Status | Notes |
|---|---|---|
| 20.04 LTS (Focal) | ✅ Supported | |
| 22.04 LTS (Jammy) | ✅ Supported | Recommended |
| 24.04 LTS (Noble) | ✅ Supported |
To add support for a new distro, create scripts/os/your_distro.sh implementing the interface above, then add a case entry in the detect_os() function in bootstrap.sh.
See CONTRIBUTING.md for the full guide.
# Supported OS & DistrosPulseDeploy supports 4 Linux families with a dedicated OS module for each. The correct module is auto-loaded at runtime based on /etc/os-release.
| Version | Status | Notes |
|---|---|---|
| 20.04 LTS (Focal) | ✅ Supported | |
| 22.04 LTS (Jammy) | ✅ Supported | Recommended |
| 24.04 LTS (Noble) | ✅ Supported |
PHP source: Ondřej Surý PPA (ppa:ondrej/php)
MySQL source: Official MySQL APT repo
Firewall: UFW
| Version | Status | Notes |
|---|---|---|
| 11 (Bullseye) | ✅ Supported | |
| 12 (Bookworm) | ✅ Supported | Recommended |
PHP source: Sury.org repo (packages.sury.org/php)
MySQL source: Official MySQL APT repo
Firewall: UFW
| Version | Status | Notes |
|---|---|---|
| Amazon Linux 2 | ✅ Supported | Uses amazon-linux-extras for PHP |
| Amazon Linux 2023 | ✅ Supported | Recommended for new EC2 instances |
PHP source: amazon-linux-extras (AL2) or default dnf modules (AL2023) MySQL source: Official MySQL RPM repo (falls back to MariaDB) Firewall: firewalld AWS extras: IMDSv2 instance detection, Security Group warnings
See the AWS EC2 Guide for EC2-specific setup steps.
| Distro | Version | Status |
|---|---|---|
| CentOS | 8 | ✅ Supported |
| Rocky Linux | 8 | ✅ Supported |
| Rocky Linux | 9 | ✅ Supported |
| AlmaLinux | 8, 9 | ✅ Supported |
PHP source: Remi repository (rpms.remirepo.net)
MySQL source: Official MySQL RPM repo
Firewall: firewalld
SELinux: Script detects Enforcing mode and outputs the required boolean commands
If SELinux is in Enforcing mode, PulseDeploy will warn you and print the commands needed:
setsebool -P httpd_can_network_connect 1
setsebool -P httpd_execmem 1Run these after installation if Nginx/Apache can't connect to PHP-FPM.
PulseDeploy sources /etc/os-release and matches on $ID:
case "$OS_ID" in
ubuntu) source scripts/os/ubuntu.sh ;;
debian) source scripts/os/debian.sh ;;
amzn) source scripts/os/amazon_linux.sh ;;
centos|rocky) source scripts/os/centos_rocky.sh ;;
esacEach OS module exposes a consistent interface:
| Function | Purpose |
|---|---|
os_update |
Update system packages |
os_install_base |
Install curl, git, unzip, build tools |
os_get_php_repo |
Add PHP repo for modern versions |
os_get_mysql_repo |
Add MySQL repo |
os_pkg_install |
Install packages (apt/dnf abstraction) |
os_svc_enable |
Enable + start a systemd service |
os_firewall_cmd |
Add firewall rules (ufw/firewalld abstraction) |
To add support for a new distro, create scripts/os/your_distro.sh implementing the interface above, then add a case entry in the detect_os() function in bootstrap.sh.
See [CONTRIBUTING.md](https://github.com/Xbot-me/PulseDeploy/blob/main/CONTRIBUTING.md) for the full guide.