# AirService Система управления заявками на техническое обслуживание (Service Desk). Сотрудники создают заявки, назначают приоритеты и отслеживают статус выполнения. **Стек:** Laravel 10, Livewire, Tailwind CSS, MySQL, Vite --- ## Локальная разработка **Требования:** PHP >= 8.2, Composer, Node.js >= 18, MySQL ```bash git clone 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`) |