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:
123
zonemaster/docs/public/configuration/global-cache.md
Normal file
123
zonemaster/docs/public/configuration/global-cache.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Configuration: Global cache in Zonemaster-Engine
|
||||
|
||||
## Table of contents
|
||||
|
||||
* [Introduction](#introduction)
|
||||
* [Prerequisites](#prerequisites)
|
||||
* [Installation for global cache](#installation-for-global-cache)
|
||||
* [Create directory for custom profile](#create-directory-for-custom-profile)
|
||||
* [Enable global cache](#enable-global-cache)
|
||||
* [Using global cache](#using-global-cache)
|
||||
|
||||
|
||||
## Introduction
|
||||
Global cache is a feature that can increase performance when many tests are run
|
||||
within a short time frame, especially when they share some data such as using the
|
||||
same name server names. The global cache is meant for batch testing rather than
|
||||
single tests through the GUI. In the latter case it is desirable that Zonemaster
|
||||
checks again since the zone may have been corrected due to the report in a very
|
||||
recent test.
|
||||
|
||||
The global cache improves the caching function by making the DNS lookups from
|
||||
one test to be available for further tests. The cache is stored in `Redis`, a
|
||||
cache service running in a separate daemon.
|
||||
|
||||
To enable global caching, additional software has to be installed and custom
|
||||
profile has to be created, where global caching is enabled.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before installing or enabling global cache you must follow the
|
||||
[Zonemaster::Engine installation] first. The feature is available from version
|
||||
`v5.0.0` of Zonemaster-Engine.
|
||||
|
||||
For installation on FreeBSD being user root is assumed.
|
||||
|
||||
|
||||
## Installation for global cache
|
||||
|
||||
Install the `Redis` daemon and needed Perl library. And then start the `Redis`
|
||||
daemon. It will listen to localhost and default port.
|
||||
|
||||
### Rocky Linux
|
||||
```
|
||||
sudo dnf --assumeyes install redis perl-Redis perl-Data-MessagePack
|
||||
sudo systemctl enable redis
|
||||
sudo systemctl start redis
|
||||
```
|
||||
|
||||
### Debian and Ubuntu
|
||||
```
|
||||
sudo apt install redis libredis-perl libdata-messagepack-perl
|
||||
sudo systemctl enable redis
|
||||
sudo systemctl start redis
|
||||
```
|
||||
|
||||
### FreeBSD
|
||||
```
|
||||
pkg install -y redis p5-Redis p5-Data-MessagePack
|
||||
sysrc redis_enable="YES"
|
||||
service redis start
|
||||
```
|
||||
|
||||
## Create directory for custom profile
|
||||
|
||||
Create a directory to be used for a custom profile, which is here the same
|
||||
directory as used by Zonemaster-Backend. And then copy the default profile
|
||||
to this directory.
|
||||
|
||||
### Rocky Linux, Debian and Ubuntu
|
||||
```
|
||||
test -d /etc/zonemaster || sudo mkdir -v /etc/zonemaster
|
||||
perl -MZonemaster::Engine::Test -E 'say Zonemaster::Engine::Profile->default->to_json' | jq -S . | sudo tee /etc/zonemaster/profile.json > /dev/null
|
||||
```
|
||||
|
||||
### FreeBSD
|
||||
```
|
||||
test -d /usr/local/etc/zonemaster || mkdir -v /usr/local/etc/zonemaster
|
||||
perl -MZonemaster::Engine::Test -E 'say Zonemaster::Engine::Profile->default->to_json' | jq -S . > /usr/local/etc/zonemaster/profile.json
|
||||
```
|
||||
|
||||
## Enable global cache
|
||||
If there is no `profile.json` in `/etc/zonemaster/` (or `/usr/local/etc/zonemaster/`
|
||||
for FreeBSD), create it by extracting the default profile using the command in the
|
||||
[profile documentation].
|
||||
|
||||
Update `/etc/zonemaster/profile.json` (or `/usr/local/etc/zonemaster/profile.json`
|
||||
for FreeBSD) by adding a cache section. If the profile already has an empty cache
|
||||
section (i.e. `"cache": {}`) then it must be removed. Add the following section,
|
||||
```
|
||||
"cache": {
|
||||
"redis": {
|
||||
"server": "127.0.0.1:6379",
|
||||
"expire": 7200
|
||||
}
|
||||
},
|
||||
```
|
||||
|
||||
The `expire` value can be increased or decreased to increase or decrease the time
|
||||
in seconds that `Redis` will cache the data. Caching of specific DNS data is
|
||||
never longer than the normal DNS TTL value.
|
||||
|
||||
|
||||
## Using global cache
|
||||
|
||||
If [Zonemaster-CLI][Zonemaster::CLI installation] has been installed, then
|
||||
run `zonemaster-cli` with `--profile /etc/zonemaster/profile.json`
|
||||
(or `--profile /usr/local/etc/zonemaster/profile.json` for FreeBSD) to use the
|
||||
global cache. Caching will persist between test unless it has expired.
|
||||
|
||||
See `man zonemaster-cli` and look for `cli.args` for how to make it the custom
|
||||
profile being the default profile for `zonemaster-cli`.
|
||||
|
||||
See [Zonemaster::Backend configuration] for how to make the custom profile being
|
||||
used for Zonemaster-Backend and Zonemaster-GUI.
|
||||
|
||||
For more documentation on profiles, see [profile documentation].
|
||||
|
||||
|
||||
[profile documentation]: profiles.md
|
||||
[Zonemaster::Backend configuration]: backend.md
|
||||
[Zonemaster::CLI installation]: ../installation/zonemaster-cli.md
|
||||
[Zonemaster::Engine installation]: ../installation/zonemaster-engine.md
|
||||
Reference in New Issue
Block a user