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,80 @@
use strict;
use warnings;
use File::Basename;
use File::Spec::Functions qw( rel2abs );
use lib dirname( rel2abs( $0 ) );
use TestUtil::DSL;
###########
# consistency06 - https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/test-zones/Consistency-TP/consistency06.md
testing_test_case 'Consistency', 'consistency06';
all_tags qw(ONE_SOA_MNAME
NO_RESPONSE
NO_RESPONSE_SOA_QUERY
MULTIPLE_SOA_MNAMES);
# Common hint file (test-zone-data/COMMON/hintfile)
root_hints 'ns1' => [ qw(127.1.0.1 fda1:b2:c3::127:1:0:1) ],
'ns2' => [ qw(127.1.0.2 fda1:b2:c3::127:1:0:2) ];
zone_name_template '{SCENARIO}.{TESTCASE}.xa';
scenario 'ONE-SOA-MNAME-1' => sub {
expect 'ONE_SOA_MNAME';
forbid_others;
};
scenario 'ONE-SOA-MNAME-2' => sub {
expect qw(ONE_SOA_MNAME NO_RESPONSE);
forbid_others;
};
scenario 'ONE-SOA-MNAME-3' => sub {
expect qw(ONE_SOA_MNAME NO_RESPONSE_SOA_QUERY);
forbid_others;
};
scenario 'ONE-SOA-MNAME-4' => sub {
todo 'see https://github.com/zonemaster/zonemaster-engine/issues/1300';
expect qw(ONE_SOA_MNAME NO_RESPONSE);
forbid_others;
};
scenario 'MULTIPLE-SOA-MNAMES-1' => sub {
expect 'MULTIPLE_SOA_MNAMES';
forbid_others;
};
scenario 'MULTIPLE-SOA-MNAMES-2' => sub {
expect qw(MULTIPLE_SOA_MNAMES NO_RESPONSE);
forbid_others;
};
scenario 'MULT-SOA-MNAMES-NO-DEL-UNDEL-1' => sub {
fake_ns 'ns1.mult-soa-mnames-no-del-undel-1.consistency06.xa' => '127.14.6.31', 'fda1:b2:c3:0:127:14:6:31';
fake_ns 'ns2.mult-soa-mnames-no-del-undel-1.consistency06.xa' => '127.14.6.32', 'fda1:b2:c3:0:127:14:6:32';
expect 'MULTIPLE_SOA_MNAMES';
forbid_others;
};
scenario 'MULT-SOA-MNAMES-NO-DEL-UNDEL-2' => sub {
fake_ns 'ns3.mult-soa-mnames-no-del-undel-2.consistency06.xb';
fake_ns 'ns4.mult-soa-mnames-no-del-undel-2.consistency06.xb';
expect 'MULTIPLE_SOA_MNAMES';
forbid_others;
};
scenario 'NO-RESPONSE' => sub {
todo 'see https://github.com/zonemaster/zonemaster-engine/issues/1300';
expect 'NO_RESPONSE';
forbid_others;
};
no_more_scenarios;