feat: add full Zonemaster stack with Docker and Spanish UI
- 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>
This commit is contained in:
284
zonemaster/docs/public/installation/zonemaster-gui.md
Normal file
284
zonemaster/docs/public/installation/zonemaster-gui.md
Normal file
@@ -0,0 +1,284 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user