Skip to content

03 Configuration Reference

Mikhail Deynekin edited this page Oct 31, 2026 · 1 revision

03 · Настройки

Панель читает один файл формата KEY=VALUE. Порядок поиска:

  1. путь из FORNEX_ENV;
  2. .env в корне приложения;
  3. fornex.env уровнем выше корня приложения (рекомендуется — вне корня сайта).

Если файла нет, используются настоящие переменные окружения: так панель запускается в контейнере и в проверке CI. Настоящая переменная окружения всегда важнее файла, поэтому одно значение можно переопределить на один запуск, ничего не редактируя.

Относительные пути в DB_PATH, LOG_PATH, SNAPSHOT_DIR считаются от корня приложения; абсолютные используются как есть.

Приложение

Ключ По умолчанию Действие
APP_NAME Fornex Control заголовок окна и шапка страницы
APP_ENV production в development в ответ попадает текст исключения
APP_VERSION 1.1.0 показывается в интерфейсе и в /api/health; попадает в ?v= ссылок на статику
APP_URL http://localhost:8080/ канонический адрес, используется только в сообщениях
APP_BASE пусто подкаталог в URL, например /fornex; интерфейс добавляет его к своим запросам
APP_TIMEZONE UTC часовой пояс отметок времени, которые пишет панель

API Fornex

Ключ По умолчанию Действие
FORNEX_API_KEY — обязателен: без него панель не запускается
FORNEX_BASE_URL https://ru.fornex.com/api публичный API живёт на хосте ru.; fornex.com/api/ отвечает 302/403
FORNEX_TIMEOUT 30 секунд на HTTP-запрос
FORNEX_RETRIES 2 повторы только для сети и 5xx, никогда для бизнес-ошибки
FORNEX_USER_AGENT fornex-control/1.1 без браузерного User-Agent запросы к Fornex подвисают на TLS
FORNEX_DEFAULT_IP пусто подставляется в пресеты «сайт на VPS» и «почта на VPS»; пусто — поле обязательно заполнить

Вход

Ключ По умолчанию Действие
ADMIN_LOGIN admin имя входа
ADMIN_PASSWORD_HASH пусто результат password_hash(); пусто — вход запрещён
AUTO_LOGIN_IP пусто адрес, с которого сессия выдаётся без пароля; пусто — механизм выключен
SESSION_NAME fnx_session имя cookie
SESSION_IDLE 1800 секунд бездействия до выхода
SESSION_SECURE 1 cookie только по HTTPS; 0 — лишь для локального HTTP

AUTO_LOGIN_IP даёт право записи без пароля с одного адреса. Это удобство для рабочего места внутри своей сети, а не способ аутентификации: оставляйте пустым, если сеть и адрес не ваши.

Локальное состояние

Ключ По умолчанию Действие
DB_PATH var/fornex.sqlite журнал, индекс снимков, токены API, попытки входа
LOG_PATH var/log/app.log журнал с ротацией: 5 МБ на файл, хранится 5 файлов
LOG_LEVEL info debug, info, warning, error
SNAPSHOT_DIR var/snapshots по каталогу на домен: BIND-файл и JSON с идентификаторами записей

Каталог с базой и журналом должен быть доступен на запись пользователю PHP и недоступен по HTTP. var/ исключён в .gitignore.

Проверка DNS

Ключ По умолчанию Действие
VERIFY_RESOLVER 8.8.8.8 публичный резолвер: «что видит мир»
VERIFY_AUTHORITATIVE ns1.fornex.com авторитетный сервер Fornex: зона как она есть, без кеша

Две половины отчёта существуют, чтобы различать «записи нет» и «резолвер ещё не догнал» — после изменения зоны это разные вещи с разными действиями.

Пределы безопасности

В backend/config/defaults.php:

Ключ По умолчанию Действие
security.login_attempts 10 неудачных входов с адреса до ответа 429
security.login_window 900 окно в секундах

Ограничения частоты на самом API нет: панель рассчитана на работу за веб-сервером, который такое ограничение ставит, и за списком разрешённых адресов. Не выставляйте её в открытый интернет без обоих.

Что не настраивается намеренно

  • Зона никогда не кешируется локально.
  • Записи SOA и NS не редактируются ни из интерфейса, ни из CLI.
  • Удаление только по числовому id; настройки, включающей шаблонное удаление, нет.
  • Снимок перед записью обязателен и не отключается.

Clone this wiki locally