This document describes the software and system environment needed to run the
RNN web control plane. It complements the content in Docs/README.md and the
install.sh helper script by providing a concise reference for operators or
packagers.
- Primary development and testing target: Debian 13 (Trixie)
- Minimal installation with Web Server and SSH Server task selections.
- Desktop environment / GNOME not required or desired.
- Other Linux distributions should work with little modification; only package names and package manager commands need adjustment.
- Assumes a standard GNU userland (bash, coreutils, util‑linux, etc.).
The following packages must be installed on the host. On Debian this set is
specified in install.sh as REQUIRED_PKGS.
sudo pamtester lvm2 php php-cli apache2 php-common mdadm util-linux parted
gdisk smartmontools nfs-kernel-server
Notes:
apache2may be replaced withnginx(or another web server) provided the PHP integration is configured accordingly and the document root is set to where the repository content is deployed (/var/www/htmlby default).nfs-kernel-serveris pulled in to provide utilities such asexportfs.pamtesteris optional; the login code will fall back to Python or Perl helpers if it is absent.- The
phppackages should include a CLI binary; the web UI relies on composer‑less PHP and only uses core functions (no framework dependencies).
Additional utilities invoked by the UI include mdadm, parted, sgdisk,
smartctl, wipefs, lsblk, and the usual mount/umount/mkfs commands – all
part of the standard distribution.
- The web server runs as
www-data(Debian default). - An
nfsgroup is required. Only accounts that are members of this group may log in through the UI.install.shcreates the group if it doesn't exist. - Administrators should add their shell user(s) to
nfsusingsudo usermod -aG nfs <username>. - A sudoers drop‑in (
/etc/sudoers.d/nfs-webui) is created to grantwww-datapasswordless access to a narrow list of commands used by the web UI (see the script for the full ACL). The sudo rules also allow the UI to invokegetentandpamtesterfor authentication andsystemctlfor reloading services after/etc/fstabedits.
- Document root defaults to
/var/www/html. - The
install.shscript copies repository contents into the webroot and adjusts ownership (recursivewww-data:www-data). It strips out Git metadata, markdown files, and shell scripts. - Apache should be enabled and running (
systemctl enable --now apache2). - PHP errors are displayed (see
functions.php), sodisplay_errorsis enabled in runtime; a production deployment may want to set this to0.
/bin/bashis assumed for installation and local scripts.php-climust be available at/usr/bin/phpfor some sudo commands in the sudoers list. The UI itself runs under the PHP module/handler provided by the web server.- Other interpreters referenced in code:
/usr/bin/python3,/usr/bin/perl.
- The web UI does not maintain a database; it queries the live system state
(e.g.
lsblk,vgscan,mdadm --detail) and executes native storage management commands viasudo. - The host is expected to be a storage server with access to local block devices.
- No background daemon or additional services are required beyond the web server and NFS exporter if NFS is used.
- File system mounts and
/etc/fstabentries are edited by the UI; therefore, the underlyingmount,umount,chown, etc. utilities must be writable bywww-datavia sudo.
Tip: For a production installation, review the sudoers ACL and tighten permissions as needed. Consider running the web site over HTTPS and restricting access to the management interface using a firewall or VPN.
This file should be kept up to date whenever the environmental requirements or configuration steps change.