> ## Documentation Index
> Fetch the complete documentation index at: https://pdns-webui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Архитектура

> Как устроен PowerDNS Web UI внутри.

PowerDNS Web UI намеренно небольшой.

```text theme={null}
Browser
  |
  | fetch()
  v
Go HTTP server
  |
  | X-API-Key + JSON proxy
  v
PowerDNS Authoritative HTTP API
```

## Бэкенд

Сервер на Go:

* Отдаёт встроенный пользовательский интерфейс на HTML, CSS и JavaScript
* Предоставляет `/api/config` для конфигурации UI
* Проксирует запросы `/api/pdns/...` в `PDNS_API_URL/api/v1/...`
* Добавляет настроенный заголовок `X-API-Key`
* Преобразует ответы PowerDNS обратно в удобный для браузера JSON

## Фронтенд

Браузерное приложение — это статическое одностраничное приложение в каталоге
`static/`.

Оно отвечает за:

* Список зон и подробные представления зон
* Формы редактирования записей
* Формы метаданных
* Управление autoprimary
* Выбор темы
* Toast-уведомления и подтверждения

## Встроенные ресурсы

Сервер встраивает `templates/` и `static/` во время сборки с помощью
Go `embed`.

Это значит, что итоговый бинарник может работать без отдельного каталога с
ресурсами.

## Образ контейнера

Dockerfile собирает статический бинарник Go в стадии сборки на Alpine, затем
копирует его в среду выполнения на базе distroless.
