heagbokat 81c9bba56f feat: redesign UI with pastel theme, dark mode and smooth animations
- Add light/dark/system theme switcher with localStorage persistence
  and automatic prefers-color-scheme detection
- New pastel Instagram-inspired palette: rose accent (#C9445D light,
  #E8687E dark), clean #FAFAFA / #000000 backgrounds
- Replace all hardcoded bg-white / red-* colors with CSS variables
  so every page and modal respects the active theme
- Smooth card hover: translateY elevation + image zoom (no layout shift)
- Micro-animations on action buttons with spring cubic-bezier
- Editorial navbar: 3px accent top bar, uppercase wordmark
- Theme toggle button (sun/moon/monitor) added to navbar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 23:57:33 +03:00
2026-05-29 10:23:25 +03:00
2026-05-29 10:23:25 +03:00
2026-05-29 10:23:25 +03:00

Котограм

Сайт для публикации фотографий котов. React + Vite (фронт), Express + TypeScript (бэк), SQLite.

Первый запуск на сервере

cd /var/www/cats

# 1. Установить зависимости и собрать фронт
npm install --prefix server
npm install --prefix client
npm run build

# 2. Создать файл переменных окружения
cp server/.env.example server/.env
# Отредактировать server/.env: задать JWT_SECRET и ALLOWED_ORIGIN
nano server/.env

# 3. Запустить через PM2
sudo pm2 start npm --name cats -- start

# 4. Зарегистрировать автостарт (один раз на машине)
sudo pm2 startup
# Скопировать и выполнить команду, которую выведет pm2 startup
sudo pm2 save

Переменные окружения (server/.env)

PORT=3040
JWT_SECRET=заменитеа_случайную_строку_32_символа
ALLOWED_ORIGIN=http://cats.heagbokat-server.ru

Сгенерировать JWT_SECRET:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Деплой обновлений

cd /var/www/cats
chmod +x deploy.sh  # только первый раз
./deploy.sh

Скрипт делает: git pull → сборка фронта → перезапуск PM2.

Управление PM2

sudo pm2 ps              # статус процессов
sudo pm2 logs cats       # логи сервера
sudo pm2 restart cats    # перезапустить
sudo pm2 stop cats       # остановить

Данные (не трогать!)

  • server/data.db — база данных (пользователи, лайки, коты)
  • server/uploads/ — загруженные изображения

Оба пути в .gitignoregit pull их не перезапишет.

Первый администратор

При первом запуске автоматически создаётся пользователь admin / admin123.
Обязательно смените пароль через интерфейс или напрямую в БД.

Description
No description provided
Readme 938 KiB
Languages
TypeScript 91.8%
CSS 6.8%
Shell 0.9%
HTML 0.5%