DaydreamMods

DaydreamMods

Переменные окружения

Каждая переменная .env: зачем она и что будет, если её нет.

Один файл .env в корне репозитория. На сервере это /opt/daydreammods/.env. Его подхватывают и next, и API, и bun run db:migrate. Пример без секретов — .env.example. Файл с боевыми значениями в git не кладут.

База и адреса

  • DATABASE_URL — строка Postgres, например postgresql://daydream:ПАРОЛЬ@127.0.0.1:5432/daydreammods. Без неё сайт живёт на запасном каталоге в коде, оплата и кабинет не сохраняются.
  • NEXT_PUBLIC_SITE_URL — https://daydreammods.ru. Попадает в ссылки писем, sitemap и канонические адреса.
  • NEXT_PUBLIC_API_URL — публичный адрес, с которого браузер скачивает файл. В проде это тоже https://daydreammods.ru: nginx сам отправляет /downloads на порт 4000. Если указать http://127.0.0.1:4000, браузер пользователя туда не дойдёт.
  • PORT — порт API, по умолчанию 4000.

Вход

  • AUTH_SECRET — длинная случайная строка. Менять на живом сайте значит разлогинить сессии, если от неё зависит подпись. Токены сессий хранятся хешем отдельно, но секрет не оставляют значением change-me.
  • ADMIN_EMAIL, ADMIN_PASSWORD — только для сида первого администратора. Смена этих переменных после сида сама пароль в базе не обновляет.

Robokassa

  • ROBOKASSA_MERCHANT_LOGIN — логин магазина.
  • ROBOKASSA_PASSWORD1 — пароль №1, им подписывается переход к оплате.
  • ROBOKASSA_PASSWORD2 — пароль №2, им проверяется ResultURL. Это разные пароли.
  • ROBOKASSA_IS_TEST — 1 в тесте, 0 в бою.

Пустые ключи включают демонстрационный checkout: локальная активация для разработки, не боевой платёж.

Почта

  • SMTP_HOST, SMTP_PORT (обычно 587), SMTP_USER, SMTP_PASS.
  • SMTP_FROM — видимый отправитель, например DaydreamMods <noreply@daydreammods.ru>.

Пустой SMTP_HOST: письмо не отправляется, текст попадает в журнал процесса. Формы при этом не падают.

Файлы и продажи

  • S3_ENDPOINT, S3_REGION, S3_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_FORCE_PATH_STYLE — будущее S3. Пока CDN в админке закрыт.
  • PACK_STORAGE_DIR — каталог ZIP. На сервере /opt/daydreammods/storage/packs. Если не задан, код поднимается на два уровня от apps/web или apps/server и берёт storage/packs.
  • SALES_OPEN_AT — запасная дата ISO с часовым поясом. Рабочая дата — ключ sales_open_at в таблице site_settings. Если ключ есть и это строка, переменная не используется.

Секреты Robokassa, SMTP и S3 в админку не переносятся. В настройках об этом есть закрытый блок «Сервер».