# 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