> ## Documentation Index
> Fetch the complete documentation index at: https://ziva.zeleza.ru/llms.txt
> Use this file to discover all available pages before exploring further.

# Встроенные системы

> Рекомендации по запуску Ziva на роутерах, IoT-устройствах и серверах с ограниченными ресурсами

# Ziva на встроенных системах

Библиотека с самого начала проектировалась для работы в терминалах с ограниченными возможностями: BusyBox, OpenWrt, промышленные контроллеры, одноплатные компьютеры.

## Базовая конфигурация

```go theme={null}
func init() {
    ziva.SetDefaultLanguage("ru")
    ziva.AutoConfigure()
    ziva.EnableEmbeddedMode()
    ziva.EnableASCIIMode() // если терминал не поддерживает Unicode
}
```

`AutoConfigure()` анализирует память и автоматически снижает нагрузку (уменьшает историю задач, включает лёгкие стили).

## Переменные окружения

```bash theme={null}
export ZIVA_MEMORY_PRESSURE_THRESHOLD=48M
export ZIVA_MAX_COMPLETED_TASKS=5
export ZIVA_LANG=ru
```

* **ZIVA\_MEMORY\_PRESSURE\_THRESHOLD** — порог, при котором очередь начнёт освобождать память.
* **ZIVA\_MAX\_COMPLETED\_TASKS** — сколько завершённых задач хранить в истории.
* **ZIVA\_LANG** — принудительный язык интерфейса.

## Минималистичный вывод

Уберите всё лишнее, чтобы не переполнить экран:

```go theme={null}
queue := ziva.NewQueue("Конфигурация роутера")
queue.
  WithAppName("RouterSetup").
  WithOutSummary().
  WithOutResultLine().
  WithTasksNumbered(false, "")
```

## Работа с таймаутами

На headless-устройствах оператор может не успеть ответить. Используйте таймауты с безопасными значениями по умолчанию:

```go theme={null}
confirm := ziva.NewYesNoTask("Подтверждение", "Перезапустить сервис?").
    WithDefaultNoAndTimeout(10 * time.Second)
```

## ASCII и шрифты

Если терминал не поддерживает UTF-8:

1. Включите `EnableASCIIMode()`.
2. Настройте локаль и шрифты (см. раздел «Установка»).
3. Избегайте символов псевдографики в собственных сообщениях.

## Логи и диагностика

* Для долговременных логов используйте отдельный файл/удалённый syslog. Не выводите большие дампы в интерфейс Ziva.
* Добавьте `FuncTask`, который проверяет доступность внешних ресурсов (например, сеть) перед запуском основной процедуры.

```go theme={null}
testConnection := ziva.NewFuncTask("Проверка сети", checkWAN,
    ziva.WithStopOnError(true),
)
```

## Рекомендации

* **Не перегружайте очередь.** 4–6 задач в одном сценарии — оптимальный баланс для маленьких экранов.
* **Сохраняйте состояние.** После `queue.Run()` сохраняйте результаты в конфигурационных файлах, чтобы устройство могло работать автономно.
* **Используйте предустановленные цвета.** Встроенный режим подбирает безопасные оттенки для низкоскоростных терминалов.
* **Проверяйте ширину экрана.** Ограничьте viewport (`WithViewport`) и держите описания короткими.

## Дополнительно

* [Цветовые схемы](/ru/customization/colors)
* [Функции автоконфигурации](/ru/api-functions#автоконфигурация-и-окружение)
