Налаштування бекенду
Передумови
- PHP 8.3+
- Composer
- Docker Desktop (для PostgreSQL)
Оточення
Файл оточення бекенду: backend/.env
Обов'язкові значення БД для Laravel:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=techtutor
DB_USERNAME=techtutor_user
DB_PASSWORD=techtutor_passОбов'язкові значення для Docker Postgres service (дивіться Compose env file):
POSTGRES_DB=techtutor
POSTGRES_USER=techtutor_user
POSTGRES_PASSWORD=techtutor_passНеобов'язкові mail-параметри для email-сповіщень:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=your-mailbox@example.com
MAIL_PASSWORD=your-app-password
MAIL_FROM_ADDRESS=your-mailbox@example.com
MAIL_FROM_NAME=TechTutorДля Gmail SMTP використовуйте app password. Не комітьте реальні mail credentials.
Запуск бази даних
З кореня проєкту:
docker compose up -dДані Postgres зберігаються у:
backend/database/data
Встановлення і запуск бекенду
Із backend:
composer install
php artisan key:generate
php artisan migrate
php artisan db:seed
php artisan serveДемо-акаунти після seed
Після php artisan migrate --seed або composer db:fresh доступні локальні демо-акаунти (пароль: password):
admin@techtutor.test— adminbackend@techtutor.test— викладач (backend)frontend@techtutor.test— викладач (frontend)ml@techtutor.test— викладач (ML)devops@techtutor.test— викладач (DevOps)student@techtutor.test— студент (зарахований у курси)student2@techtutor.test— студент (додатковий)banned@techtutor.test— заблокований студент (для перевірки банів)
Спільний пароль для всіх демо-акаунтів:
passwordКорисні команди
php artisan migrate:fresh --seed
composer cleanup
composer cleanup:optimize
composer start:fresh
composer start:fresh:seed
php artisan test
vendor/bin/pintCleanup
composer cleanupОчищає скомпільовані та runtime-кеші Laravel для повернення в чистий стан.
Виконує:
php artisan optimize:clearphp artisan config:clearphp artisan cache:clearphp artisan route:clearphp artisan view:clearphp artisan event:clear
Використовуйте після:
- зміни значень у
.env - перемикання гілок
- оновлення залежностей
- неочікуваної поведінки через кеш під час локальної розробки
Cleanup + Optimize
composer cleanup:optimizeЗапускає стандартне очищення та відновлює оптимізовані кеші через:
php artisan optimize
Корисно, якщо потрібен чистий і водночас оптимізований локальний стан.
Швидке скидання БД
Початкове очищення і міграція з backend:
composer start:freshКоманда виконує cleanup, а потім запускає міграції БД.
Початкове очищення, міграція і seed з backend:
composer start:fresh:seedВиконує той самий cleanup, потім свіжу міграцію і сідинг.
Soft reset із backend:
composer db:freshПересоздає всі таблиці та повторно сідує БД, але зберігає каталог даних/container Postgres.
INFO
У цьому проєкті docker compose down -v сам по собі не повністю стирає Postgres, бо база зберігається у bind-mounted папці backend/database/data, а не в named Docker volume.