Первоначальная настройка
Пошаговое руководство по настройке проекта Integ API с нуля. Выполняется один раз при начале работы с проектом.
Время выполнения
~15-20 минут при хорошем интернет-соединении
Чеклист требований
Перед началом убедитесь, что установлено:
- [ ] Node.js 20.x+ (
node --version) - [ ] npm 10.x+ (
npm --version) - [ ] Docker 24.x+ (
docker --version) - [ ] Docker Compose 2.x+ (
docker compose version) - [ ] Git (
git --version) - [ ] Доступ к репозиторию проекта
Шаг 1: Клонирование репозитория
# Клонировать репозиторий
git clone git@github.com:Happ-AI/integ-api.git
# Перейти в директорию
cd integ-api
# Проверить текущую ветку
git branch
# Должно показать: * devЕсли нет доступа к репозиторию
Обратитесь к администратору для получения доступа. Вам нужен SSH ключ добавленный в GitHub.
# Проверить SSH ключ
ssh -T git@github.comШаг 2: Установка зависимостей
# Установить npm пакеты
npm install
# Инициализировать Husky (git hooks)
npm run prepareОжидаемый результат: папка node_modules создана, нет ошибок в консоли.
Шаг 3: Установка Doppler CLI
Doppler используется для управления секретами и переменными окружения.
macOS
brew install dopplerhq/cli/dopplerLinux
# Ubuntu/Debian
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -sLf --retry 3 --tlsv1.2 --proto "=https" \
'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | \
sudo gpg --dearmor -o /usr/share/keyrings/doppler-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/doppler-archive-keyring.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | \
sudo tee /etc/apt/sources.list.d/doppler-cli.list
sudo apt-get update && sudo apt-get install dopplerWindows (PowerShell)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
scoop bucket add doppler https://github.com/DopplerHQ/scoop-doppler.git
scoop install dopplerПроверка установки
doppler --version
# Должно показать версиюШаг 4: Настройка Doppler
# Авторизоваться (откроет браузер)
doppler login
# Настроить проект
doppler setup
# Выбрать:
# - Project: integ-api
# - Config: localПроверка:
doppler secrets
# Должен показать список секретовНет доступа к Doppler?
Обратитесь к администратору проекта для получения доступа к workspace.
Шаг 5: Запуск Docker инфраструктуры
# Запустить PostgreSQL
npm run docker:up
# Проверить что контейнер работает
docker psОжидаемый результат:
CONTAINER ID IMAGE STATUS PORTS
xxxx postgres:16 Up 0.0.0.0:5435->5432/tcpШаг 6: Запуск миграций
# Применить миграции базы данных
npm run migration:runОжидаемый результат:
Migration AddUsersTable has been executed successfully
Migration AddIntegrationsTable has been executed successfully
...Шаг 7: Первый запуск
# Запустить dev сервер
npm startОжидаемый результат:
[Nest] LOG [NestApplication] Nest application successfully started
[Nest] LOG Application is running on: http://localhost:3005Шаг 8: Проверка работоспособности
Health Check
curl http://localhost:3005/health
# {"status":"ok"}Scalar UI
Откройте в браузере: http://localhost:3005/api/reference
Создание тестового пользователя
curl -X POST http://localhost:3005/api/auth/sign-up \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com",
"password": "password123"
}'Получение токена
curl -X POST http://localhost:3005/api/auth/sign-in \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com",
"password": "password123"
}'Сохраните полученный токен для дальнейшей работы.
Шаг 9: Настройка IDE (опционально)
VS Code
Рекомендуемые расширения:
- ESLint - линтинг
- Prettier - форматирование
- TypeScript - поддержка TypeScript
- Docker - работа с контейнерами
# Установить расширения
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
code --install-extension ms-azuretools.vscode-dockerНастройки VS Code
Создайте .vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"typescript.preferences.importModuleSpecifier": "relative"
}Итоговый чеклист
После выполнения всех шагов проверьте:
- [ ]
npm startзапускает приложение без ошибок - [ ] http://localhost:3005/health отвечает
{"status":"ok"} - [ ] http://localhost:3005/api/reference открывается
- [ ] Можно зарегистрировать и авторизовать пользователя
- [ ]
docker psпоказывает работающий контейнер PostgreSQL
Что дальше?
- Ежедневный workflow - узнайте типичный рабочий день
- Архитектура - изучите структуру проекта
- Правила кода - познакомьтесь со стандартами
- API Guide - начните работать с API
Troubleshooting
Порт занят
# Найти процесс на порту 3000
lsof -i :3005
kill -9 <PID>Docker не запускается
# Проверить Docker
docker info
# Если не работает - запустить Docker DesktopМиграции не применяются
# Проверить подключение к БД
docker exec -it postgres psql -U postgres -c "SELECT 1"
# Перезапустить миграции
npm run migration:revert
npm run migration:runDoppler ошибки
# Переавторизоваться
doppler logout
doppler login
doppler setupПодробнее: Частые ошибки