Требования
- PHP 8.2+
- Composer 2+
- Node.js 20+ и npm
- Git
- SQLite (по умолчанию в проекте) или MySQL
Опционально:
- LibreOffice (`soffice`) для конвертации презентаций в PDF-превью.
## 2. Клонирование проекта
```bash
git clone <URL_репозитория>
cd file-tracker
```
Если проект уже открыт в IDE, этот шаг пропускается.
## 3. Установка зависимостей
```bash
composer install
npm install
```
## 4. Настройка окружения
Создать `.env` на основе примера:
```bash
cp .env.example .env
```
Для Windows PowerShell:
```powershell
Copy-Item .env.example .env
```
Сгенерировать ключ приложения:
```bash
php artisan key:generate
```
## 5. Настройка базы данных
### Вариант A (быстро, SQLite)
В `.env`:
```env
DB_CONNECTION=sqlite
```
Убедиться, что файл `database/database.sqlite` существует.
### Вариант B (MySQL)
В `.env`:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=file_tracker
DB_USERNAME=root
DB_PASSWORD=your_password
```
## 6. Миграции и начальные данные
```bash
php artisan migrate --seed
```
Тестовые пользователи после сида:
- `admin@example.com` / `password`
- `moderator@example.com` / `password`
- `test@example.com` / `password`
## 7. Настройка файлового хранилища
### Локальный диск (по умолчанию)
В `.env`:
```env
FILESYSTEM_DISK=public
```
Создать симлинк:
```bash
php artisan storage:link
```
### Supabase Storage (если используется)
В `.env`:
```env
FILESYSTEM_DISK=supabase
SUPABASE_S3_KEY=your_access_key_id
SUPABASE_S3_SECRET=your_secret_access_key
SUPABASE_S3_BUCKET=file-tracker
SUPABASE_S3_REGION=us-east-1
SUPABASE_S3_ENDPOINT=https://<project-ref>.storage.supabase.co/storage/v1/s3
SUPABASE_S3_URL=https://<project-ref>.storage.supabase.co/storage/v1/object/public/file-tracker
```
Подробная настройка: см. `supabase.md`.
## 8. Запуск приложения
Терминал 1:
```bash
php artisan serve
```
Терминал 2:
```bash
npm run dev
```
Открыть:
- Laravel: `http://127.0.0.1:8000`
- Vite (dev assets): `http://127.0.0.1:5173`
## 9. Проверка работоспособности
1. Зарегистрироваться или войти тестовым пользователем.
2. Перейти в раздел `Файлы`.
3. Загрузить файл.
4. Проверить:
- поиск/фильтрацию,
- отображение тегов,
- скачивание,
- страницу просмотра файла.
## 10. Полезные команды
Очистка кешей:
```bash
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
```
Пересоздание БД:
```bash
php artisan migrate:fresh --seed
```
Тесты:
```bash
php artisan test
```
## 11. Частые проблемы
- `Vite websocket 400`:
- перезапустить `npm run dev`;
- открыть приложение по `127.0.0.1`, а не по `localhost`/`[::1]`.
- Файл не загружается в Supabase:
- проверить `SUPABASE_S3_*` в `.env`;
- выполнить `php artisan config:clear`;
- проверить, что bucket создан и доступен.
- Нет предпросмотра презентаций:
- нужен LibreOffice (`soffice`) для конвертации;
- без него файл загружается, но preview может быть недоступен.