Repository navigation
03 Configuration Reference
Панель читает один файл формата KEY=VALUE. Порядок поиска:
- путь из
FORNEX_ENV; -
.envв корне приложения; -
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 |
часовой пояс отметок времени, которые пишет панель |
| Ключ | По умолчанию | Действие |
|---|---|---|
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.
| Ключ | По умолчанию | Действие |
|---|---|---|
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; настройки, включающей шаблонное удаление, нет. - Снимок перед записью обязателен и не отключается.
репозиторий · релизы · Fornex Control · MIT · панель для DNS-зон Fornex