Files
AirService_potyk/README.md
T
2026-06-02 22:18:38 +05:00

173 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AirService
Система управления заявками на техническое обслуживание (Service Desk).
**Стек:** Laravel 10, Livewire, Tailwind CSS, SQLite, Vite
---
## Локальная разработка
**Требования:** PHP >= 8.2, Composer, Node.js >= 18
```bash
git clone <repo-url>
cd AirService
composer install
npm install
cp .env.example .env
# Поменять APP_ENV=local, APP_DEBUG=true, APP_URL=http://localhost:8000
php artisan key:generate
touch database/sqlite/database.sqlite
php artisan migrate --seed
```
Запустить в двух терминалах:
```bash
# Терминал 1
php artisan serve
# Терминал 2
npm run dev
```
Приложение: http://127.0.0.1:8000
**Тестовые аккаунты** (пароль у всех: `password`):
| Email | Роль |
|---|---|
| admin@service.local | Администратор |
| manager@service.local | Менеджер |
| tech1@service.local | Техник |
| client1@service.local | Клиент |
---
## Деплой на сервер (Docker)
**Требования:** Docker, Docker Compose на сервере `10.20.0.20`.
### 1. Скопировать проект на сервер
```bash
ssh -i /root/.ssh/docker_vm_ed25519 crimson@10.20.0.20
sudo mkdir -p /opt/docker-apps/airservice
```
С локальной машины:
```bash
rsync -avz --exclude='.git' --exclude='node_modules' --exclude='vendor' \
./ crimson@10.20.0.20:/opt/docker-apps/airservice/
```
### 2. Создать `.env` на сервере
```bash
cd /opt/docker-apps/airservice
cp .env.example .env
nano .env
```
Обязательно заполнить:
```env
APP_KEY= # сгенерировать ниже
APP_URL=https://your-domain.ru
```
Сгенерировать ключ:
```bash
docker compose run --rm app php artisan key:generate --show
# Скопировать результат в APP_KEY= в .env
```
### 3. Собрать и запустить
```bash
docker compose up -d --build
```
### 4. Наполнить базу начальными данными (один раз)
```bash
docker compose exec app php artisan db:seed
```
После этого доступны тестовые аккаунты из таблицы выше.
### 5. Проверить
```bash
docker compose ps
docker compose logs app --tail=50
curl -I http://10.20.0.20:18201
```
### Пересборка после обновления кода
```bash
rsync -avz --exclude='.git' --exclude='node_modules' --exclude='vendor' \
./ crimson@10.20.0.20:/opt/docker-apps/airservice/
docker compose up -d --build
```
Миграции накатываются автоматически при старте контейнера. База данных (SQLite файл) хранится в Docker volume `airservice_sqlite_data` и не теряется при пересборке.
### Если нужно сбросить базу и накатить заново
```bash
docker compose down
docker volume rm airservice_sqlite_data
docker compose up -d --build
docker compose exec app php artisan db:seed
```
---
### Открыть домен через Caddy (edge-proxy)
```bash
ssh -i /root/.ssh/edge_vm_ed25519 crimson@192.168.0.80
sudo nano /etc/caddy/Caddyfile
```
Добавить блок:
```caddyfile
http://www.your-domain.ru, https://www.your-domain.ru {
redir https://your-domain.ru{uri} 308
}
your-domain.ru {
encode zstd gzip
reverse_proxy 10.20.0.20:18201 {
header_up Host {host}
header_up X-Real-IP {remote_host}
}
}
```
```bash
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
```
---
## Структура Docker-сервисов
| Сервис | Описание |
|---|---|
| `airservice_app` | PHP-FPM (Laravel) |
| `airservice_nginx` | nginx, порт `18201` |
| `airservice_queue` | Queue worker |