Files
zonemaster.es/zonemaster-gui/docs/UI.md
Malin 8d4eaa1489 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>
2026-04-21 08:19:24 +02:00

1.5 KiB
Raw Blame History

Zonemaster UI

Zonemaster UI (Zonemaster-GUI) is a static website built with Astro, using Svelte for interactive components and Vite for internationalization/translation (i18n).

Standalone Components

Zonemaster UI also provides a set of standalone web components that can be reused in other projects. Currently, there are two available:

  • <zm-domain-test> for initiating domain tests
  • <zm-program-versions> displays the current versions of Zonemaster components

These components are framework-agnostic and can be embedded in other websites or apps as needed.

<zm-domain-test></zm-domain-test>
<zm-program-versions></zm-program-versions>

<script type="module">
    import '@zonemaster/ui';
</script>

Headless Mode

Zonemaster UI can also be used in headless mode, where it acts as a JavaScript API layer between the Zonemaster backend and your own frontend.

This is useful if you want to:

  • Build your own custom UI
  • Integrate Zonemaster functionality into another application or CLI tool

In headless mode, the UI logic is decoupled from the visual components, allowing you to access core functionality programmatically through JavaScript.

import { TestAgent } from '@zonemaster/ui';

TestAgent.subscribe((state, context) => {
    console.log(state, context);
});

TestAgent.transition('START', { domain: 'example.com' });