Этот репозиторий содержит Docker-образ, предоставляющий готовое решение для запуска Laravel и Next.js приложения в едином окружении.
Ключевые особенности:
- Laravel: Включает в себя все необходимые компоненты для запуска Laravel-приложения:
- PHP
- Composer
- Laravel
- Laravel Schedule
- Next.js: (Опционально) Включает в себя Next.js framework для frontend разработки.
- База данных: Поддержка как PostgreSQL, так и MySQL.
- RabbitMQ: Для реализации асинхронных задач.
- Horizon: Предоставляет простой интерфейс для управления и мониторинга очередей.
- Telescope: Инструмент для отладки и анализа вашего Laravel приложения.
- Filament: Мощная административная панель для управления вашим приложением.
- Nginx: В качестве веб-сервера для обратной проксировки запросов на Laravel и Next.js приложения.
- Makefile: Предоставляет набор удобных команд для взаимодействия с Docker-образом.
Преимущества:
- Простота развертывания: Легко установить и запустить приложение в любой среде.
- Удобство в использовании: Все зависимости установлены и настроены автоматически.
- Производительность: Оптимизация для максимально возможной производительности.
- Безопасность: Обеспечивает изоляцию вашего приложения от других систем.
- Клонируйте репозиторий:
git clone https://github.com/seelentov/laravel-nextjs-compose.git
-
Настройте файл .env:
- Укажите имя пользователя, пароль и хост для базы данных.
- Задайте имя вашего приложения.
- Укажите необходимые настройки для сервисов.
- Раскоментируйте нужное и закоментируйте лишнее в docker-compose.yml.
-
Запустите Docker-образ:
make init
- Доступ к приложению:
- Доступ к Next.js приложению: http://localhost
- Доступ к Telescope приложению: http://localhost/logging/telescope
- Доступ к Horizon приложению: http://localhost/logging/horizon
- Доступ к Filament приложению: http://localhost/admin
- Доступ к Laravel приложению через настройку роутинга в routes/api.php (Все запросы /api* идут на Laravel)
Внутри Makefile есть комментарии с описанием работы каждой функции
Дополнительные возможности:
- Возможность отключения Next.js и использования Laravel для frontend.
- Поддержка горячей перезагрузки для быстрой разработки.
*В файле TODO список задач, которые планируется реализовать в будущем, следите за обновлениями