Files
TenerifeProp/SERVER_AUDIT_REPORT.md
APAW Agent Sync 3bcc705e3b docs: add deployment guides, audit reports, and production sync scripts
- 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
2026-05-13 23:44:38 +01:00

91 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Аудит сервера и план деплоя TenerifeProp
## Общие данные
- **Сервер**: Ubuntu 22.04 (Jammy), IP `46.175.149.131`
- **Панель**: BrainyCP (пользователь `nero`)
- **Домен**: `tenerifeprop.es` (SSL Let's Encrypt активен)
- **Папка сайта**: `/home/nero/sites/tenerifeprop.es`
## Архитектура текущего сервера (BrainyCP)
```
Internet → Nginx (BrainyCP) → Proxy_pass → Node.js (stub на порту 3003)
SSL (Let's Encrypt)
```
BrainyCP создала:
1. Vhost Nginx с `proxy_pass` на `127.0.0.1:3003`
2. SSL-сертификат Let's Encrypt
3. Systemd unit `nodejs@3003.service`, запускающий `index.js`
4. Заглушку `index.js` (заглушка BrainyCP)
## Ключевой конфликт стеков
| Компонент | Проект TenerifeProp | Что предоставляет BrainyCP |
|-----------|---------------------|---------------------------|
| **Runtime** | Bun (`bun run src/server/index.ts`) | Node.js v20.10.0 (только) |
| **БД** | `bun:sqlite` (SQLite) | Нет специфической поддержки |
| **Статика** | `serveStatic` из `hono/bun` | Nginx обрабатывает статику |
| **Фреймворк** | Hono | Работает под Node.js без `hono/bun` |
## Варианты решения
### Вариант 1: Установить Bun на сервере (РЕКОМЕНДУЕТСЯ)
BrainyCP устанавливает Node.js через `apt`, но на сервере есть root-доступ. Bun можно установить отдельно — он не конфликтует с системным Node.js.
**Преимущества:**
- Не требуется переписывать код
- `bun:sqlite` и `hono/bun` работают из коробки
- SQLite-файл просто скопировать
**Шаги:**
1. Установить Bun (в `$HOME/.bun` или глобально).
2. Загрузить файлы проекта (`src/`, `public/`, `data/`, `package.json`, `bun.lock`) в `/home/nero/sites/tenerifeprop.es`.
3. Создать `.env` с `PORT=3003`, `NODE_ENV=production`.
4. Установить зависимости: `bun install --production`.
5. Остановить `nodejs@3003.service`.
6. Запустить проект через PM2.
7. Проверить `curl http://localhost:3003/api/settings`.
### Вариант 2: Переписать проект под Node.js (НЕ РЕКОМЕНДУЕТСЯ)
Если категорически не ставить Bun, нужно:
- Заменить `import { Database } from 'bun:sqlite'` на `better-sqlite3`.
- Заменить `import { serveStatic } from 'hono/bun'` на `import { serveStatic } from 'hono/node-server'`.
- Пересоздать `bun.lock` в `package-lock.json`.
- Протестировать всё заново.
**Минусы:** высокий риск багов, новые зависимости, перетестировать всё.
## Что нужно от тебя для деплоя
| Данные | Пояснение |
|--------|-----------|
| **SSH логин/пароль** | Доступ к серверу (root) |
| **Домен** | `tenerifeprop.es` |
| **Порт** | `3003` (уже выделен BrainyCP) |
| **Env vars** | `RESEND_API_KEY`, `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID` |
### Команды для копирования файлов (без SSH)
```bash
# С локальной машины
scp -r /home/swp/Projects/TenerifeProp/src nero@46.175.149.131:/home/nero/sites/tenerifeprop.es/
scp -r /home/swp/Projects/TenerifeProp/public nero@46.175.149.131:/home/nero/sites/tenerifeprop.es/
scp /home/swp/Projects/TenerifeProp/package.json nero@46.175.149.131:/home/nero/sites/tenerifeprop.es/
scp /home/swp/Projects/TenerifeProp/bun.lock nero@46.175.149.131:/home/nero/sites/tenerifeprop.es/
```
## Риски
1. **Обновление BrainyCP** может перезаписать Nginx-конфиг — нужно проверять после обновлений.
2. **Bun не в репозиториях** — обновляется вручную (`bun upgrade`).
3. **Systemd unit** — BrainyCP управляет только `nodejs@3003.service`. Если остановить его и запустить PM2 — всё нормально, но кнопка "Перезапустить хост" в BrainyCP перезапустит заглушку, а не ваш проект.
## Итог
**Рекомендация:** Установить Bun и запустить проект на нём. Nginx-прокси уже настроена BrainyCP, SSL работает. Нужно только загрузить файлы проекта, установить зависимости и заменить заглушку на реальный процесс.
Если подтвердишь — выполню деплой.