Linux downloads

PXM for Linux.

One command installs PXM on Ubuntu 22.04, 24.04 or 26.04. Run setup when it finishes to choose your runtimes, services and startup settings. Both ARM64 and x86_64 are supported.

Install PXM

Paste this into your terminal. PXM selects the correct build for your computer.

Terminal
curl -fsSL https://pxm.sh/install.sh | bash

Follow the one-time shell or account instruction printed by the installer, then run:

Terminal
pxm setup

Choose your PHP and Node.js versions, optional Bun and databases, and boot startup. Setup starts only when you run it.

What setup does

Choose a production server or a development computer, then select PHP, Node.js and any databases you need. Setup downloads verified packages, shows progress and explains the next step. PHP, Node.js, sites and HTTPS are free. New database services require PXM Pro; setup offers private license activation when needed.

Run pxm setup again whenever you want to add something. It preserves your installed runtime defaults and existing services. Existing databases keep their ports, passwords and data. Changing a live database engine or restarting an existing manager stays an explicit maintenance action.

The installer does not run setup automatically. It verifies the signed release and archive before installation, then prints the setup command. It needs standard Ubuntu tools: Python 3, OpenSSL and trusted HTTPS CA certificates. No compiler, Go, Docker, Homebrew or pip is required. If a system prerequisite is missing, the installer explains what it needs and asks before installing it.

Accounts and existing installations

Install as the ordinary account that will own your applications and databases. On a root-only server, the installer lets you select an existing account or create a dedicated pxm account, then prints the exact account and setup steps. For boot startup, run its printed administrator commands before switching accounts. They enable linger and wait for the account's service manager to start. PXM services run without root privileges, and the dedicated account receives no sudo privileges.

If your shell has not loaded the new PATH yet, follow the one-line instruction printed by the installer. Add that line to your shell profile if your account does not already include ~/.local/bin.

Running the installer again checks the installed executable against a verified PXM release. The current version stays in place; a newer release installs atomically. Configuration and running services stay intact. An unrelated executable or older Omarchy command is reported for you to resolve instead of being overwritten.

Unattended installation

For a fleet, explicitly choose the service account and setup options. Run this installer command as root only when selecting another existing account:

Terminal
curl -fsSL https://pxm.sh/install.sh | bash -s -- --yes --user deploy

Then run setup as that account:

Terminal
loginctl enable-linger deploy
systemctl start "user@$(id -u deploy).service"
sudo -iu deploy sh -c 'export PATH="$HOME/.local/bin:$PATH"; exec pxm setup --yes --mode production --php stable --node lts --service none --startup on'

For a normal user installing into their own account, omit --user. Add Pro activation with --license-file /absolute/private/license-key when selecting new paid services. Keep that file owned by the chosen account with mode 0600. Keys are never passed as command arguments or printed in setup output.

Unattended setup requires an explicit mode. Omitted selections are skipped. --php stable chooses the highest published stable PHP line, while --node lts selects the reviewed Node.js 24 LTS line. Existing defaults are preserved. Preview PHP remains an explicit runtime installation after setup.

Manual downloads

Prefer to install the archive yourself? Choose the matching architecture below.

PXM 0.7.0 is available for both architectures. Each archive contains the CLI, its release receipt and license notices.

ARM64

Download PXM 0.7.0 for ARM64

Archive SHA-256:

SHA-256
cccf5aa728794c1a1dd0ede020d920d1279cf2ec2a464a9281732fa6189a1b20

x86_64 (AMD64)

Download PXM 0.7.0 for x86_64 (AMD64)

Archive SHA-256:

SHA-256
5d74fe6a5e35bfb50e9df29a4a418481f890ef0214dbeb60f3e217d632055046

Signed stable release feed · Release verification

Run uname -m: aarch64 uses ARM64 and x86_64 uses AMD64. Download the matching archive, compare sha256sum with its listed checksum, and extract it into a private directory. For a new installation, run the following from the extracted release directory:

Terminal
install -d -m 755 "$HOME/.local/bin"
test ! -e "$HOME/.local/bin/pxm" && test ! -L "$HOME/.local/bin/pxm" && install -m 755 ./pxm "$HOME/.local/bin/pxm"
export PATH="$HOME/.local/bin:$PATH"
pxm setup

Keep the release archive for its receipt and third-party license notices. The executable and its directory must belong to your account, with no group or other write permission. PXM uses ~/.local/share/pxm-server and does not adopt another manager's data automatically.

Your first website

PHP, Node.js, sites and HTTPS are free features.

Terminal
pxm php install 8.5
pxm php use 8.5
pxm node install 24
pxm node use 24
pxm web enable --email you@example.com
pxm site add app.example.com /home/deploy/app/public --type php --php 8.5

Point the domain to the server and allow inbound ports 80 and 443. PXM does not change DNS or firewall rules. Enabling routing requests administrator access for its systemd unit; the router and application workers run as your unprivileged account. Read website operations before deploying a live application.

Add a database

New managed services and engine updates require PXM Pro. Existing services remain startable, backed up and recoverable offline.

Terminal
pxm license activate
pxm startup enable
pxm service add mysql --name database
pxm service start database
pxm service env database

The last command explicitly displays credentials. Keep its output private. Default ports are MySQL 3306, PostgreSQL 5432 and Redis 6379. Database operations covers maintenance and recovery. To move a database you already run, follow the import guide.

Updates you control

Terminal
pxm self-update --check
pxm self-update
# Schedule database maintenance before restarting its manager.
pxm daemon restart

pxm catalog php
pxm php install 8.5
pxm node available
pxm node install 24

pxm site update app.example.com --php 8.5
pxm site update node.example.com --node 24
pxm web update-check
pxm web update
pxm service update-check database
pxm service update database

The CLI updater verifies the signed feed, archive checksum and architecture. Installing it leaves running services alone. During a maintenance window, daemon restart cleanly stops owned databases and starts those with autostart enabled. It also refreshes PXM's startup configuration so background features such as automatic site discovery work correctly after an upgrade. Others remain stopped. The separate router and website units are not restarted by this command.

Runtime installation and global selection do not silently replace a production site's pinned worker. Update the site when ready. Router updates use a graceful restart. Database engine updates stay within a compatible line; major migrations require an explicit import.

Only accepted packages appear in the catalogs. The publisher checks reviewed compatible lines and builds paired architectures on the build Mac when it is running and its dependencies are available. It does not publish unreviewed new major lines or guarantee immediate availability after an upstream release.