sqlite
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
# AirService
|
||||
|
||||
Система управления заявками на техническое обслуживание (Service Desk). Сотрудники создают заявки, назначают приоритеты и отслеживают статус выполнения.
|
||||
Система управления заявками на техническое обслуживание (Service Desk).
|
||||
|
||||
**Стек:** Laravel 10, Livewire, Tailwind CSS, MySQL, Vite
|
||||
**Стек:** Laravel 10, Livewire, Tailwind CSS, SQLite, Vite
|
||||
|
||||
---
|
||||
|
||||
## Локальная разработка
|
||||
|
||||
**Требования:** PHP >= 8.2, Composer, Node.js >= 18, MySQL
|
||||
**Требования:** PHP >= 8.2, Composer, Node.js >= 18
|
||||
|
||||
```bash
|
||||
git clone <repo-url>
|
||||
@@ -18,9 +18,10 @@ 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
|
||||
# Поменять APP_ENV=local, APP_DEBUG=true, APP_URL=http://localhost:8000
|
||||
php artisan key:generate
|
||||
|
||||
touch database/sqlite/database.sqlite
|
||||
php artisan migrate --seed
|
||||
```
|
||||
|
||||
@@ -34,13 +35,22 @@ php artisan serve
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Приложение: [http://127.0.0.1:8000](http://127.0.0.1:8000)
|
||||
Приложение: http://127.0.0.1:8000
|
||||
|
||||
**Тестовые аккаунты** (пароль у всех: `password`):
|
||||
|
||||
| Email | Роль |
|
||||
|---|---|
|
||||
| admin@service.local | Администратор |
|
||||
| manager@service.local | Менеджер |
|
||||
| tech1@service.local | Техник |
|
||||
| client1@service.local | Клиент |
|
||||
|
||||
---
|
||||
|
||||
## Деплой на сервер (flamy / docker-runtime)
|
||||
## Деплой на сервер (Docker)
|
||||
|
||||
**Требования:** Docker, Docker Compose на `docker-runtime` (`10.20.0.20`).
|
||||
**Требования:** Docker, Docker Compose на сервере `10.20.0.20`.
|
||||
|
||||
### 1. Скопировать проект на сервер
|
||||
|
||||
@@ -49,7 +59,7 @@ 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' \
|
||||
@@ -67,27 +77,62 @@ nano .env
|
||||
Обязательно заполнить:
|
||||
|
||||
```env
|
||||
APP_KEY= # php artisan key:generate --show
|
||||
APP_KEY= # сгенерировать ниже
|
||||
APP_URL=https://your-domain.ru
|
||||
DB_PASSWORD= # придумать
|
||||
DB_ROOT_PASSWORD= # придумать
|
||||
```
|
||||
|
||||
### 3. Запустить
|
||||
Сгенерировать ключ:
|
||||
|
||||
```bash
|
||||
docker compose run --rm app php artisan key:generate --show
|
||||
# Скопировать результат в APP_KEY= в .env
|
||||
```
|
||||
|
||||
### 3. Собрать и запустить
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
docker compose ps
|
||||
docker compose logs -f --tail=100
|
||||
```
|
||||
|
||||
Проверить локально на сервере:
|
||||
### 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
|
||||
```
|
||||
|
||||
### 4. Открыть домен через Caddy (edge-proxy)
|
||||
### Пересборка после обновления кода
|
||||
|
||||
```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
|
||||
@@ -120,9 +165,8 @@ 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`) |
|
||||
| Сервис | Описание |
|
||||
|---|---|
|
||||
| `airservice_app` | PHP-FPM (Laravel) |
|
||||
| `airservice_nginx` | nginx, порт `18201` |
|
||||
| `airservice_queue` | Queue worker |
|
||||
|
||||
Reference in New Issue
Block a user