Refresh community demo and docs
This commit is contained in:
+39
-47
@@ -1,17 +1,16 @@
|
||||
# Deployment
|
||||
# Развертывание
|
||||
|
||||
Документ описывает поддерживаемый путь деплоя Crank Community.
|
||||
Документ описывает поддерживаемый путь запуска Crank на сервере.
|
||||
|
||||
Crank Community запускается как три application containers за reverse proxy:
|
||||
Crank запускается как три контейнера за reverse proxy:
|
||||
|
||||
- `ui`
|
||||
- `admin-api`
|
||||
- `mcp-server`
|
||||
|
||||
Приложение использует внешний PostgreSQL. Compose manifest не поднимает
|
||||
PostgreSQL самостоятельно.
|
||||
Можно использовать внешний PostgreSQL или локальный PostgreSQL из compose-профиля `local-db`.
|
||||
|
||||
## Runtime topology
|
||||
## Схема
|
||||
|
||||
```text
|
||||
reverse proxy
|
||||
@@ -21,28 +20,27 @@ reverse proxy
|
||||
|
||||
admin-api -> PostgreSQL
|
||||
mcp-server -> PostgreSQL
|
||||
admin-api -> optional Valkey/Redis
|
||||
mcp-server -> optional Valkey/Redis
|
||||
admin-api -> Valkey/Redis, опционально
|
||||
mcp-server -> Valkey/Redis, опционально
|
||||
```
|
||||
|
||||
## Deployment files
|
||||
## Файлы запуска
|
||||
|
||||
- `deploy/community/docker-compose.yml`
|
||||
- `deploy/community/.env.example`
|
||||
- `.gitea/workflows/ci.yml`
|
||||
- `.gitea/workflows/deploy.yml`
|
||||
- `.gitea/workflows/release.yml`
|
||||
- `deploy/community/docker-compose.images.yml`
|
||||
- `deploy/community/.env.images.example`
|
||||
|
||||
## Порты
|
||||
|
||||
Default service ports:
|
||||
Порты по умолчанию:
|
||||
|
||||
- `ui`: `3000`
|
||||
- `admin-api`: `3001`
|
||||
- `mcp-server`: `3002`
|
||||
- optional `valkey`: `6379`, только loopback
|
||||
|
||||
`CRANK_PUBLISH_BIND` управляет публикацией application ports:
|
||||
`CRANK_PUBLISH_BIND` управляет публикацией портов:
|
||||
|
||||
- `127.0.0.1`, если reverse proxy работает на том же host;
|
||||
- `0.0.0.0`, если reverse proxy работает на другом host.
|
||||
@@ -94,9 +92,9 @@ server {
|
||||
|
||||
Замените `192.168.1.106` на адрес deployment host.
|
||||
|
||||
## Compose
|
||||
## Запуск из исходников
|
||||
|
||||
Проверка manifest:
|
||||
Проверка compose-файла:
|
||||
|
||||
```bash
|
||||
docker compose \
|
||||
@@ -105,7 +103,7 @@ docker compose \
|
||||
config -q
|
||||
```
|
||||
|
||||
Запуск без внешнего cache:
|
||||
Запуск с внешним PostgreSQL:
|
||||
|
||||
```bash
|
||||
docker compose \
|
||||
@@ -132,7 +130,24 @@ CRANK_CACHE_URL=redis://valkey:6379/0
|
||||
CRANK_CACHE_DEFAULT_TTL_MS=60000
|
||||
```
|
||||
|
||||
## Health checks
|
||||
## Запуск готовых образов
|
||||
|
||||
```bash
|
||||
mkdir -p crank
|
||||
cd crank
|
||||
curl -fsSLo docker-compose.yml https://git.itexp.me/bsodfather/crank/raw/branch/main/deploy/community/docker-compose.images.yml
|
||||
curl -fsSLo .env.example https://git.itexp.me/bsodfather/crank/raw/branch/main/deploy/community/.env.images.example
|
||||
cp .env.example .env
|
||||
docker compose --profile local-db up -d
|
||||
```
|
||||
|
||||
Если используется внешний PostgreSQL, заполните `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD` и запустите:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Проверка состояния
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:3001/health
|
||||
@@ -146,38 +161,15 @@ curl http://127.0.0.1:3002/health
|
||||
{"service":"mcp-server","status":"ok"}
|
||||
```
|
||||
|
||||
UI root должен возвращать `200 OK`:
|
||||
UI должен возвращать `200 OK`:
|
||||
|
||||
```bash
|
||||
curl -I http://127.0.0.1:3000/
|
||||
```
|
||||
|
||||
## Gitea CI/CD
|
||||
## Эксплуатация
|
||||
|
||||
Репозиторий использует Gitea Actions:
|
||||
|
||||
- `.gitea/workflows/ci.yml` запускает Rust, UI, E2E и deployment manifest checks.
|
||||
- `.gitea/workflows/deploy.yml` собирает images и деплоит `main`.
|
||||
- `.gitea/workflows/release.yml` собирает release artifacts для tags.
|
||||
|
||||
Deploy workflow читает из Gitea secrets только OpenBao bootstrap credentials:
|
||||
|
||||
- `BAO_ADDR`
|
||||
- `BAO_ROLE_ID`
|
||||
- `BAO_SECRET_ID`
|
||||
|
||||
Дальше workflow читает KV v2 secrets из OpenBao:
|
||||
|
||||
```text
|
||||
ci/shared/registry
|
||||
ci/shared/deploy-ssh
|
||||
ci/projects/crank/deploy
|
||||
ci/projects/crank/runtime
|
||||
```
|
||||
|
||||
## Operational notes
|
||||
|
||||
- Бэкапы БД должны жить вне application host.
|
||||
- Runtime secrets хранятся в OpenBao, не в Git.
|
||||
- Для rollback используйте immutable image tags.
|
||||
- `CRANK_PUBLISH_BIND=0.0.0.0` нужен только если другой host должен обращаться к published ports напрямую.
|
||||
- Делайте регулярные бэкапы PostgreSQL.
|
||||
- Не храните реальные секреты в Git.
|
||||
- Для rollback используйте конкретные image tags, а не только `main`.
|
||||
- `CRANK_PUBLISH_BIND=0.0.0.0` нужен только если reverse proxy работает на другом host.
|
||||
|
||||
Reference in New Issue
Block a user