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

4.9 KiB
Raw Permalink Blame History

Аудит сервера и план деплоя 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)

# С локальной машины
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 работает. Нужно только загрузить файлы проекта, установить зависимости и заменить заглушку на реальный процесс.

Если подтвердишь — выполню деплой.