1.8 KiB
1.8 KiB
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).