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:
2026-04-21 08:19:24 +02:00
commit 8d4eaa1489
1567 changed files with 204155 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
use inc::Module::Install;
use Module::Install::Share;
name 'Zonemaster-Backend';
all_from 'lib/Zonemaster/Backend.pm';
repository 'https://github.com/zonemaster/zonemaster-backend';
bugtracker 'https://github.com/zonemaster/zonemaster-backend/issues';
# "2.1.0" could be declared as "2.001" but not as "2.1"
# (see Zonemaster::LDNS below)
requires
'Class::Method::Modifiers' => 1.09,
'Config::IniFiles' => 0,
'DBI' => 1.635,
'Daemon::Control' => 0.001007,
'File::ShareDir' => 0,
'File::Slurp' => 0,
'HTML::Entities' => 0,
'JSON::PP' => 0,
'JSON::RPC' => 1.01,
'JSON::Validator' => 4.00,
'Locale::TextDomain' => 1.20,
'Log::Any' => 0,
'Log::Any::Adapter::Dispatch' => 0,
'Log::Dispatch' => 0,
'LWP::UserAgent' => 0,
'Mojolicious' => 7.28,
'Moose' => 2.04,
'Net::IP::XS' => 0,
'Parallel::ForkManager' => 1.12,
'Plack::Builder' => 0,
'Plack::Middleware::ReverseProxy' => 0,
'Role::Tiny' => 1.001003,
'Router::Simple::Declare' => 0,
'Starman' => 0,
'Try::Tiny' => 0.12,
'Zonemaster::LDNS' => 5.000001, # v5.0.1
'Zonemaster::Engine' => 8.001000, # v8.1.0
;
test_requires 'DBD::SQLite' => 1.66;
test_requires 'Test::Differences';
test_requires 'Test::Exception';
test_requires 'Time::Local' => 1.26;
test_requires 'Test::NoWarnings' => 0;
recommends 'DBD::mysql';
recommends 'DBD::Pg';
recommends 'DBD::SQLite' => 1.66;
install_share;
install_script 'zonemaster_backend_rpcapi.psgi';
install_script 'zonemaster_backend_testagent';
install_script 'zmtest';
install_script 'zmb';
no_index directory => 'CodeSnippets';
no_index directory => 'Doc';
# Make all platforms include inc/Module/Install/External.pm
requires_external_bin 'find';
if ($^O eq "freebsd") {
requires_external_bin 'gmake';
};
sub MY::postamble {
my $text;
if ($^O eq "freebsd") {
# Make FreeBSD use gmake for share/Makefile
$text = 'GMAKE ?= "gmake"' . "\n"
. 'pure_all :: share/Makefile' . "\n"
. "\t" . 'cd share && $(GMAKE) all' . "\n";
} else {
$text = 'pure_all :: share/Makefile' . "\n"
. "\t" . 'cd share && $(MAKE) all' . "\n";
};
my $docker = <<'END_DOCKER';
docker-build:
docker build --tag zonemaster/backend:local --build-arg version=$(VERSION) .
docker-tag-version:
docker tag zonemaster/backend:local zonemaster/backend:$(VERSION)
docker-tag-latest:
docker tag zonemaster/backend:local zonemaster/backend:latest
END_DOCKER
return $text . $docker;
};
install_share;
WriteAll;