Сайт IT/ Digital агентства
Заявки с форм: POST /api/submit-form → MongoDB (spacemodruleads) + Telegram. Отправка в Bitrix отключена.
Ценность
Вайбкодинг
90 ч
Строк кода
101 000+
Аналог у студии
от 560 000 ₽
Экономия на токенах
≈ 50 000 ₽
Инструкция из репозитория
SpaceMod
Цифровой контур бизнеса: лендинги услуг, SEO/GEO, инструменты, админка лидов и клиентский кабинет CRM на Next.js + MongoDB.
Навигация · Возможности · Админка · Стек · Установка · Env · Структура · Деплой · Git · Docs
Возможности
| Поверхность | Путь | Описание |
|---|---|---|
| Главная / услуги | /, /yandex-direct, /seo-geo-aeo, /crm, … | Маркетинговые лендинги v4, формы заявок |
| SEO / GEO / wiki | /seo/*, /geo/*, /wiki/*, /knowledge/* | Контентные хабы |
| Инструменты | /tools, /tools/utm-generator | Публичные утилиты |
| Яндекс Директ | /yandex-direct, /yandex-direct/media-plan | Услуга + медиаплан |
| Блог | /blog | Посты (MongoDB / WordPress API) |
| Кейсы | /cases | Публичные кейсы |
| Админка | /admin | Лиды, блог, CRM, кейсы |
| Кабинет клиента | /cabinet | Magic-link вход, чат, задачи, счета |
Модули кода
| Модуль | Путь | Назначение |
|---|---|---|
| Admin leads | modules/admin | Канбан лидов, auth, retry Telegram |
| CRM | modules/crm | Клиенты, чат, задачи, счета (админ UI) |
| Cabinet | modules/cabinet | Клиентский портал + файлы на диске |
| Cases | modules/cases | Управление кейсами |
| Yandex Direct | modules/yandex-direct | Медиаплан / семантика |
| Landings v4 | components/home-concept/v4 | UI лендингов и реестр страниц |
Заявки с форм:
POST /api/submit-form→ MongoDB (spacemod_ru_leads) + Telegram. Отправка в Bitrix отключена.
Админка /admin
Вход: пароль из ADMIN_PASSWORD (без дефолта в коде). Сессия в sessionStorage.
| Вкладка | Функции |
|---|---|
| Лиды | Канбан по сегментам / Asana-статусам, поиск, CSV, retry Telegram, конвертация в CRM-клиента |
| Блог | CRUD постов, обложки (опционально Kie.ai) |
| CRM | Клиенты, чат, задачи, счета, инвайты, демо-seed |
| Кейсы | Управление кейсами сайта |
Клиентский кабинет (/cabinet): дашборд, чат, задачи, счета, загрузка платёжек. Файлы — локально в CRM_FILES_DIR (не Vercel Blob).
Tech stack
| Слой | Технология |
|---|---|
| App | Next.js 15.2.4 (App Router), React 19, TypeScript |
| UI | Tailwind CSS, Radix / shadcn |
| Data | MongoDB 7 (mongodb driver) |
| nodemailer (SMTP) | |
| Process | PM2 (ecosystem.config.js) |
| Package manager | pnpm |
Версия пакета: 0.1.0 (package.json).
Prerequisites
- Node.js 18+ (рекомендуется 20/22)
- pnpm 8+
- MongoDB 7 (локально или Docker)
- Git + SSH-доступ к remote
Clone / доступ
git clone git@gitverse.ru:spacemod/spacemod.ru.git
cd spacemod.ru
Доступ к remote выдаёт владелец репозитория out-of-band.
Local development
pnpm install
cp .env.example .env.local
# заполните MONGODB_URI, ADMIN_PASSWORD, TELEGRAM_* и при необходимости SMTP
MongoDB (рекомендуется Docker)
docker run -d --name spacemod-mongo \
-p 27017:27017 \
mongo:7
В .env.local:
MONGODB_URI=mongodb://127.0.0.1:27017/spacemod_ai?directConnection=true
MONGODB_DB=spacemod_ai
Cloud Atlas / managed DB — только если владелец явно выдал URI. Не коммитьте credentials.
Dev server
pnpm dev
# http://localhost:3000
Production-сборка локально:
pnpm build && pnpm start
Каталог загрузок CRM создаётся автоматически (storage/crm или CRM_FILES_DIR).
Environment variables
Источник правды: .env.example.
Required
| Variable | Назначение |
|---|---|
NEXT_PUBLIC_SITE_URL | Публичный URL сайта |
MONGODB_URI | Строка подключения MongoDB |
MONGODB_DB | Имя БД (обычно spacemod_ai) |
ADMIN_PASSWORD | Пароль /admin |
TELEGRAM_BOT_TOKEN | Бот для уведомлений о заявках |
TELEGRAM_CHAT_ID | Chat ID (через запятую) |
Recommended (кабинет / CRM)
| Variable | Назначение |
|---|---|
SMTP_* | Исходящая почта magic link |
CRM_FROM_EMAIL / CRM_FROM_NAME | From для писем |
CRM_APP_URL | Базовый URL для magic links |
CRM_FILES_DIR | Абсолютный путь к файлам CRM |
Optional
| Variable | Назначение |
|---|---|
TELEGRAM_API_BASE_URL | Прокси Telegram API |
WORDPRESS_API_URL | Headless WordPress blog |
KIE_AI_API_KEY | Генерация обложек блога |
Секреты передаются разработчикам только out-of-band, не через git.
Project structure
app/ # Next.js App Router (site, admin, cabinet, api)
components/ # UI, лендинги v4, формы
modules/ # admin, cabinet, crm, cases, yandex-direct
lib/ # mongodb, telegram, seo, mail helpers
public/ # статика
scripts/ # утилиты (+ scripts/scratch)
docs/ # документация и рабочие артефакты
ecosystem.config.js # PM2
.env.example # шаблон env (tracked)
Вложенный каталог landingSpacemod/ — legacy-лендинг; основной продукт — корневое Next.js-приложение. Не трогать без задачи.
Common scripts
| Command | Описание |
|---|---|
pnpm dev | Dev-сервер (порт 3000) |
pnpm build | Production build |
pnpm start | Запуск .next |
pnpm generate:favicons | Генерация favicon-ов |
Диагностика форм (scratch):
node scripts/scratch/test-form-deps.mjs
Production deploy
Целевая схема: VPS + Nginx reverse proxy → Next.js на порту 3000 → PM2.
Критичные правила:
- Env только в
.env.localна сервере (не в git). - После деплоя:
pnpm install→pnpm build→pm2 restart <app> --update-env. - Файлы CRM: каталог
CRM_FILES_DIRс правами записи у пользователя PM2. - Не использовать
git push --forceвmaster/develop.
Краткий цикл на сервере (путь адаптируйте под хост):
cd /var/www/spacemod.ru
# синхронизация кода (rsync / git pull — по договорённости с владельцем)
pnpm install
pnpm build
pm2 restart spacemod-ru --update-env
Подробные runbook-и и nginx — в docs/ops/.
PM2: ecosystem.config.js (PORT=3000).
Git workflow
Ветки:
| Branch | Назначение |
|---|---|
master | production |
develop | интеграционная |
feature/* | задачи |
Правила:
- Не коммитить напрямую в
master/develop. - Порядок:
feature/<name>→ merge--no-ffвdevelop→ merge--no-ffвmaster. - Conventional commits:
feat|fix|docs|refactor|chore(scope): … - Не коммитить
.env,.env.local, секреты,storage/.
Если ветки
developещё нет — создать отmasterперед первой feature-веткой (делает владелец / агент по запросу «запуши»).
Troubleshooting
| Симптом | Что проверить |
|---|---|
| Форма «висит» | Telegram chat ID / таймауты; смотрите lib/telegram.ts |
/admin 401 | ADMIN_PASSWORD в .env.local |
| Кабинет без писем | SMTP_* и CRM_APP_URL |
| Файлы CRM 503/500 | CRM_FILES_DIR, права на запись |
| Mongo ошибки | MONGODB_URI, directConnection=true для single-node |
| Telegram из РФ | TELEGRAM_API_BASE_URL (прокси) |
Security for external developers
- Не коммитьте секреты; используйте
.env.exampleтолько как шаблон. - Секреты (Mongo, Telegram, SMTP, Admin, Kie.ai) — ротация перед выдачей доступа, если они когда-либо светились в истории/чатах.
- Admin auth — shared password header; не храните его в клиентских репозиториях.
landingSpacemod/и legacy-скрипты вdocs//scripts/scratch/не считать SoT по безопасности.
Чеклист владельца: ротация ключей, выдача env out-of-band, SSH-доступ к remote.
Документация
Индекс: docs/README.md
| Раздел | Содержание |
|---|---|
docs/setup/ | Env, onboarding |
docs/ops/ | Nginx, деплой, WordPress |
docs/product/ | Скрипты продаж, концепции |
docs/audits/ | Аудиты |
docs/legal/ | Контракты |
modules/*/README.md | Документация модулей рядом с кодом |
License / contacts
Private repository. Публичная площадка: spacemod.ru.
Поддержка продукта: support@spacemod.ru (операционный контакт, не git-хостинг).
Master Prompt
Скопируйте в Cursor / Claude Code. Каждый copy даёт новый токен; предыдущий действует ещё 48 часов.
Master Prompt в Премиум
Скопируйте один prompt в Cursor, Claude Code или Codex — и соберите приложение end-to-end. Внутри — персональный доступ к приватному репозиторию.
Оплата после выбора тарифа — затем вход или регистрация.
Changelog
v1.0.0 · 2026-07-16
Каталожный релиз spacemod.ru с private repo placeholders.