Files
AirService_potyk/README.md
T
2026-06-02 20:35:48 +05:00

129 lines
3.0 KiB
Markdown

# AirService
Система управления заявками на техническое обслуживание (Service Desk). Сотрудники создают заявки, назначают приоритеты и отслеживают статус выполнения.
**Стек:** Laravel 10, Livewire, Tailwind CSS, MySQL, Vite
---
## Локальная разработка
**Требования:** PHP >= 8.2, Composer, Node.js >= 18, MySQL
```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
# Поменять DB_HOST=127.0.0.1, DB_USERNAME=root, убрать DB_ROOT_PASSWORD
php artisan key:generate
php artisan migrate --seed
```
Запустить в двух терминалах:
```bash
# Терминал 1
php artisan serve
# Терминал 2
npm run dev
```
Приложение: [http://127.0.0.1:8000](http://127.0.0.1:8000)
---
## Деплой на сервер (flamy / docker-runtime)
**Требования:** Docker, Docker Compose на `docker-runtime` (`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= # php artisan key:generate --show
APP_URL=https://your-domain.ru
DB_PASSWORD= # придумать
DB_ROOT_PASSWORD= # придумать
```
### 3. Запустить
```bash
docker compose up -d --build
docker compose ps
docker compose logs -f --tail=100
```
Проверить локально на сервере:
```bash
curl -I http://10.20.0.20:18201
```
### 4. Открыть домен через 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_mysql` | MySQL 8.0, только внутри сети |
| `airservice_queue` | Queue worker (`queue:work`) |