docs: drop next/kill-switch/forgejo-secrets; .env auto-injected

This commit is contained in:
root 2026-07-17 12:31:34 +00:00
parent d39974c0cc
commit 4628a141e2

View file

@ -28,18 +28,14 @@ Workflow дёргает платформенный action (`action.yml` из э
### static ### static
Фронт на Vite / CRA / Next export. Собирается через bun, раздаётся как статика, без Фронт на Vite / CRA. Собирается через bun, раздаётся как статика, без контейнера —
контейнера — самый быстрый вариант. самый быстрый вариант.
```env ```env
DOMAIN=mysite.com DOMAIN=mysite.com
# BUILD_DIR=dist # Vite=dist, CRA=build, Next export=out # BUILD_DIR=dist # Vite=dist, CRA=build
``` ```
Для Next.js в static-режиме нужно в `next.config`: `output: 'export'`,
`images.unoptimized: true`, `trailingSlash: true`, и `BUILD_DIR=out`. SSR и API
routes в этом режиме не работают.
### docker ### docker
Свой `Dockerfile` в корне. Платформа собирает образ, поднимает контейнер и Свой `Dockerfile` в корне. Платформа собирает образ, поднимает контейнер и
@ -114,26 +110,32 @@ TWITTER_URL=https://x.com/mysite
## Установочный сабдомен (`curl get.домен | sh`) ## Установочный сабдомен (`curl get.домен | sh`)
Только для static, настраивается без админа: Работает и для static, и для docker. Настраивается без админа:
1. Положи скрипт в `public/install.sh` (папка `public/` у Vite попадает в корень сборки). 1. Положи скрипт в репу — в корень или в `public/` (например `install.sh`).
2. Пропиши A-запись `get` → наш IP. 2. Пропиши A-запись `get` → наш IP.
3. Добавь `INSTALL_SH=install.sh` в `.env` и запушь. 3. Добавь `INSTALL_SH=install.sh` в `.env` и запушь.
Платформа поднимет `get.домен`, выпустит SSL и будет отдавать этот файл как Платформа поднимет `get.домен`, выпустит SSL и будет отдавать этот файл как
`text/plain`. Убрал `INSTALL_SH` — сабдомен снимется на следующем деплое. `text/plain`. Убрал `INSTALL_SH` — сабдомен снимется на следующем деплое.
## Секреты ## Переменные окружения
`.env` в контейнер не попадает — он читается только при деплое. Секреты заводишь в Всё, что положишь в `.env`, автоматически прокидывается в контейнер (`docker` /
Forgejo: репа → Settings → Actions → Secrets, имя секрета = имя переменной. Потом `docker-db`) как переменные окружения. Просто пиши в `.env` и пушь — ничего отдельно
перечисляешь нужные: настраивать не надо.
```env ```env
RUNTIME_KEYS=DATABASE_URL,JWT_SECRET DOMAIN=mysite.com
DATABASE_URL=postgres://user:pass@host/db
JWT_SECRET=...
API_KEY=...
``` ```
В контейнер попадут только они. В коде читаешь как обычно — `process.env.DATABASE_URL`. В коде читаешь как обычно — `process.env.DATABASE_URL`. Служебные ключи платформы
(`DOMAIN`, `DEPLOY`, `BUILD_DIR`, `APP_PORT`, `WWW`, `EXTRA_DOMAINS`, `TWITTER_URL`,
`INSTALL_SH`) в контейнер не попадают. Для `docker-db` переменную `DATABASE_URL`
писать не надо — она ставится сама.
## Скорость сборки ## Скорость сборки
@ -152,16 +154,6 @@ RUN npm run build
Для Next.js `output: 'standalone'` в `next.config` роняет образ с гигабайтов до Для Next.js `output: 'standalone'` в `next.config` роняет образ с гигабайтов до
~200 МБ — деплой заметно быстрее. ~200 МБ — деплой заметно быстрее.
## Выключить сайт
```env
ENABLED=false
```
Push — контейнер и файлы удаляются, домен отдаёт 404. Убрал строку (или `true`) —
вернулся. Том и секреты остаются. Админ может выключить и без коммита — переменной
`ENABLED=false` в Settings → Actions → Variables.
## Переменные `.env` ## Переменные `.env`
| Ключ | Дефолт | Зачем | | Ключ | Дефолт | Зачем |
@ -173,9 +165,10 @@ Push — контейнер и файлы удаляются, домен отд
| `WWW` | `auto` | `false` — не подключать www | | `WWW` | `auto` | `false` — не подключать www |
| `EXTRA_DOMAINS` | — | доп. домены через запятую, свой SSL на каждый | | `EXTRA_DOMAINS` | — | доп. домены через запятую, свой SSL на каждый |
| `TWITTER_URL` | — | твиттер/X для админки | | `TWITTER_URL` | — | твиттер/X для админки |
| `INSTALL_SH` | — | static: отдать скрипт на `get.<domain>` | | `INSTALL_SH` | — | отдать скрипт на `get.<domain>` (static или docker) |
| `RUNTIME_KEYS` | — | docker: какие секреты прокинуть в контейнер |
| `ENABLED` | `true` | `false` — выключить сайт | Любые другие ключи в `.env` (не из этой таблицы) уходят в контейнер как переменные
окружения.
## Доступ к гиту ## Доступ к гиту