- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI) - Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend - Dockerfile.gui: Astro static build served via nginx - docker-compose.yml: backend (internal) + frontend (port 5353) - nginx.conf: root redirects to /es/, /api/ proxied to backend - zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
285 lines
8.3 KiB
Markdown
285 lines
8.3 KiB
Markdown
# Installation: Zonemaster-GUI
|
|
|
|
## Prerequisites
|
|
|
|
Before installing Zonemaster-GUI, you should [install Zonemaster::Engine
|
|
][Zonemaster::Engine installation] and [Zonemaster::Backend][Zonemaster::Backend
|
|
installation].
|
|
|
|
Prerequisite for FreeBSD is that the package system is updated and activated,
|
|
see FreeBSD section of [install Zonemaster::Engine][Zonemaster::Engine
|
|
installation].
|
|
|
|
## Upgrading or installation of custom built Zonemaster-GUI
|
|
|
|
### Upgrading
|
|
|
|
If this installation is an upgrade or reinstallation of Zonemaster-GUI and if
|
|
changes were made to the shipped configuration files
|
|
(`/var/www/html/zonemaster-web-gui/dist/config.json` and the `zonemaster.conf`
|
|
Apache configuration file), make sure to back up these files beforehand.
|
|
|
|
You should also consider saving the old version under a new path instead of
|
|
just removing it.
|
|
|
|
Else upgrading is as simple as removing the old version and installing the new
|
|
version in the same way as a new installation.
|
|
|
|
### Installing a custom built Zonemaster-GUI
|
|
|
|
If you have done a custom build of Zonemaster-GUI following the instructions in
|
|
[building GUI] you will have a zip file that you will use instead of downloading
|
|
it from GitHub. Else you can follow the instructions below.
|
|
|
|
## Installation
|
|
|
|
This instruction covers the following operating systems:
|
|
|
|
1. [Rocky Linux](#1-rocky-linux)
|
|
2. [Debian and Ubuntu](#2-debian-and-ubuntu)
|
|
3. [FreeBSD](#3-freebsd)
|
|
|
|
|
|
### 1. Rocky Linux
|
|
|
|
#### Install Apache
|
|
|
|
```sh
|
|
sudo dnf update
|
|
sudo dnf -y install httpd unzip
|
|
```
|
|
|
|
#### Remove old Zonemaster-GUI
|
|
|
|
If an old version is installed, remove it first:
|
|
```sh
|
|
sudo rm -r /var/www/html/zonemaster-web-gui
|
|
```
|
|
|
|
#### Install Zonemaster-GUI
|
|
|
|
```sh
|
|
curl -L -O https://github.com/zonemaster/zonemaster-gui/releases/download/v5.0.1/zonemaster_web_gui_v5.0.1.zip
|
|
sudo install -vd /var/www/html/zonemaster-web-gui
|
|
sudo install -vd /var/log/zonemaster
|
|
sudo unzip -d /var/www/html/zonemaster-web-gui zonemaster_web_gui_v5.0.1.zip
|
|
rm -f zonemaster_web_gui_v5.0.1.zip
|
|
```
|
|
|
|
#### Configure Apache site
|
|
|
|
```sh
|
|
sudo chcon -R -t httpd_sys_content_t /var/www/html/zonemaster-web-gui/dist
|
|
sudo chcon -R -t httpd_sys_rw_content_t /var/log/zonemaster
|
|
sudo setsebool -P httpd_can_network_connect=1
|
|
sudo install -v /var/www/html/zonemaster-web-gui/zonemaster.conf-example /etc/httpd/conf.d/zonemaster.conf
|
|
```
|
|
|
|
Optionally update the zonemaster.conf.
|
|
E.g. if Zonemaster-Backend RPCAPI runs on another server or on another port (not
|
|
port 5000), update ProxyPass and ProxyPassReserve.
|
|
Or if you want provide your own settings for ServerName, ServerAlias and ServerAdmin.
|
|
|
|
```sh
|
|
sudoedit /etc/httpd/conf.d/zonemaster.conf
|
|
```
|
|
|
|
#### Start Apache and allow remote access
|
|
|
|
```sh
|
|
sudo systemctl enable httpd
|
|
sudo systemctl start httpd
|
|
sudo firewall-cmd --add-service http --permanent
|
|
sudo firewall-cmd --reload
|
|
```
|
|
|
|
### 2. Debian and Ubuntu
|
|
|
|
#### Install Apache
|
|
|
|
```sh
|
|
sudo apt-get update && sudo apt-get upgrade -y
|
|
sudo apt-get install -y apache2 unzip
|
|
```
|
|
|
|
#### Basic Apache configuration
|
|
|
|
```sh
|
|
sudo a2enmod proxy proxy_http rewrite
|
|
sudo a2dissite 000-default
|
|
sudo systemctl enable apache2
|
|
sudo systemctl restart apache2
|
|
```
|
|
|
|
#### Remove old Zonemaster-GUI
|
|
|
|
If an old version is installed, remove it first:
|
|
```sh
|
|
sudo rm -r /var/www/html/zonemaster-web-gui
|
|
```
|
|
|
|
#### Install Zonemaster-GUI
|
|
|
|
```sh
|
|
wget https://github.com/zonemaster/zonemaster-gui/releases/download/v5.0.1/zonemaster_web_gui_v5.0.1.zip -O zonemaster_web_gui_v5.0.1.zip
|
|
sudo unzip -d /var/www/html/zonemaster-web-gui zonemaster_web_gui_v5.0.1.zip
|
|
sudo install -vd /var/log/zonemaster
|
|
sudo install -v /var/www/html/zonemaster-web-gui/zonemaster.conf-example /etc/apache2/sites-available/zonemaster.conf
|
|
rm -f zonemaster_web_gui_v5.0.1.zip
|
|
```
|
|
|
|
#### Configure Zonemaster-GUI
|
|
|
|
```sh
|
|
sudo a2ensite zonemaster #Activate the website
|
|
```
|
|
Then update the zonemaster.conf file with your own ServerName, ServerAlias and ServerAdmin.
|
|
For testing on a local machine, you can edit zonemaster.conf and change the "*:80" part of
|
|
to the host's IP or using localhost as ServerName if that is appropriate.
|
|
|
|
|
|
#### Reload Apache
|
|
|
|
```sh
|
|
sudo systemctl reload apache2
|
|
```
|
|
|
|
### 3. FreeBSD
|
|
|
|
For all commands below become root:
|
|
|
|
```sh
|
|
su -l
|
|
```
|
|
|
|
#### Update list of package repositories
|
|
Create the file `/usr/local/etc/pkg/repos/FreeBSD.conf` with the following
|
|
content, unless it is already updated:
|
|
|
|
```
|
|
FreeBSD: {
|
|
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
|
|
}
|
|
```
|
|
|
|
#### Check or activate the package system
|
|
|
|
Run the following command, and accept the installation of the `pkg` package
|
|
if suggested.
|
|
|
|
```
|
|
pkg info -E pkg
|
|
```
|
|
|
|
Update local package repository:
|
|
|
|
```
|
|
pkg update -f
|
|
```
|
|
|
|
#### Install Apache and its dependencies
|
|
|
|
See [tutorial on Apache on FreeBSD].
|
|
|
|
```sh
|
|
pkg install apache24
|
|
```
|
|
|
|
#### Enable Apache as a service
|
|
|
|
```sh
|
|
sysrc apache24_enable=yes
|
|
```
|
|
|
|
#### Enable three apache modules in Apache configuration file
|
|
|
|
```sh
|
|
perl -pi -e 's/^#(LoadModule (proxy_module|proxy_http_module|rewrite_module) libexec)/$1/' /usr/local/etc/apache24/httpd.conf
|
|
```
|
|
|
|
#### Start Apache
|
|
|
|
```sh
|
|
service apache24 start
|
|
```
|
|
|
|
If you want Apache to listen to an external IP address and it says that it only
|
|
listens to localhost (127.0.0.1/::1) then you have to set `ServerName` in
|
|
`/usr/local/etc/apache24/httpd.conf`, e.g. `ServerName 192.0.2.246:80`, and
|
|
restart Apache.
|
|
|
|
#### Remove old Zonemaster-GUI
|
|
|
|
If an old version is installed, remove it first:
|
|
```sh
|
|
rm -r /var/www/html/zonemaster-web-gui
|
|
```
|
|
|
|
#### Install Zonemaster-GUI
|
|
|
|
```sh
|
|
fetch https://github.com/zonemaster/zonemaster-gui/releases/download/v5.0.1/zonemaster_web_gui_v5.0.1.zip
|
|
mkdir -p /var/www/html/zonemaster-web-gui
|
|
mkdir -p /var/log/zonemaster
|
|
unzip -d /var/www/html/zonemaster-web-gui zonemaster_web_gui_v5.0.1.zip
|
|
rm zonemaster_web_gui_v5.0.1.zip
|
|
```
|
|
|
|
#### Basic Apache configuration
|
|
|
|
```sh
|
|
install /var/www/html/zonemaster-web-gui/zonemaster.conf-example /usr/local/etc/apache24/Includes/zonemaster.conf
|
|
```
|
|
Then update `/usr/local/etc/apache24/Includes/zonemaster.conf` with your own ServerAdmin.
|
|
If Zonemaster-Backend RPCAPI runs on another server or on another port (not port 5000)
|
|
then update the URL for the `ProxyPass` and `ProxyPassReverse` keys in the same
|
|
file so that it points to correct IP address or server name and correct port.
|
|
|
|
|
|
#### Restart Apache
|
|
```sh
|
|
service apache24 restart
|
|
```
|
|
|
|
|
|
## Post-installation sanity check
|
|
|
|
Make sure Zonemaster-GUI is properly installed.
|
|
|
|
1. Point your browser at `http://localhost/` (or the address of the server where
|
|
you installed Zonemaster-GUI).
|
|
|
|
2. Verify that the Zonemaster-GUI is shown with the text "Program versions" in
|
|
its page footer.
|
|
|
|
3. Verify that when you mouse over this text the versions of the following
|
|
Zonemaster components are shown: Zonemaster-LDNS, Zonemaster-Engine,
|
|
Zonemaster-Backend and Zonemaster-GUI.
|
|
|
|
## What to do next?
|
|
|
|
* For a JSON-RPC API, see the Zonemaster::Backend [JSON-RPC API] documentation.
|
|
* For a command line interface, follow the [Zonemaster::CLI installation] instruction.
|
|
* For a Perl API, see the [Zonemaster::Engine API] documentation.
|
|
* For HTTPS, see [Let's Encrypt / Certbot] or providers of public certificates.
|
|
|
|
## Configuring and customizing GUI
|
|
|
|
It is possible to change the behavior and visual aspects of GUI. See
|
|
section [configuring GUI] for how to customize the GUI.
|
|
|
|
|
|
[building GUI]: ../configuration/gui/building-custom-gui.md
|
|
[JSON-RPC API]: ../using/backend/rpcapi-reference.md
|
|
[Let's Encrypt / Certbot]: https://certbot.eff.org/instructions
|
|
[Main Zonemaster repository]: https://github.com/zonemaster/zonemaster/blob/master/README.md
|
|
[Tutorial on Apache on FreeBSD]: https://www.digitalocean.com/community/tutorials/how-to-install-an-apache-mysql-and-php-famp-stack-on-freebsd-10-1
|
|
[Zonemaster::Backend installation]: zonemaster-backend.md
|
|
[Zonemaster::Backend]: https://github.com/zonemaster/zonemaster-backend/blob/master/README.md
|
|
[Zonemaster::CLI installation]: zonemaster-cli.md
|
|
[Zonemaster::Engine API]: https://metacpan.org/dist/Zonemaster-Engine/view/lib/Zonemaster/Engine/Overview.pod
|
|
[Zonemaster::Engine installation]: zonemaster-engine.md
|
|
[Zonemaster::Engine]: https://github.com/zonemaster/zonemaster-engine/blob/master/README.md
|
|
[Zonemaster::LDNS]: https://github.com/zonemaster/zonemaster-ldns/blob/master/README.md
|
|
[Configuring GUI]: ../configuration/gui/README.md
|