Веб-приложение для создания аналитических инструментов и работы с данными на базе Next.js 14 и PostgreSQL.
Это базовая инфраструктура для Data Dashboard - платформы для анализа данных с простой авторизацией, подключением к PostgreSQL и готовой архитектурой для расширения функционала.
- Frontend/Backend: Next.js 14 с TypeScript
- База данных: PostgreSQL
- Авторизация: iron-session (зашифрованные куки)
- Стили: Tailwind CSS
- Развертывание: PM2
- Node.js 18+
- PostgreSQL 12+
- NPM или Yarn
- Клонирование и установка зависимостей
git clone <repository-url>
cd claude-code
npm install- Настройка базы данных
# Создайте PostgreSQL базу данных
createdb dashboard_db
# Настройте переменные окружения в .env
DATABASE_URL="postgresql://username:password@localhost:5432/dashboard_db"
SESSION_SECRET="your-super-secret-session-key-change-this-in-production"
AUTHORIZED_USERS="admin:admin123,user:user123"
NODE_ENV="development"- Инициализация БД и запуск
# Применить схему БД
npx prisma db push
# Генерировать Prisma клиент
npx prisma generate
# Запустить в режиме разработки
npm run devПриложение будет доступно на http://localhost:3000
Симптомы:
Error validating datasource `db`: the URL must start with the protocol `postgresql://` or `postgres://`
Причина: Конфликт системных переменных окружения с файлом .env
✅ Решение:
- Проект автоматически перекрывает системные переменные
- Убедитесь что
DATABASE_URLв.envимеет правильный формат:DATABASE_URL="postgresql://username:password@host:port/database" - Проверьте подключение:
npx prisma db push
.env- основной файл конфигурации (коммитится в Git).env.local- локальные переопределения (игнорируется Git).env.local.example- пример настроек
- Frontend: Next.js 14 (App Router)
- Backend: Next.js API Routes
- Database: PostgreSQL + Prisma ORM
- Auth: iron-session (cookie-based)
- Styling: Tailwind CSS
- Deploy: PM2 на VPS
POST /api/auth/login- вход в системуPOST /api/auth/logout- выходGET /api/auth/user- текущий пользователь
GET /api/health- проверка состояния БДGET /api/status- статус авторизации
claude-code/
├── src/
│ ├── app/ # Next.js App Router
│ ├── components/ # React компоненты
│ ├── lib/ # Утилиты и конфигурация
│ └── types/ # TypeScript типы
├── prisma/ # Схема и миграции БД
├── project-docs/ # Документация проекта
└── .env # Переменные окружения
Система использует простую авторизацию на основе логина/пароля. Пользователи настраиваются в переменной AUTHORIZED_USERS:
AUTHORIZED_USERS="admin:admin123,user:user123,manager:manager456"# Обязательно измените в продакшене!
SESSION_SECRET="complex-production-secret-minimum-32-characters"
DATABASE_URL="postgresql://prod_user:prod_pass@prod_host:5432/prod_db"
NODE_ENV="production"npm run build
pm2 start ecosystem.config.js# Разработка
npm run dev
# Сборка
npm run build
# Проверка типов
npm run type-check
# Линтинг
npm run lint
# Prisma команды
npx prisma studio # GUI для БД
npx prisma db push # Применить изменения схемы
npx prisma generate # Генерировать клиент
npx prisma migrate dev # Создать миграциюПроект использует Prisma для работы с PostgreSQL. Схема определена в prisma/schema.prisma.
Детальная документация находится в папке project-docs/:
overview.md- обзор проектаtech-specs.md- технические спецификацииrequirements.md- требования и функцииtimeline.md- прогресс и планы
При возникновении проблем:
- Проверьте подключение к БД:
npx prisma db push - Убедитесь что все переменные окружения установлены
- Проверьте логи сервера в консоли
- Обратитесь к документации в
project-docs/
Статус проекта: 🟡 В разработке
Последнее обновление: Декабрь 2024