Installation
This page covers installing and configuring the Warewulf Pro web interface. For a tour of what you can do once it's running, see Using the web interface.
Requirements
- Warewulf server v4.6.3 or later (the REST API is required).
- Enterprise Linux 9 (Rocky Linux 9 or compatible).
- Cockpit installed and running on the Warewulf server (or another host that has network access to
warewulfd).
Installation
# depot enable warewulf-pro
# dnf -y install cockpit warewulf-cockpit
# systemctl enable --now cockpit.socket
The interface is then available at https://<your-server>:9090/warewulf.
Enabling the REST API
The web interface communicates with warewulfd over the REST API, which is disabled by default. Enable it in /etc/warewulf/warewulf.conf:
api:
enabled: true
allowed subnets:
- 127.0.0.0/8
- ::1/128
Configure a server-side authentication user in /etc/warewulf/auth.conf:
users:
- name: admin
password hash: $2b$05$5QVWDpiWE7L4SDL9CYdi3O/l6HnbNOLoXgY2sa1bQQ7aSBKdSqvsC
The hash above is for the password admin and is shown only as a format example. Generate your own with htpasswd -bnBC 5 "" your-password | tr -d ':\n'.
And the matching client credentials in ~/.wwapi.json for whoever runs Cockpit:
{
"user": "admin",
"password": "your-password",
"address": "localhost",
"port": 9873
}
For the upstream REST API reference (endpoints, auth options, examples), see the Warewulf API documentation.
After installing
Restart warewulfd so the API configuration takes effect:
# systemctl restart warewulfd
Then open https://<your-server>:9090 and select Warewulf in the left sidebar. See Using the web interface for what to do next.
Common gotchas
- Image import does not auto-build. When you import an image from the UI, you must explicitly click Build to make it provisionable. CLI users hit the same gotcha unless they pass
--buildtowwctl image import. - Cockpit's self-signed cert. First-load browsers prompt about the certificate. Replace the cert in
/etc/cockpit/ws-certs.d/for production use. - API token errors. If the UI shows "401 Unauthorized" on every action, re-check that
/etc/warewulf/auth.confand~/.wwapi.jsonagree on user, password, and address.