Установка
Требования
Перед установкой проверьте Системные требования.
Локальная разработка
1. Клонирование репозитория
git clone https://github.com/ADamCarraway/journalphp.git
cd journalphp2. Добавление локального домена
echo "127.0.0.1 journalphp.test adminer.journalphp.test" | sudo tee -a /etc/hostsНа Windows файл находится по адресу C:\Windows\System32\drivers\etc\hosts.
3. Запуск
docker compose up -d --buildПри первом запуске контейнер app автоматически копирует .env.example в .env, генерирует APP_KEY, ждёт готовности MySQL, применяет миграции с сидами и создаёт симлинк storage:link.
4. Готово
| Сервис | URL |
|---|---|
| Приложение | http://journalphp.test |
| Админ-панель | http://journalphp.test/admin-panel |
| Horizon | http://journalphp.test/horizon |
| Adminer | http://adminer.journalphp.test |
| Reverb | ws://journalphp.test:9001 |
APP_URL в .env — http://journalphp.test.
Учётные данные по умолчанию
| Роль | Пароль | |
|---|---|---|
| Админ | admin@mail.com | password |
Смените пароль перед запуском в продакшене.
Первоначальная настройка
После установки откройте Админ-панель и настройте почту, OAuth-провайдеры, AI и SEO. Подробнее — в разделе Конфигурация.
Контейнеры
| Контейнер | Роль |
|---|---|
app | PHP-FPM, Horizon, Reverb |
frontend | Vite dev server |
nginx | Веб-сервер |
db | MySQL 8 |
redis | Кэш, сессии, очереди |
adminer | Интерфейс БД |
Продакшен
Для production используется docker-compose.prod.yml и Dockerfile.prod. Фронтенд собирается внутри образа при docker compose build.
Подготовка
- Скопируйте
.env.exampleв.envна сервере и заполните значения до запуска. - Задайте надёжный
DB_PASSWORD— в production он обязателен (значение по умолчанию не используется). - Укажите
APP_URLс вашим доменом.
В production приложение слушает 127.0.0.1:8080. Снаружи обычно ставят reverse proxy (nginx, Caddy) на портах 80/443.
Сборка и запуск
docker compose -f docker-compose.prod.yml build
docker compose -f docker-compose.prod.yml up -dМиграции не запускаются автоматически:
docker compose -f docker-compose.prod.yml exec app php artisan migrate --force
docker compose -f docker-compose.prod.yml exec app php artisan config:cache
docker compose -f docker-compose.prod.yml exec app php artisan route:cache
docker compose -f docker-compose.prod.yml exec app php artisan view:cacheHTTPS
Рекомендуемая схема: nginx + certbot на хосте → прокси на http://127.0.0.1:8080.
Пример конфига — docker/nginx/host-ssl.example.conf.
После выпуска сертификата обновите .env:
APP_URL=https://your-domain
FORCE_HTTPS=true
REVERB_SCHEME=https
VITE_REVERB_SCHEME=https
VITE_REVERB_PORT=443Пересоберите образы, чтобы VITE_* попали во фронтенд, и примените кеш конфигурации.
HTTPS
Для production используйте HTTPS.