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:
97
zonemaster-backend/Makefile.PL
Normal file
97
zonemaster-backend/Makefile.PL
Normal 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;
|
||||
Reference in New Issue
Block a user