b81ab27553cc7c06990589a9cfd47678fafa0ce4
AirService
Система управления заявками на техническое обслуживание (Service Desk). Сотрудники создают заявки, назначают приоритеты и отслеживают статус выполнения.
Стек: Laravel 10, Livewire, Tailwind CSS, MySQL, Vite
Локальная разработка
Требования: PHP >= 8.2, Composer, Node.js >= 18, MySQL
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
Запустить в двух терминалах:
# Терминал 1
php artisan serve
# Терминал 2
npm run dev
Приложение: http://127.0.0.1:8000
Деплой на сервер (flamy / docker-runtime)
Требования: Docker, Docker Compose на docker-runtime (10.20.0.20).
1. Скопировать проект на сервер
ssh -i /root/.ssh/docker_vm_ed25519 crimson@10.20.0.20
sudo mkdir -p /opt/docker-apps/airservice
Скопировать файлы (с локальной машины):
rsync -avz --exclude='.git' --exclude='node_modules' --exclude='vendor' \
./ crimson@10.20.0.20:/opt/docker-apps/airservice/
2. Создать .env на сервере
cd /opt/docker-apps/airservice
cp .env.example .env
nano .env
Обязательно заполнить:
APP_KEY= # php artisan key:generate --show
APP_URL=https://your-domain.ru
DB_PASSWORD= # придумать
DB_ROOT_PASSWORD= # придумать
3. Запустить
docker compose up -d --build
docker compose ps
docker compose logs -f --tail=100
Проверить локально на сервере:
curl -I http://10.20.0.20:18201
4. Открыть домен через Caddy (edge-proxy)
ssh -i /root/.ssh/edge_vm_ed25519 crimson@192.168.0.80
sudo nano /etc/caddy/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}
}
}
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) |
Description
Languages
PHP
74.5%
Blade
22.8%
JavaScript
1.7%
Dockerfile
0.4%
CSS
0.3%
Other
0.3%