Системные требования
JournalPHP запускается в Docker: PHP, MySQL, Redis, Nginx и Node.js работают в контейнерах, на сервере нужны только Docker и Git.
Обзор
Для локальной разработки и продакшена используются разные конфигурации Docker Compose: docker-compose.yml и docker-compose.prod.yml. Обеим нужен Docker с Docker Compose v2 и Git.
Сервер
Рекомендации для продакшена:
| Минимум | Рекомендуется | |
|---|---|---|
| ОС | Linux | Ubuntu 22.04 LTS или новее |
| RAM | 2 GB | 4 GB |
| CPU | 1 vCPU | 2 vCPU |
| Диск | 20 GB | 40 GB SSD |
Фронтенд собирается вместе с образом приложения. Сборка ограничена 2 GB памяти Node.js; лимит задаётся аргументом сборки NODE_MEMORY_MB в Dockerfile.prod.
Компоненты
| Компонент | Версия |
|---|---|
| PHP | 8.4 (FPM) |
| Laravel | 13 |
| MySQL | 8.0 |
| Redis | образ redis:alpine |
| Nginx | образ nginx:alpine |
| Node.js | 22 в локальном окружении, 24 при сборке продакшен-образа |
Порты
Локальное окружение:
| Порт | Сервис |
|---|---|
80 | Nginx: сайт и Adminer |
5173 | Vite dev server |
9001 | WebSocket-сервер Reverb |
33061 | MySQL, доступ с хоста |
7700 | Meilisearch, только с профилем meilisearch |
Продакшен:
| Порт | Сервис |
|---|---|
127.0.0.1:8080 | Nginx в Docker, доступен только reverse proxy на хосте |
9001 | WebSocket-сервер Reverb |
80, 443 | Reverse proxy на хосте |
Внешние сервисы
Все интеграции необязательны и подключаются в админ-панели:
- SMTP-сервер: отправка писем, см. Почта
- OAuth-провайдеры: вход через Google, Яндекс, ВКонтакте, Facebook, Apple и GitHub, см. Пользователи
- ЮKassa или T-Bank: приём платежей, см. Подписки
- DeepSeek, OpenAI, Gemini или YandexGPT: AI-функции, см. AI-функции
- Yandex Vision: модерация изображений, см. AI-функции
- Algolia или Meilisearch: внешний поисковый движок, см. Поиск
- Cloudinary или Yandex Cloud Object Storage: хранение медиафайлов, см. Настройки сайта
- Tenor или Giphy: поиск GIF, см. Настройки сайта