init platform/launch

This commit is contained in:
root 2026-07-17 12:00:36 +00:00
parent 0a8730039f
commit 47a5bba3f8

59
starter/.env.example Normal file
View file

@ -0,0 +1,59 @@
# Скопируй этот файл в .env (без .example) и заполни.
# .env ДОЛЖЕН быть закоммичен в git — это конфиг деплоя, не секреты.
# (Секреты — отдельно, через Forgejo Actions secrets, см. RUNTIME_KEYS ниже.)
# Домен сайта. Обязательно. Платформа выпустит SSL (Let's Encrypt) и направит
# домен на твой сайт. Заранее пропиши A-запись домена на IP сервера платформы.
DOMAIN=mysite.com
# Twitter / X проекта (для админ-панели: показывается рядом с сайтом). Необязательно.
# Укажи полный URL профиля. (Также принимается @handle или TWITTER=.)
# TWITTER_URL=https://x.com/mysite
# TWITTER_URL=
# Тип деплоя. По умолчанию авто-детект:
# static — фронт (Vite/CRA/Next static export). bun build → раздаётся как
# статика напрямую (без контейнера). Самый быстрый. Дефолт, если в
# корне НЕТ Dockerfile.
# docker — свой Dockerfile в корне: собирается образ и поднимается контейнер.
# Дефолт, если Dockerfile ЕСТЬ.
# docker-db — как docker + персистентная SQLite. Платформа монтирует named-volume
# в /data и прокидывает DATABASE_URL=file:/data/app.db. Переживает
# редеплои. Миграции — твой entrypoint (drizzle/prisma).
# DEPLOY=static
# Папка со сборкой для static. Default: dist (Vite). CRA → build. Next export → out.
# BUILD_DIR=dist
# Порт, который слушает твой контейнер (только docker/docker-db). Default: 80.
# APP_PORT=3000
# Поведение www. По умолчанию auto — подключим www.<domain> ТОЛЬКО если у него есть
# A-запись на наш IP. false — привязать лишь основной домен.
# WWW=false
# Доп. домены: тот же сайт ещё на нескольких доменах, на каждый — свой авто-SSL.
# Через запятую. Пропиши A-запись каждого на IP платформы. www для доп-доменов сам
# не добавляется — впиши www.alias.com явно, если нужен. Подробнее — README.
# EXTRA_DOMAINS=mysite.io,app.mysite.com
# EXTRA_DOMAINS=
# Kill-switch. Default true. Поставь false и push — контейнер/сайт удаляется, домен
# отдаёт 404. Убери строку (или true) и push — поднимается обратно. Данные (volume,
# секреты) сохраняются.
# ENABLED=false
# Какие секреты прокинуть в контейнер (docker/docker-db). Список имён через запятую.
# Сами значения заведи в Forgejo: репа → Settings → Actions → Secrets → Add Secret,
# имя секрета = имя переменной окружения. Платформа возьмёт только перечисленные ключи.
# RUNTIME_KEYS=DATABASE_URL,JWT_SECRET
# → контейнер получит process.env.DATABASE_URL и process.env.JWT_SECRET.
# Для DEPLOY=docker-db переменную DATABASE_URL НЕ указывай — она ставится автоматически.
# RUNTIME_KEYS=
# Инсталл-сабдомен для one-liner'а `curl get.<domain> | sh` (только static).
# Укажи имя файла-скрипта из своей СБОРКИ (положи его в public/, чтобы попал в dist/).
# Платформа сама поднимет get.<domain>, выпустит SSL и будет отдавать этот файл как
# text/plain. От тебя: (1) public/install.sh в репе, (2) A-запись get.<domain> → IP
# сервера, (3) INSTALL_SH ниже. Убери строку → сабдомен снимется на следующем деплое.
# INSTALL_SH=install.sh