Installation, Upgrade, and Uninstall
This page explains how to install the DaxPay operations panel on a Linux server, and how to manage, upgrade, and uninstall it afterwards, including its directory layout. To deploy the business system for the first time, continue with the Deployment Wizard; if you just want a quick one-shot deployment, go straight to One-Click Deployment.
Prerequisites
| Item | Requirement | Notes |
|---|---|---|
| Architecture | x86_64 (amd64) | The current package does not support arm64 |
| OS | Ubuntu / Debian / CentOS / Rocky / RHEL / AlmaLinux / Fedora | Other distros only trigger a warning and may not block the install |
| Disk | At least 500 MB on the partition holding the install directory | Business images and data need extra space |
| Privileges | root or sudo | Needed to install dependencies, operate Docker, and bind ports |
| Required dependencies | xz, sha256sum | A missing xz triggers an automatic install attempt per distro |
| Online install dependencies | curl | Used to download the script and the package |
For production servers, Ubuntu 22.04 or later with 8 GB+ of memory is recommended, and you should confirm in advance that ports 8060 and 80 are not taken by other services (the gateway listens on 80 only; HTTPS is terminated by the outer layer, so this machine does not use 443).
Online Installation
Online installation downloads the script and the amd64 package, then verifies the SHA256, extracts, installs, and starts the panel:
curl -fsSL https://download.daxpay.top/open/install/install.sh | sudo bash
# or
wget -qO- https://download.daxpay.top/open/install/install.sh | sudo bashThe script works as follows:
- Checks architecture, distro, disk, and run privileges.
- Checks or installs xz; the script downloads the package via curl and enforces a SHA256 check.
- Downloads the archive and enforces SHA256 verification.
- Installs to /opt/daxpay and creates the daxpay command symlink.
- Generates a systemd service per your choice, or falls back to background-process mode.
- Starts the panel and prints the full access URL (with the security entrance) and the initial admin password.
After installation, do not save only the IP and port — save the full address, for example:
http://192.168.1.10:8060/k3x9m2qp4w7nbd5eThe last segment is the random security entrance. Visiting the bare IP and port returns 404 by design; run daxpay entrance show if you forget the entrance.
SHA256 verification failure
On verification failure the installation terminates immediately — it never skips verification and forces the install. Common causes: incomplete download, a version mismatch between the script and the package, or a download source problem. Fetch install.sh and the package of the same version again and retry; use offline installation on restricted networks.
Offline Installation
Offline installation fits servers that cannot reach the download source. It only solves the package transfer problem — pulling Docker images, installing dependencies, and accessing payment channels later on still require network access.
Prepare the following two files and put them in the same directory:
| File | Purpose |
|---|---|
| install.sh | Install script, with the SHA256 of the matching package built in |
| dax-pay-installer-linux-amd64.xz | Operations panel archive |
On the target server, run:
sudo bash install.shor:
chmod +x install.sh
sudo ./install.shThe script only looks for the .xz file in its own directory, not in the current working directory. Both files are mandatory and must come from the same release, otherwise the run aborts on an SHA256 mismatch.
systemd and Background Mode
The installer detects automatically whether the current environment supports systemd. Regular Linux servers normally use systemd; environments without a usable systemd (containers, WSL, etc.) fall back to background-process mode.
| Item | systemd available | systemd unavailable (container / WSL) |
|---|---|---|
| Start on boot | Supported | Not supported |
| Restart on crash | Restart=on-failure | Not supported |
| Start/stop commands | systemctl start daxpay-panel | daxpay start / daxpay stop |
| Port | 8060 by default | Customizable with --port |
| Logs | journalctl -u daxpay-panel | <workdir>/logs/installer-stdout.log |
The service unit lives at /etc/systemd/system/daxpay-panel.service and the service name is daxpay-panel. Passing --yes during installation accepts the default options and skips the interactive confirmation.
Upgrade
Fresh install recommended
DaxPay is iterating quickly and releases may contain breaking changes (panel configuration is not guaranteed to be compatible across versions). Before upgrading a production environment, check the official changelog to assess the impact; for cross-major-version upgrades or deployments that have fallen far behind, installing a brand-new environment and migrating the data is recommended.
Upgrading from the Panel
Click the panel version number in the top bar (a red dot appears when a new version is available) to open the "Panel Upgrade" dialog: check for updates → confirm → wait for download and restart → see the result. A failed upgrade rolls back to the old version automatically; if the panel does not come back within the expected time, follow the result page to inspect manually, or retry with the script method below. When the system lacks the xz command the dialog reports that upgrading is unavailable — the install steps are in Configuration and Troubleshooting - Installation Stage.
Script Upgrade
Upgrades keep the working directory and business data intact. Use --force when you need to force a re-download and overwrite the current panel:
# Online upgrade
curl -fsSL https://download.daxpay.top/open/install/install.sh | sudo bash -s -- install --force
# Offline upgrade: overwrite the old files with the two files of the same version, then run
sudo bash install.sh --forceBefore overwriting, the old binary is backed up as <binary>.bak. After upgrading, confirm the panel is healthy with:
daxpay status
daxpay entrance showUpgrading the panel does not rebuild DaxPay business containers automatically. For business version switches, image builds, and business re-deployment, use the panel's deployment wizard or "Operations Management → Business Environment".
Uninstall
By default, uninstall only removes the panel program, the symlink, the script, and the systemd unit; the working directory and business data are kept:
daxpay uninstallTo also wipe the panel working directory, pass --purge explicitly and confirm twice:
daxpay uninstall --purgeuninstall does not stop or remove already-deployed business containers. To tear down the business environment as well, run the following explicitly:
cd /opt/daxpay
docker compose -f docker-compose.biz.yml down -v
docker compose -f docker-compose.yml down -v
docker compose -f docker-compose.gateway.yml down -vInstallation Directory
The default working directory is /opt/daxpay:
/opt/daxpay/
├── installer-state.json Panel state, account credentials, and deployment snapshot
├── installer.db Operation audit log (SQLite)
├── installer-initial-password.txt Initial password generated on first startup
├── dax-pay-installer Panel binary
├── install.sh Management script
├── docker-compose.yml Base environment
├── .env Base environment credentials
├── docker-compose.biz.yml Business services
├── .env.biz Business services configuration
├── docker-compose.gateway.yml Gateway
├── .env.gateway Gateway configuration
├── logs/
│ ├── installer.log Panel access log
│ └── installer-stdout.log Background-mode startup output
└── data/ Data volumes
├── postgresql/ redis/ artemis/ Base environment data
├── biz/ Business data and runtime configuration
├── ip/ ip2region offline database (used when building backend images)
├── backup/ Database backups
└── nginx/ Gateway configuration, certificates, and logsNext Steps
- Deployment Wizard: complete code, image, base environment, business, and gateway deployment in six steps.
- Daily Operations: check service status, start/stop containers, view logs, and manage the security entrance.
- Command-Line Usage: use the daxpay command when the panel is unreachable or for automation.