5.3 KiB
5.3 KiB
PROJECT_KNOWLEDGE.md — Voda Landing (cherepovets-landing)
Что это
Лендинг инженерной компании "Вода и Тепло" (Череповец). Ориентирован на управляющие компании (УК) и ТСЖ многоквартирных домов. Цель — генерация заявок на коммерческое предложение.
Стек технологий
| Слой | Технология |
|---|---|
| Runtime | Node.js (LTS) |
| Web-фреймворк | Express 4 |
| БД | PostgreSQL (база voda_landing) |
| Авторизация | express-session + bcryptjs |
| Загрузка файлов | multer (до 10 МБ, jpg/jpeg/png/webp/gif) |
| Фронтенд | Vanilla HTML + CSS (без фреймворков) |
| Шрифты | Google Fonts — Inter |
| Процесс-менеджер | PM2 (имя процесса: voda-landing) |
| Reverse proxy | Nginx |
| SSL | Let's Encrypt (certbot) |
Сервер и инфраструктура
- Сервер: dev.zeroday.su (MCP-коннектор:
dev) - Домен: voda.zeroday.su
- Порт приложения: 3006
- Путь на сервере:
/var/www/cherepovets-landing - Nginx-конфиг:
/etc/nginx/sites-available/voda.zeroday.su - SSL-сертификат:
/etc/letsencrypt/live/voda.zeroday.su/(собственный, не wildcard)
Структура файлов
/var/www/cherepovets-landing/
├── server.js # Основной Express-сервер (PORT=3006)
├── package.json # Зависимости
├── public/
│ ├── index.html # Главная страница лендинга (~36 КБ)
│ ├── styles.css # Стили (~28 КБ)
│ ├── images/
│ │ └── hero-bg.png # Фоновое изображение hero-секции
│ └── uploads/ # Загруженные фото проектов (не в git)
└── admin/
└── index.html # Одностраничная админка
База данных
- СУБД: PostgreSQL
- База:
voda_landing - Пользователь:
postgres - Хост: localhost
- Порт: 5432
- Пароль: (не публикуется, стандартный для dev-окружения)
Данные о загруженных проектах хранятся в БД через multer + pg.
Переменные окружения / конфиг
PORT=3006
DB_USER=postgres
DB_HOST=localhost
DB_NAME=voda_landing
DB_PORT=5432
SESSION_SECRET=voda-landing-secret-<timestamp> # генерируется динамически при запуске
ADMIN_PASSWORD=admin # bcrypt-хеш, дефолтный пароль 'admin'
⚠️ Пароль БД и пароль админки хранятся в secrets-backup репозитории (admin/secrets-backup).
Nginx-конфигурация
server {
listen 80;
server_name voda.zeroday.su;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name voda.zeroday.su;
ssl_certificate /etc/letsencrypt/live/voda.zeroday.su/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/voda.zeroday.su/privkey.pem;
# proxy_pass → http://127.0.0.1:3006
}
PM2
pm2 list # Проверить статус (процесс: voda-landing)
pm2 restart voda-landing
pm2 logs voda-landing --lines 50
Функциональность лендинга
Секции страницы
- Top-bar — адрес (Череповец), режим работы, email
- Навигация — sticky, burger-меню на мобиле, телефон
- Hero — заголовок, описание, CTA-кнопка, счётчики (12+ лет, 87+ объектов, 24+ партнёра)
- Услуги — горизонтальная карусель на мобиле (4 услуги)
- Преимущества — горизонтальная карусель на мобиле (6 пунктов)
- Портфолио — горизонтальная карусель на мобиле (3 проекта)
- Форма обратной связи / нижний CTA
- Footer — контакты, © 2026
Мобильная адаптация
- Breakpoints: <640px (mobile), 640-1024px (tablet), >1024px (desktop)
- Burger-меню вынесено за пределы
<nav>(решение бага fixed внутри sticky) touch-action: pan-xна каруселях- Hover-эффекты отключены на мобиле
Админка
- URL:
/admin/ - Авторизация через express-session + bcrypt
- Управление фото проектов (загрузка через multer)
Коллеги / стейкхолдеры
- Владелец: ffr (пользователь системы ZeroAI)
- Компания: "Вода и Тепло", Череповец, Вологодская обл.
- Целевая аудитория: УК (управляющие компании), ТСЖ, МКД
- Gitea: https://git.zeroday.su/admin/cherepovets-landing