merge-cards-and-lang
Две линии разработки разъехались и месяц жили порознь: в Gitea уехали электронные визитки с QR-кодом, а в рабочей копии на fortress остались шесть коммитов, которые до репозитория не дошли и, значит, не попали на сайт — английская версия с переключателем языков, карточка Бонитировки, логотипы продуктов, реквизиты компании в подвале, убранная кнопка Telegram, имя директора латиницей. Плюс незакоммиченное бургер-меню. Что разрешено вручную: 1. Landing.tsx, блок контактов. Столкнулись наша расстановка (почта главной кнопкой с подписью из cta_primary, телефон второй) и правка из Gitea, переводящая оба контакта с href на onClick, чтобы адрес и номер не лежали в разметке и их не собирали боты. Взято и то, и другое: защита от ботов сохранена, порядок и оформление наши, адрес почты в подписи не светится. 2. Коллизия номеров миграций: обе стороны завели номер 003. На живой базе применены 001, 002 и 003_business_cards, а 003_product_url_and_requisites не выполнялась никогда — она и переименована в 004, чтобы раннер (он отслеживает миграции по имени файла) отработал её штатно. 3. package-lock пересобран под слитый манифест, а не выбран со стороны. Проверено: tsc чист, vite build проходит, 118 модулей, 241 КБ.
Умный Байт — лендинг компании
Сайт компании ООО «Умный Байт» (umbyte.ru) с админ-панелью для управления контентом.
Стек
- Frontend: Vite + React + TypeScript + Tailwind CSS
- Backend: Node.js + Express + TypeScript
- БД: PostgreSQL 16
- Auth: JWT
- Deploy: Docker + Coolify на fortress.zeroday.su
Структура
umbyte-landing/
├── frontend/ # Публичный лендинг + админка
├── backend/ # REST API
├── db/ # SQL миграции
├── Dockerfile # production билд (multi-stage)
└── docker-compose.yml # для локальной разработки
Production deploy
Push в main → Coolify автоматически собирает Dockerfile и деплоит.
Переменные окружения (в Coolify):
DB_HOST=postgres-<UUID>— полное имя контейнера БДDB_USER,DB_PASSWORD,DB_NAMEJWT_SECRET— случайная строкаADMIN_INITIAL_PASSWORD— пароль первого админа при инициализации
Description
Languages
TypeScript
82.7%
CSS
5.9%
JavaScript
5%
HTML
4.7%
Dockerfile
1.7%