docs: self-service install subdomain (curl get.<domain> | sh)

This commit is contained in:
root 2026-07-10 22:34:08 +00:00
parent d29aef4b09
commit 0912c57515

View file

@ -83,7 +83,27 @@ Push в `main` → сайт встаёт.
- **Kill-switch** как раньше: `ENABLED=false` в `.env` → сайт отдаёт 404; убери строку (или `true`) → вернётся.
- **БД**: вместо общего Postgres — своя SQLite в volume (`docker-db`). Если нужна была твоя старая Postgres-дата — скажи админу, достанем из бэкапа.
## 7. Полная дока
## 7. `curl get.твойдомен | sh` — установочный сабдомен (self-service)
Хочешь красивый one-liner установки (`curl get.mysite.com | sh`)? Делается **сам,
без админа**, для `static`-сайтов. Три шага:
1. **Скрипт кладёшь в репу**`public/install.sh` (папка `public/` у Vite попадает
в `dist/` как есть, т.е. окажется в корне сайта).
2. **DNS**: в своём регистраторе добавь A-запись `get` → IP сервера платформы
(там же, где `@` и `www`). Только `get`, host = `get`.
3. **`.env`**: добавь строку `INSTALL_SH=install.sh` и `git push`.
Всё. CI сам поднимет `get.твойдомен`, выпустит SSL и будет отдавать `install.sh`
как `text/plain` (то, что нужно для `| sh`). Убери `INSTALL_SH` из `.env` и запушь —
сабдомен снимется.
> Тонкости: работает для `static`; имя файла в `INSTALL_SH` — как в сборке (лежит в
> корне `dist/`). Если сабдомен отдаёт 404 — значит скрипта ещё нет в сборке или
> DNS-запись `get` не указывает на наш IP (в логе деплоя будет `::warning::` про это).
> Апекс-домен и `www` не затрагиваются — это отдельный фрагмент.
## 8. Полная дока
Деплой во всех деталях (CRA, Next.js, монорепо, кастомный Dockerfile, авто-www и т.д.) —
**README в `templates/starter`**: https://git.154.83.149.72.nip.io/templates/starter