Документація доступна англійською та російською мовами. Це англійська версія.

Installation

Installing WardPane on a clean Ubuntu 24.04 LTS server takes a few minutes. You need root access over SSH, and the installer checks the rest itself.

Requirements

What Needed
System Ubuntu 24.04 LTS, x86_64 or arm64, freshly installed
Memory 1 GB of RAM is enough for a dozen small sites. On 512 MB, use the GeoLite2 Country database instead of City
Ports 80 and 443 for the sites, 1500 for the panel. They must be free: if nginx or Apache holds them, the installer stops
Access root, or a user with sudo
Network outbound HTTPS to Let’s Encrypt, nodejs.org and wardpane.com

If your VPS provider has its own firewall (often called security groups), open TCP 80, 443 and 1500 there as well.

One command

Connect to the server over SSH and run:

curl -fsSL https://wardpane.com/install | sudo bash

The script:

  1. checks that the system is Ubuntu 24.04, that it runs as root and that curl, tar and sha256sum are present;
  2. asks for your email and shows the links to the Terms of use, the Privacy policy and the Consent to the processing of personal data;
  3. asks whether you accept the Terms and the Privacy policy, then whether you consent to the processing of personal data. Answering No to either stops the install;
  4. asks whether to send you news and offers (the default is No);
  5. sends a six-digit code to your email. Type it in; it is valid for 15 minutes and 5 attempts;
  6. downloads the release over HTTPS, checks its SHA-256 checksum against the one published on wardpane.com, extracts it and runs the panel’s install.sh. If the checksum does not match, it stops before running anything.

To pass options to install.sh, add them after bash -s --:

curl -fsSL https://wardpane.com/install | sudo bash -s -- --php --email [email protected]

From the archive

Request the archive on the download page. The link you get by email works for 24 hours and for a single download. Check its SHA-256 checksum as described on that page, copy the archive to the server, then:

tar xzf wardpane-2.0.0.tar.gz
cd wardpane
sudo ./install.sh --email [email protected]

What the installer does

  1. Checks the OS, architecture, memory, disk, free ports and that the Let’s Encrypt API is reachable.
  2. Installs Node.js LTS if a suitable version is missing.
  3. Creates the system user wardpane and the folders /opt/wardpane, /var/lib/wardpane and /var/www. The user who ran sudo joins the www-data group and can then upload files over SFTP without root.
  4. Asks for the panel sign-in (see below) and writes /opt/wardpane/.env.
  5. Installs the systemd service wardpane. The service runs without root and with systemd hardening; the only extra capability it has is binding ports 80 and 443.
  6. Configures ufw: SSH (the port of your current session and the one from sshd -T), 80, 443 and 1500.
  7. Starts the service and checks that the panel answers.

At the end it prints the panel address, https://<server-ip>:1500, and the sign-in details.

The first sign-in

When you run the installer from a terminal without --user and --password, it offers two choices:

  • [1] Generate (the default, recommended): a random name like admin-x7k2q9 and a 24-character password. Both are printed at the end. Save them.
  • [2] Choose your own: a name (Enter means admin; letters, digits and . _ @ -) and a password typed twice without echo, at least 12 characters, without quotes, backslashes or line breaks. Three failed attempts stop the installer.

Without a terminal, or with -y, there are no questions: the name is admin (or --user) and the password is random.

You sign in to the panel with this name and password. You can also allow signing in as root with the server’s root password (--root-login, off by default); see panel security. Signing in as other users of the server with their OS password is planned for 2.2; see users.

Installer options

Option What it does
--email <address> Email for the Let’s Encrypt account. Without it no certificates are issued
--user, --password Set the panel sign-in without questions. Prefer typing the password at the prompt: while the install runs, a password given as an option is visible to other users in ps
--ip <address> The public IPv4 address, if detection picks the wrong one
--staging Use the Let’s Encrypt staging environment (test certificates)
--php, --no-php Install PHP, or skip the question
--root-login, --no-root-login Allow or forbid signing in as root with the server’s root password
--no-ufw Do not touch the firewall
--force Continue despite checks that can be overridden
-y No questions: default answers, a random password

Upgrading from Small Web Panel 1.x

Run the new installer on the server that has 1.x. The installer converts that installation in place. First it backs everything up into /var/backups/wardpane/<time>/. Then it renames the service user swpanel to wardpane and the site users swp_<id> to wp_<id>, keeping uid and gid so that file ownership stays correct, moves /var/lib/smallwebpanel to /var/lib/wardpane and starts WardPane. If WardPane does not come up, the server is rolled back to 1.x automatically.

After the switch, reload the panel page once (Ctrl+F5) and sign in again. Links issued for link-only sites by 1.x keep working. See updating for details.

Next

Open the panel and continue with first steps.