Installing PufferPanel ====================== System Requirements ------------------- * A VPS or Dedicated server (32-bit *IS NOT* supported) * SSH access and administrative (root or sudo) privileges on the server * One of the following operating systems: +------------------------+-------+-------+ | OS/Version | AMD64 | ARM64 | +========================+=======+=======+ | Ubuntu Focal (20.04) | No | No | +------------------------+-------+-------+ | Ubuntu Jammy (22.04) | Yes | Yes | +------------------------+-------+-------+ | Ubuntu Noble (24.04) | Yes | Yes | +------------------------+-------+-------+ | Debian Buster (10) | Yes | Yes | +------------------------+-------+-------+ | Debian Bullseye (11) | Yes | Yes | +------------------------+-------+-------+ | Raspbian Buster (10) | No | Yes | +------------------------+-------+-------+ | Raspbian Bullseye (11) | No | Yes | +------------------------+-------+-------+ Ports ----- The following ports are used by PufferPanel. Please allow traffic to/from these ports to fully use your installation. * 8080: Web access * 5657: SFTP Installing ---------- For easiest installation, if you have one of the listed supported distributions, you can simply install our package and get going!. .. tab:: Ubuntu/Debian - Manual Repo .. code-block:: bash sudo apt-get install curl gnupg apt-transport-https curl -fsSL https://packagecloud.io/pufferpanel/pufferpanel/gpgkey | gpg --dearmor | sudo tee /etc/apt/keyrings/pufferpanel.gpg > /dev/null echo "X-Repolib-Name: PufferPanel Types: deb URIs: https://packagecloud.io/pufferpanel/pufferpanel/any/ Suites: any Components: main Signed-By: /etc/apt/keyrings/pufferpanel.gpg" | sudo tee /etc/apt/sources.list.d/pufferpanel.sources > /dev/null sudo apt update sudo apt-get install pufferpanel .. tab:: Red-Hat - Manual Repo .. code-block:: bash echo "[pufferpanel] name=pufferpanel baseurl=https://packagecloud.io/pufferpanel/pufferpanel/rpm_any/rpm_any/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/pufferpanel/pufferpanel/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300" | sudo tee /etc/yum.repos.d/pufferpanel.repo > /dev/null sudo yum install pufferpanel .. tab:: Docker .. code-block:: bash docker volume create pufferpanel-config docker volume create pufferpanel-servers docker create --name pufferpanel \ -p 8080:8080 -p 5657:5657 \ -v pufferpanel-config:/etc/pufferpanel \ -v pufferpanel-servers:/var/lib/pufferpanel:z \ -v /var/run/docker.sock:/var/run/docker.sock \ --restart=on-failure \ pufferpanel/pufferpanel:latest Adding an admin --------------- To create your first user, run the following command. Be sure to enter "Y" when it asks if this is an admin so you can fully use your panel. .. tab:: Host .. code:: bash sudo pufferpanel user add .. tab:: Docker .. code:: bash docker start pufferpanel docker exec -it pufferpanel /pufferpanel/bin/pufferpanel user add Starting the panel ------------------ .. tab:: Host .. code:: bash sudo systemctl enable --now pufferpanel .. tab:: Docker .. code:: bash docker start pufferpanel -------------------- Managing the service -------------------- PufferPanel uses Systemd to manage the service, consult the man page `man systemctl` or `a guide `_ for instructions on how to use it. ---------------- Securing Servers ---------------- Servers can run in several different environments depending on the security required. It is *HIGHLY* recommended to configure and use Docker for your servers as this will result in better file and process protection. Refer to :doc:`Using Docker with PufferPanel ` to configure Docker so that PufferPanel can use it. Using "standard" is *NOT* a secure environment, and WILL result in servers being able to access host files. This should *ONLY* be used for testing purposes and not for live servers. Done! ----- And that's it! Your panel is now available on port 8080 of your server. Additional resources: * :doc:`Enabling SSL with Nginx ` * :doc:`Running servers without Docker ` * :doc:`Running servers with Docker `