- BRAINYCP_DEPLOY_GUIDE.md: complete human deployment guide - AI_DEPLOY_CONTEXT.md: machine-readable deploy instructions for AI agents - sync-production.sh: universal deployment script (full/quick/status/logs/backup) - DEPLOY_PLAN.md: step-by-step deployment plan - DEPLOY_AUDIT_REPORT.md: server audit results - MIGRATION_AUDIT_REPORT.md: MySQL migration complexity analysis - SERVER_AUDIT_REPORT.md: server environment audit - Update README.md with BrainyCP deploy workflow and Git sync instructions Refs: production server 46.175.149.131, domain tenerifeprop.es
189 lines
6.1 KiB
Markdown
189 lines
6.1 KiB
Markdown
# TenerifeProp
|
||
|
||
Агентство недвижимости на острове Тенерифе (Канарские острова, Испания).
|
||
|
||
## 🚀 Быстрый старт с Docker
|
||
|
||
```bash
|
||
# Сборка и запуск
|
||
docker-compose up -d --build
|
||
|
||
# Приложение будет доступно на http://localhost:8080
|
||
```
|
||
|
||
## 📦 Локальная разработка
|
||
|
||
### Требования
|
||
|
||
- [Bun](https://bun.sh/) >= 1.0.0
|
||
- Node.js >= 18 (опционально)
|
||
|
||
### Установка
|
||
|
||
```bash
|
||
# Установка зависимостей
|
||
bun install
|
||
|
||
# Инициализация базы данных
|
||
bun run db:init
|
||
|
||
# Заполнение тестовыми данными
|
||
bun run db:seed
|
||
|
||
# Запуск сервера разработки
|
||
bun run dev
|
||
```
|
||
|
||
### Доступные скрипты
|
||
|
||
```bash
|
||
bun run dev # Запуск в режиме разработки
|
||
bun run start # Запуск в production режиме
|
||
bun run db:init # Инициализация БД
|
||
bun run db:seed # Заполнение тестовыми данными
|
||
bun run build # Сборка проекта
|
||
bun run test # Запуск тестов
|
||
```
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
TenerifeProp/
|
||
├── public/ # Статические файлы
|
||
│ ├── index.html # Главная страница
|
||
│ ├── property.html # Страница объекта
|
||
│ ├── admin.html # Админ-панель
|
||
│ ├── css/ # Стили
|
||
│ └── js/ # JavaScript
|
||
├── src/
|
||
│ ├── server/ # Backend (Bun + Hono)
|
||
│ ├── db/ # Схема БД
|
||
│ ├── types/ # TypeScript типы
|
||
│ ├── data/ # JSON данные
|
||
│ └── i18n/ # Переводы
|
||
├── docs/ # Документация
|
||
├── Dockerfile # Docker образ
|
||
├── docker-compose.yml # Docker Compose
|
||
├── package.json # Зависимости
|
||
└── tsconfig.json # TypeScript конфиг
|
||
```
|
||
|
||
## 🔧 API Endpoints
|
||
|
||
### Недвижимость
|
||
|
||
| Метод | Endpoint | Описание |
|
||
|-------|----------|----------|
|
||
| `GET` | `/api/properties` | Список объектов |
|
||
| `GET` | `/api/properties/:slug` | Детали объекта |
|
||
| `GET` | `/api/properties/featured` | Рекомендуемые |
|
||
| `POST` | `/api/properties` | Создать (admin) |
|
||
| `PUT` | `/api/properties/:id` | Обновить (admin) |
|
||
| `DELETE` | `/api/properties/:id` | Удалить (admin) |
|
||
|
||
### Заявки
|
||
|
||
| Метод | Endpoint | Описание |
|
||
|-------|----------|----------|
|
||
| `GET` | `/api/leads` | Список заявок |
|
||
| `POST` | `/api/leads` | Создать заявку |
|
||
| `PUT` | `/api/leads/:id/status` | Изменить статус |
|
||
|
||
### Контент
|
||
|
||
| Метод | Endpoint | Описание |
|
||
|-------|----------|----------|
|
||
| `GET` | `/api/testimonials` | Отзывы |
|
||
| `GET` | `/api/faq` | FAQ |
|
||
| `GET` | `/api/services` | Услуги |
|
||
| `GET` | `/api/settings` | Настройки |
|
||
|
||
## 🗄️ База данных
|
||
|
||
SQLite база данных автоматически создается в `./data/tenerifeprop.db`.
|
||
|
||
### Основные таблицы
|
||
|
||
- `properties` - Объекты недвижимости
|
||
- `leads` - Заявки клиентов
|
||
- `users` - Пользователи системы
|
||
- `testimonials` - Отзывы
|
||
- `faq` - Вопросы-ответы
|
||
- `services` - Услуги
|
||
- `settings` - Настройки сайта
|
||
|
||
## 🌍 Мультиязычность
|
||
|
||
Поддерживаемые языки:
|
||
- 🇪🇸 Испанский (ES) - основной
|
||
- 🇷🇺 Русский (RU)
|
||
|
||
Переключение языка через `?lang=ru` или кнопку в интерфейсе.
|
||
|
||
## 👤 Учётные данные по умолчанию
|
||
|
||
```
|
||
Email: admin@tenerifeprop.com
|
||
Password: admin123
|
||
```
|
||
|
||
## 🌐 Деплой на BrainyCP (Production)
|
||
|
||
### Инфраструктура
|
||
- **Сервер:** Ubuntu 22.04, BrainyCP (пользователь `nero`)
|
||
- **Домен:** `https://tenerifeprop.es`
|
||
- **Runtime:** Bun v1.3.14
|
||
- **Порт:** 3003 (reverse proxy через Nginx)
|
||
- **SSL:** Let's Encrypt (управляется BrainyCP)
|
||
|
||
### Синхронизация (Git workflow)
|
||
|
||
Проект использует три ветки:
|
||
- `dev` — разработка
|
||
- `main` — стабильный релиз
|
||
- `production` — ветка продакшена на BrainyCP
|
||
|
||
```bash
|
||
# 1. Разработка
|
||
bun run dev # Локально
|
||
git checkout dev
|
||
git commit -m "feat: ..."
|
||
git push origin dev
|
||
|
||
# 2. Релиз → main
|
||
git checkout main
|
||
git merge dev
|
||
git push origin main
|
||
|
||
# 3. Деплой → production
|
||
git push origin main:production # Или PR через Gitea
|
||
|
||
# 4. Обновление на сервере
|
||
ssh root@46.175.149.131
|
||
cd /home/nero/sites/tenerifeprop.es
|
||
./scripts/sync-production.sh full
|
||
```
|
||
|
||
### Скрипты на сервере
|
||
- `./scripts/sync-production.sh full` — полный деплой (git pull + install + restart)
|
||
- `./scripts/sync-production.sh quick` — быстрый рестарт
|
||
- `./scripts/sync-production.sh status` — статус сервера
|
||
- `./scripts/sync-production.sh backup` — бэкап БД
|
||
- `./scripts/sync-production.sh logs` — логи в реальном времени
|
||
|
||
### Права доступа (BrainyCP standard)
|
||
```
|
||
/home/nero root:root 755
|
||
/home/nero/sites root:root 755
|
||
/home/nero/sites/tenerifeprop.es nero:nero 755
|
||
```
|
||
|
||
### Документация для DevOps
|
||
- `docs/BRAINYCP_DEPLOY_GUIDE.md` — полное руководство по деплою
|
||
- `docs/AI_DEPLOY_CONTEXT.md` — контекст для ИИ-агентов
|
||
- `DEPLOY_AUDIT_REPORT.md` — аудит перед деплоем
|
||
- `MIGRATION_AUDIT_REPORT.md` — анализ миграции на MySQL/Node.js
|
||
|
||
## 📄 Лицензия
|
||
|
||
MIT License - UniqueSoft |