StartEvery page
Installing on Debian
panel installs onto Debian 12 (bookworm) or 13 (trixie), on amd64, from its release tarball. It takes over the machine's network setup, so use a machine that does nothing else, or one you can reach from a console.
The packages it uses
apt install dnsmasq nftables iproute2 ifupdown wireguard-tools openresolv \
dhcpcd-base ca-certificates logrotate openssh-server ieee-data sudo
ieee-data names the maker of each device on the Network page. Also useful: iputils-ping, dnsutils, and firmware-realtek (from non-free-firmware) for the Realtek network cards common in small PCs.
Making room for it
panel owns the network ports, and DNS once the machine is a router:
systemctl disable --now systemd-resolved dnsmasq 2>/dev/null
rm -f /etc/resolv.conf && : > /etc/resolv.conf
systemctl disable --now systemd-networkd.socket systemd-networkd 2>/dev/null
systemctl mask systemd-networkd systemd-networkd.socket
Before you restart, /etc/network/interfaces must bring each port up. panelctl ifaces up (after the install below) writes a stanza for every wired port it does not already name, asking for an address by DHCP.
Install
Download panel-<version>-linux-amd64.tar.gz from the download page and check it against its .sha256. Then, as root:
tar xzf panel-<version>-linux-amd64.tar.gz
./panel-<version>/install.sh
panelctl -f /etc/panel/panel.conf user add admin -roles admin
systemctl enable --now panel
There is no default account on Debian: the third line makes yours. Open https://<the machine's address> and sign in.
The certificate is panel's own. Compare its fingerprint with what the browser shows on the first visit:
grep -A1 fingerprint /var/log/panel/panel.log
Updating
Upload the next release on the About page (the version at the top of every page): it waits to be kept, and comes back by itself if the new version does not start. See Updates.
Running install.sh again over the top also works. It replaces the programs and the pages, and leaves /etc/panel/panel.conf, the database and your settings alone; a new default panel.conf is written beside yours as panel.conf.new.