Конфигурация
JournalPHP использует два уровня конфигурации:
.env— переменные окружения (соединения с БД, ключи API, адреса сервисов)- Админ-панель — настройки платформы, хранящиеся в таблице
configБД
Файл .env
Шаблон — .env.example. В dev-окружении копируется автоматически при первом запуске.
Приложение
| Переменная | Назначение |
|---|---|
APP_KEY | Ключ шифрования |
APP_ENV | local или production |
APP_DEBUG | Режим отладки |
APP_URL | Базовый URL приложения |
FORCE_HTTPS | Принудительный HTTPS |
VITE_APP_NAME | Название приложения для frontend-сборки |
База данных
| Переменная | Назначение |
|---|---|
DB_CONNECTION | Драйвер (mysql) |
DB_HOST | Хост |
DB_PORT | Порт |
DB_DATABASE | Имя БД |
DB_USERNAME | Пользователь |
DB_PASSWORD | Пароль |
Redis
| Переменная | Назначение |
|---|---|
REDIS_HOST | Хост |
REDIS_PORT | Порт |
REDIS_PASSWORD | Пароль |
CACHE_DRIVER | Драйвер кэша |
QUEUE_CONNECTION | Драйвер очередей |
SESSION_DRIVER | Драйвер сессий |
WebSocket (Reverb)
| Переменная | Назначение |
|---|---|
BROADCAST_DRIVER | reverb |
REVERB_APP_ID | ID приложения |
REVERB_APP_KEY | Ключ |
REVERB_APP_SECRET | Секрет |
REVERB_HOST | Хост |
REVERB_PORT | Порт |
REVERB_SCHEME | http или https |
VITE_REVERB_APP_KEY | Ключ для frontend-сборки |
VITE_REVERB_HOST | Хост для frontend-сборки |
VITE_REVERB_PORT | Порт для frontend-сборки |
VITE_REVERB_SCHEME | Схема для frontend-сборки |
Медиафайлы
| Переменная | Назначение |
|---|---|
CLOUDINARY_URL | URL Cloudinary (опционально; основная конфигурация — в админ-панели) |
Лимиты загрузки, допустимые типы файлов, драйвер хранилища и учётные данные настраиваются в Админ-панели → Медиа (/admin-panel/settings/media). Поддерживаемые драйверы: Local, Cloudinary, Yandex Cloud Object Storage.
Поиск
| Переменная | Назначение |
|---|---|
SCOUT_DRIVER | Драйвер поиска (по умолчанию null — поиск отключён) |
При значении null Scout не индексирует модели. Для включения поиска укажите database, algolia, meilisearch или другой поддерживаемый драйвер.
GIF (Tenor)
Ключи не входят в .env.example, но используются при production-сборке (docker-compose.prod.yml, Dockerfile.prod):
| Переменная | Назначение |
|---|---|
VITE_TENOR_API_KEY | API-ключ Tenor |
VITE_TENOR_CLIENT_KEY | Client key Tenor |
Без этих ключей GIF-поиск в редакторе отключён.
Frontend
| Переменная | Назначение |
|---|---|
VITE_APP_LOCALE | Язык для первоначального сида и production-сборки (ru или en) |
VITE_DEV_SERVER_URL | URL Vite dev server (только в dev) |
Настройки через Админ-панель
Следующие параметры хранятся в БД и не дублируются в .env:
| Раздел | Путь | Что настраивается |
|---|---|---|
| Общие настройки | /admin-panel/settings/general | Название, логотип, язык |
| Внешний вид сайта | /admin-panel/settings/appearance | CSS-переменные публичной темы |
| SEO | /admin-panel/settings/seo | Мета-теги, Open Graph |
| Cookie-баннер | /admin-panel/settings/cookie-consent | Баннер согласия на cookies |
| Почта | /admin-panel/settings/mail | SMTP (применяется через MailServiceProvider) |
| Аутентификация | /admin-panel/settings/auth | OAuth, быстрый вход, верификация |
| Контент | /admin-panel/settings/content | Ограничения публикации |
| Медиа | /admin-panel/settings/media | Хранилище, лимиты, MIME-типы |
| Боковая панель | /admin-panel/settings/sidebar | Виджеты сайдбара |
| Футер сайдбара | /admin-panel/settings/footer | Ссылки и соцсети |
| Темы в боковой панели | /admin-panel/settings/topic-display | Featured-темы |
| Дополнительные скрипты | /admin-panel/settings/additional-scripts | Кастомный HTML/JS/CSS |
| Рейтинг | /admin-panel/settings/rating | Система рейтинга |
| AI | /admin-panel/ai-settings | API-ключи и модель OpenAI |
| Модерация | /admin-panel/moderation-settings | AI-модерация текста |
| Модерация изображений | /admin-panel/image-moderation-settings | Yandex Vision |
| Бот | /admin-panel/chat-gpt-bot | AI-бот в комментариях |
| Платёжный провайдер | /admin-panel/subscription-payment-provider | YooKassa / T-Bank |
| Доступы (Horizon / Log Viewer) | /admin-panel/system/access | horizonAdmins, logViewerAdmins |
Настройки из БД применяются без перезапуска контейнера. При первом запуске ConfigSeeder заполняет начальные значения.
Применение изменений
| Изменение | Перезапуск |
|---|---|
.env | docker compose restart app |
| Админ-панель | не нужен |
VITE_* (production) | пересборка frontend-образа |