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:
54
zonemaster-gui/docs/UI.md
Normal file
54
zonemaster-gui/docs/UI.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# 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.
|
||||
|
||||
```html
|
||||
<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.
|
||||
|
||||
```ts
|
||||
import { TestAgent } from '@zonemaster/ui';
|
||||
|
||||
TestAgent.subscribe((state, context) => {
|
||||
console.log(state, context);
|
||||
});
|
||||
|
||||
TestAgent.transition('START', { domain: 'example.com' });
|
||||
```
|
||||
|
||||
|
||||
[Astro]: https://astro.build/
|
||||
[Svelte]: https://svelte.dev/
|
||||
[Vite]: https://vite.dev/
|
||||
Reference in New Issue
Block a user