docs: drop next/kill-switch/forgejo-secrets; .env auto-injected
This commit is contained in:
parent
d39974c0cc
commit
4628a141e2
1 changed files with 21 additions and 28 deletions
49
README.md
49
README.md
|
|
@ -28,18 +28,14 @@ Workflow дёргает платформенный action (`action.yml` из э
|
|||
|
||||
### static
|
||||
|
||||
Фронт на Vite / CRA / Next export. Собирается через bun, раздаётся как статика, без
|
||||
контейнера — самый быстрый вариант.
|
||||
Фронт на Vite / CRA. Собирается через bun, раздаётся как статика, без контейнера —
|
||||
самый быстрый вариант.
|
||||
|
||||
```env
|
||||
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
|
||||
|
||||
Свой `Dockerfile` в корне. Платформа собирает образ, поднимает контейнер и
|
||||
|
|
@ -114,26 +110,32 @@ TWITTER_URL=https://x.com/mysite
|
|||
|
||||
## Установочный сабдомен (`curl get.домен | sh`)
|
||||
|
||||
Только для static, настраивается без админа:
|
||||
Работает и для static, и для docker. Настраивается без админа:
|
||||
|
||||
1. Положи скрипт в `public/install.sh` (папка `public/` у Vite попадает в корень сборки).
|
||||
1. Положи скрипт в репу — в корень или в `public/` (например `install.sh`).
|
||||
2. Пропиши A-запись `get` → наш IP.
|
||||
3. Добавь `INSTALL_SH=install.sh` в `.env` и запушь.
|
||||
|
||||
Платформа поднимет `get.домен`, выпустит SSL и будет отдавать этот файл как
|
||||
`text/plain`. Убрал `INSTALL_SH` — сабдомен снимется на следующем деплое.
|
||||
|
||||
## Секреты
|
||||
## Переменные окружения
|
||||
|
||||
`.env` в контейнер не попадает — он читается только при деплое. Секреты заводишь в
|
||||
Forgejo: репа → Settings → Actions → Secrets, имя секрета = имя переменной. Потом
|
||||
перечисляешь нужные:
|
||||
Всё, что положишь в `.env`, автоматически прокидывается в контейнер (`docker` /
|
||||
`docker-db`) как переменные окружения. Просто пиши в `.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` роняет образ с гигабайтов до
|
||||
~200 МБ — деплой заметно быстрее.
|
||||
|
||||
## Выключить сайт
|
||||
|
||||
```env
|
||||
ENABLED=false
|
||||
```
|
||||
|
||||
Push — контейнер и файлы удаляются, домен отдаёт 404. Убрал строку (или `true`) —
|
||||
вернулся. Том и секреты остаются. Админ может выключить и без коммита — переменной
|
||||
`ENABLED=false` в Settings → Actions → Variables.
|
||||
|
||||
## Переменные `.env`
|
||||
|
||||
| Ключ | Дефолт | Зачем |
|
||||
|
|
@ -173,9 +165,10 @@ Push — контейнер и файлы удаляются, домен отд
|
|||
| `WWW` | `auto` | `false` — не подключать www |
|
||||
| `EXTRA_DOMAINS` | — | доп. домены через запятую, свой SSL на каждый |
|
||||
| `TWITTER_URL` | — | твиттер/X для админки |
|
||||
| `INSTALL_SH` | — | static: отдать скрипт на `get.<domain>` |
|
||||
| `RUNTIME_KEYS` | — | docker: какие секреты прокинуть в контейнер |
|
||||
| `ENABLED` | `true` | `false` — выключить сайт |
|
||||
| `INSTALL_SH` | — | отдать скрипт на `get.<domain>` (static или docker) |
|
||||
|
||||
Любые другие ключи в `.env` (не из этой таблицы) уходят в контейнер как переменные
|
||||
окружения.
|
||||
|
||||
## Доступ к гиту
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue