Installation
Requirements
The GUI depends on Flask and PyYAML. PyYAML is already installed as a core dependency. Flask is the only additional package:
flask
The full list of GUI-specific packages is in requirements-gui.txt at the
project root.
Install as a systemd service (recommended)
The installer script auto-detects the project directory, the Python interpreter,
and the invoking user. It supports Debian/Ubuntu (apt), Fedora/RHEL
(dnf/yum), Arch (pacman), and any distribution with pip3:
sudo bash gui/install-gui-service.sh
The script:
Installs Flask if not already present.
Creates
/etc/systemd/system/fwtester-gui.service.Enables and starts the service.
After installation, use the standard systemd commands to manage it:
systemctl status fwtester-gui # check current status
journalctl -u fwtester-gui -f # follow live logs
sudo systemctl restart fwtester-gui # restart after configuration changes
sudo systemctl stop fwtester-gui # stop the service
sudo bash gui/uninstall-gui-service.sh # remove the service entirely
Manual execution (development)
python3 gui/app.py
The server listens on 0.0.0.0:5000 by default and reloads templates on
every request (Jinja2 auto-reload is always active). Python modules such as
gui/i18n.py are not reloaded between requests when debug=False
— restart the process to pick up module changes.
Port configuration
The listening port is controlled by the gui_port key in
config/config.yml:
gui_port: 5000
Change the value and restart the service for the new port to take effect. No changes to the unit file or application code are needed.