# 006. Состояние: SQLite (WAL) + /config + /data - **Статус:** принято - **Контекст/issue:** #15, #20 ## Контекст Нужно хранить правила маршрутизации, исключения, режим, расписание GeoIP, метаданные конфигов, устройства, audit log и историю метрик. Профиль нагрузки: единичный пользователь, десятки записей в секунду, важна надёжность и отсутствие внешних зависимостей. ## Решение - **SQLite в режиме WAL** в `/data/awg-dash.db` — всё структурированное состояние и audit log; - `/config` — файлы `.conf`, права 0600, секреты в подкаталоге с ограниченным доступом; - `/data` — кэш GeoIP и история метрик с retention. Оба каталога объявляются томами образа: без них конфигурация не переживёт пересоздание контейнера. ## Альтернативы - **Postgres/Redis** — лишний сервис в образе для единичного пользователя. - **Только файлы JSON** — нет транзакций, аудита и атомарного apply/rollback. ## Последствия - Миграции схемы обязательны с первого дня (#20) и проверяются при старте. - Backup/restore = копирование `/data` и `/config` — отражается в runbook (#45). - История метрик растёт: нужен retention и периодическая очистка (#28).