ci: переключить registry на git.shx.one
Docker images / prepare-release (push) Successful in 6s
Docker images / backend-image (push) Successful in 4m25s
Docker images / frontend-image (push) Successful in 2m10s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 45s
Docker images / publish-release (push) Successful in 6s
Docker images / prepare-release (push) Successful in 6s
Docker images / backend-image (push) Successful in 4m25s
Docker images / frontend-image (push) Successful in 2m10s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 45s
Docker images / publish-release (push) Successful in 6s
Обновить Gitea Actions, compose, updater и ссылки на образы. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,7 +11,7 @@ const outputDir = process.env.RELEASE_OUTPUT_DIR
|
|||||||
? join(repoRoot, process.env.RELEASE_OUTPUT_DIR)
|
? join(repoRoot, process.env.RELEASE_OUTPUT_DIR)
|
||||||
: join(repoRoot, ".ci", "release")
|
: join(repoRoot, ".ci", "release")
|
||||||
const repository = process.env.GITEA_REPOSITORY ?? process.env.GITHUB_REPOSITORY ?? ""
|
const repository = process.env.GITEA_REPOSITORY ?? process.env.GITHUB_REPOSITORY ?? ""
|
||||||
const serverUrl = (process.env.GITEA_SERVER_URL ?? "https://git.shts.su").replace(/\/$/, "")
|
const serverUrl = (process.env.GITEA_SERVER_URL ?? "https://git.shx.one").replace(/\/$/, "")
|
||||||
|
|
||||||
const MANIFEST_COMMIT_LIMIT = Number(process.env.RELEASE_MANIFEST_COMMIT_LIMIT ?? 6)
|
const MANIFEST_COMMIT_LIMIT = Number(process.env.RELEASE_MANIFEST_COMMIT_LIMIT ?? 6)
|
||||||
const CONVENTIONAL_RE =
|
const CONVENTIONAL_RE =
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: git.shts.su
|
REGISTRY: git.shx.one
|
||||||
GITEA_SERVER_URL: https://git.shts.su
|
GITEA_SERVER_URL: https://git.shx.one
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
prepare-release:
|
prepare-release:
|
||||||
@@ -76,7 +76,7 @@ jobs:
|
|||||||
- name: Log in to Gitea Registry
|
- name: Log in to Gitea Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: git.shts.su
|
registry: git.shx.one
|
||||||
username: ${{ gitea.actor }}
|
username: ${{ gitea.actor }}
|
||||||
password: ${{ secrets.ACTIONS_PAT }}
|
password: ${{ secrets.ACTIONS_PAT }}
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ jobs:
|
|||||||
- name: Log in to Gitea Registry
|
- name: Log in to Gitea Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: git.shts.su
|
registry: git.shx.one
|
||||||
username: ${{ gitea.actor }}
|
username: ${{ gitea.actor }}
|
||||||
password: ${{ secrets.ACTIONS_PAT }}
|
password: ${{ secrets.ACTIONS_PAT }}
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ jobs:
|
|||||||
- name: Log in to Gitea Registry
|
- name: Log in to Gitea Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: git.shts.su
|
registry: git.shx.one
|
||||||
username: ${{ gitea.actor }}
|
username: ${{ gitea.actor }}
|
||||||
password: ${{ secrets.ACTIONS_PAT }}
|
password: ${{ secrets.ACTIONS_PAT }}
|
||||||
|
|
||||||
|
|||||||
@@ -23,13 +23,13 @@
|
|||||||
| Контракты | `packages/contracts/` | Zod 4, `@mmapp/contracts` | — | встраиваются в frontend/backend |
|
| Контракты | `packages/contracts/` | Zod 4, `@mmapp/contracts` | — | встраиваются в frontend/backend |
|
||||||
| Updater | `deploy/updater/` | bash, `docker:27-cli`, curl, jq | — | `…-updater` |
|
| Updater | `deploy/updater/` | bash, `docker:27-cli`, curl, jq | — | `…-updater` |
|
||||||
| Деплой | `deploy/docker-compose.yml` | Docker Compose | — | — |
|
| Деплой | `deploy/docker-compose.yml` | Docker Compose | — | — |
|
||||||
| CI | `.gitea/workflows/docker.yml` | Gitea Actions, Buildx | — | push в `git.shts.su` |
|
| CI | `.gitea/workflows/docker.yml` | Gitea Actions, Buildx | — | push в `git.shx.one` |
|
||||||
|
|
||||||
Имена образов в registry для репозитория `denozord/MikrotikManager-3`:
|
Имена образов в registry для репозитория `denozord/MikrotikManager-3`:
|
||||||
|
|
||||||
- `git.shts.su/denozord/mikrotikmanager-backend`
|
- `git.shx.one/denozord/mikrotikmanager-backend`
|
||||||
- `git.shts.su/denozord/mikrotikmanager-frontend`
|
- `git.shx.one/denozord/mikrotikmanager-frontend`
|
||||||
- `git.shts.su/denozord/mikrotikmanager-updater`
|
- `git.shx.one/denozord/mikrotikmanager-updater`
|
||||||
|
|
||||||
Для другого owner/repo подставьте имя по правилу CI (см. [CI/CD](#cicd-gitea-actions)).
|
Для другого owner/repo подставьте имя по правилу CI (см. [CI/CD](#cicd-gitea-actions)).
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ flowchart TB
|
|||||||
|
|
||||||
subgraph ci [Gitea Actions]
|
subgraph ci [Gitea Actions]
|
||||||
WF[".gitea/workflows/docker.yml"]
|
WF[".gitea/workflows/docker.yml"]
|
||||||
WF --> Reg["git.shts.su registry"]
|
WF --> Reg["git.shx.one registry"]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph prod [Прод-сервер]
|
subgraph prod [Прод-сервер]
|
||||||
@@ -192,9 +192,9 @@ npm --prefix backend run db:studio
|
|||||||
|
|
||||||
| Job | Build context | Dockerfile | Имя образа |
|
| Job | Build context | Dockerfile | Имя образа |
|
||||||
|-----|---------------|------------|------------|
|
|-----|---------------|------------|------------|
|
||||||
| `backend-image` | `.ci/docker/backend` (staging в CI) | `backend/Dockerfile` | `git.shts.su/<owner>/<stem>-backend` |
|
| `backend-image` | `.ci/docker/backend` (staging в CI) | `backend/Dockerfile` | `git.shx.one/<owner>/<stem>-backend` |
|
||||||
| `frontend-image` | `.ci/docker/frontend` | `Dockerfile.frontend` | `git.shts.su/<owner>/<stem>-frontend` |
|
| `frontend-image` | `.ci/docker/frontend` | `Dockerfile.frontend` | `git.shx.one/<owner>/<stem>-frontend` |
|
||||||
| `updater-image` | `deploy/updater` | `deploy/updater/Dockerfile` | `git.shts.su/<owner>/<stem>-updater` |
|
| `updater-image` | `deploy/updater` | `deploy/updater/Dockerfile` | `git.shx.one/<owner>/<stem>-updater` |
|
||||||
|
|
||||||
- `<owner>` — первая часть `gitea.repository`, lower case.
|
- `<owner>` — первая часть `gitea.repository`, lower case.
|
||||||
- `<stem>` — имя репозитория lower case без суффикса `-<цифры>` в конце (например `MikrotikManager-3` → `mikrotikmanager`).
|
- `<stem>` — имя репозитория lower case без суффикса `-<цифры>` в конце (например `MikrotikManager-3` → `mikrotikmanager`).
|
||||||
@@ -212,7 +212,7 @@ npm --prefix backend run db:studio
|
|||||||
- **`feat` / `feat!` / `BREAKING CHANGE`** → minor (`1.x.0`); **`fix`**, `chore`, `docs`, `refactor`, `style`, `test`, `build`, `ci` → patch (`1.0.x`).
|
- **`feat` / `feat!` / `BREAKING CHANGE`** → minor (`1.x.0`); **`fix`**, `chore`, `docs`, `refactor`, `style`, `test`, `build`, `ci` → patch (`1.0.x`).
|
||||||
- Если после последнего тега нет новых коммитов, **релиз** пропускается; Docker-образы при этом всё равно собираются и публикуются с `:latest` и `:<sha>`.
|
- Если после последнего тега нет новых коммитов, **релиз** пропускается; Docker-образы при этом всё равно собираются и публикуются с `:latest` и `:<sha>`.
|
||||||
- Первый релиз без тега `v1.0.0` возможен автоматически: CI берёт историю `HEAD`, считает bump от `1.0.0` и создаёт тег (например `v1.1.0` при `feat:`).
|
- Первый релиз без тега `v1.0.0` возможен автоматически: CI берёт историю `HEAD`, считает bump от `1.0.0` и создаёт тег (например `v1.1.0` при `feat:`).
|
||||||
- Job **`publish-release`**: annotated tag `v1.2.3`, Gitea Release на `https://git.shts.su` (markdown notes), образы с тегами `:latest`, `:<sha>`, `:<semver>`.
|
- Job **`publish-release`**: annotated tag `v1.2.3`, Gitea Release на `https://git.shx.one` (markdown notes), образы с тегами `:latest`, `:<sha>`, `:<semver>`.
|
||||||
- UI: версия в sidebar и страница **`/releases`**; manifest `public/release-manifest.json` (в CI подставляется из артефакта).
|
- UI: версия в sidebar и страница **`/releases`**; manifest `public/release-manifest.json` (в CI подставляется из артефакта).
|
||||||
- Bootstrap: один раз выставить `1.0.0` в workspace `package.json` и создать тег **`v1.0.0`** на `main` перед первым автоматическим bump.
|
- Bootstrap: один раз выставить `1.0.0` в workspace `package.json` и создать тег **`v1.0.0`** на `main` перед первым автоматическим bump.
|
||||||
- Сообщения коммитов: см. [`.cursor/rules/release-versioning.mdc`](.cursor/rules/release-versioning.mdc); subject и body — **на русском**, префикс Conventional Commits — на английском.
|
- Сообщения коммитов: см. [`.cursor/rules/release-versioning.mdc`](.cursor/rules/release-versioning.mdc); subject и body — **на русском**, префикс Conventional Commits — на английском.
|
||||||
@@ -225,9 +225,9 @@ npm --prefix backend run db:studio
|
|||||||
|
|
||||||
| Сервис | `container_name` | Образ (пример) | Порты host:container | Тома | `restart` |
|
| Сервис | `container_name` | Образ (пример) | Порты host:container | Тома | `restart` |
|
||||||
|--------|------------------|----------------|----------------------|------|-----------|
|
|--------|------------------|----------------|----------------------|------|-----------|
|
||||||
| backend | `mmapp-backend` | `git.shts.su/denozord/mikrotikmanager-backend:latest` | `8000:8000` | `backend-data` → `/app/data` | `unless-stopped` |
|
| backend | `mmapp-backend` | `git.shx.one/denozord/mikrotikmanager-backend:latest` | `8000:8000` | `backend-data` → `/app/data` | `unless-stopped` |
|
||||||
| frontend | `mmapp-frontend` | `git.shts.su/denozord/mikrotikmanager-frontend:latest` | `3000:3000` | — | `unless-stopped` |
|
| frontend | `mmapp-frontend` | `git.shx.one/denozord/mikrotikmanager-frontend:latest` | `3000:3000` | — | `unless-stopped` |
|
||||||
| updater | `mmapp-updater` | `git.shts.su/denozord/mikrotikmanager-updater:latest` | не публикуются | docker.sock, `updater-state` → `/state`, `targets.json` → `/etc/updater/targets.json:ro` | `unless-stopped` |
|
| updater | `mmapp-updater` | `git.shx.one/denozord/mikrotikmanager-updater:latest` | не публикуются | docker.sock, `updater-state` → `/state`, `targets.json` → `/etc/updater/targets.json:ro` | `unless-stopped` |
|
||||||
|
|
||||||
Метки для updater на backend и frontend:
|
Метки для updater на backend и frontend:
|
||||||
|
|
||||||
@@ -258,14 +258,14 @@ npm --prefix backend run db:studio
|
|||||||
| `POLL_INTERVAL_SECONDS` | `300` | пауза между циклами опроса |
|
| `POLL_INTERVAL_SECONDS` | `300` | пауза между циклами опроса |
|
||||||
| `HEALTH_TIMEOUT_SECONDS` | `120` | ожидание HTTP health |
|
| `HEALTH_TIMEOUT_SECONDS` | `120` | ожидание HTTP health |
|
||||||
| `STOP_TIMEOUT_SECONDS` | `30` | `docker stop -t` |
|
| `STOP_TIMEOUT_SECONDS` | `30` | `docker stop -t` |
|
||||||
| `REGISTRY` | `git.shts.su` | registry для `docker login` |
|
| `REGISTRY` | `git.shx.one` | registry для `docker login` |
|
||||||
| `REGISTRY_USERNAME` | пусто | логин (если заданы оба с паролем) |
|
| `REGISTRY_USERNAME` | пусто | логин (если заданы оба с паролем) |
|
||||||
| `REGISTRY_PASSWORD` | пусто | пароль registry |
|
| `REGISTRY_PASSWORD` | пусто | пароль registry |
|
||||||
|
|
||||||
### Docker Compose
|
### Docker Compose
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker login git.shts.su
|
docker login git.shx.one
|
||||||
export CORS_ORIGIN=http://<хост>:3000
|
export CORS_ORIGIN=http://<хост>:3000
|
||||||
export REGISTRY_USERNAME=<user>
|
export REGISTRY_USERNAME=<user>
|
||||||
export REGISTRY_PASSWORD=<token>
|
export REGISTRY_PASSWORD=<token>
|
||||||
@@ -307,8 +307,8 @@ docker run -d \
|
|||||||
-v backend-data:/app/data \
|
-v backend-data:/app/data \
|
||||||
--label mmapp.updater.managed=true \
|
--label mmapp.updater.managed=true \
|
||||||
--label mmapp.updater.target=backend \
|
--label mmapp.updater.target=backend \
|
||||||
--label mmapp.updater.image=git.shts.su/denozord/mikrotikmanager-backend:latest \
|
--label mmapp.updater.image=git.shx.one/denozord/mikrotikmanager-backend:latest \
|
||||||
git.shts.su/denozord/mikrotikmanager-backend:latest
|
git.shx.one/denozord/mikrotikmanager-backend:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
**Frontend:**
|
**Frontend:**
|
||||||
@@ -320,8 +320,8 @@ docker run -d \
|
|||||||
-p 3000:3000 \
|
-p 3000:3000 \
|
||||||
--label mmapp.updater.managed=true \
|
--label mmapp.updater.managed=true \
|
||||||
--label mmapp.updater.target=frontend \
|
--label mmapp.updater.target=frontend \
|
||||||
--label mmapp.updater.image=git.shts.su/denozord/mikrotikmanager-frontend:latest \
|
--label mmapp.updater.image=git.shx.one/denozord/mikrotikmanager-frontend:latest \
|
||||||
git.shts.su/denozord/mikrotikmanager-frontend:latest
|
git.shx.one/denozord/mikrotikmanager-frontend:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
**Updater:**
|
**Updater:**
|
||||||
@@ -331,7 +331,7 @@ docker volume create updater-state
|
|||||||
docker run -d \
|
docker run -d \
|
||||||
--name mmapp-updater \
|
--name mmapp-updater \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-e REGISTRY=git.shts.su \
|
-e REGISTRY=git.shx.one \
|
||||||
-e REGISTRY_USERNAME=<user> \
|
-e REGISTRY_USERNAME=<user> \
|
||||||
-e REGISTRY_PASSWORD=<token> \
|
-e REGISTRY_PASSWORD=<token> \
|
||||||
-e POLL_INTERVAL_SECONDS=300 \
|
-e POLL_INTERVAL_SECONDS=300 \
|
||||||
@@ -340,7 +340,7 @@ docker run -d \
|
|||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
-v updater-state:/state \
|
-v updater-state:/state \
|
||||||
-v /path/to/targets.json:/etc/updater/targets.json:ro \
|
-v /path/to/targets.json:/etc/updater/targets.json:ro \
|
||||||
git.shts.su/denozord/mikrotikmanager-updater:latest
|
git.shx.one/denozord/mikrotikmanager-updater:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
### Проверка после деплоя
|
### Проверка после деплоя
|
||||||
@@ -399,7 +399,7 @@ bash deploy/updater/validate.sh
|
|||||||
|
|
||||||
## Первичная настройка сервера
|
## Первичная настройка сервера
|
||||||
|
|
||||||
Пошагово на чистом Linux-хосте с доступом в интернет и к `git.shts.su`.
|
Пошагово на чистом Linux-хосте с доступом в интернет и к `git.shx.one`.
|
||||||
|
|
||||||
1. Установить Docker Engine и плагин Compose (официальная документация Docker для вашего дистрибутива).
|
1. Установить Docker Engine и плагин Compose (официальная документация Docker для вашего дистрибутива).
|
||||||
2. Проверить:
|
2. Проверить:
|
||||||
@@ -413,7 +413,7 @@ docker compose version
|
|||||||
4. Войти в registry:
|
4. Войти в registry:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker login git.shts.su
|
docker login git.shx.one
|
||||||
```
|
```
|
||||||
|
|
||||||
5. Получить файлы деплоя: клонировать репозиторий или скопировать каталог `deploy/` и подготовить `deploy/updater/targets.json`.
|
5. Получить файлы деплоя: клонировать репозиторий или скопировать каталог `deploy/` и подготовить `deploy/updater/targets.json`.
|
||||||
@@ -443,8 +443,8 @@ Updater опрашивает registry с интервалом `POLL_INTERVAL_SEC
|
|||||||
### Ручное обновление
|
### Ручное обновление
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker pull git.shts.su/denozord/mikrotikmanager-backend:latest
|
docker pull git.shx.one/denozord/mikrotikmanager-backend:latest
|
||||||
docker pull git.shts.su/denozord/mikrotikmanager-frontend:latest
|
docker pull git.shx.one/denozord/mikrotikmanager-frontend:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Через compose (пересоздание при смене образа):
|
Через compose (пересоздание при смене образа):
|
||||||
@@ -485,7 +485,7 @@ docker start mmapp-backend
|
|||||||
|
|
||||||
1. Установить Docker Engine и Compose plugin; проверить `docker version` и `docker compose version`.
|
1. Установить Docker Engine и Compose plugin; проверить `docker version` и `docker compose version`.
|
||||||
2. Открыть порты 3000 и 8000 (или обеспечить доступ клиентов к UI и API).
|
2. Открыть порты 3000 и 8000 (или обеспечить доступ клиентов к UI и API).
|
||||||
3. Выполнить `docker login git.shts.su`.
|
3. Выполнить `docker login git.shx.one`.
|
||||||
4. Склонировать репозиторий или скопировать `deploy/`.
|
4. Склонировать репозиторий или скопировать `deploy/`.
|
||||||
5. Задать `CORS_ORIGIN` (origin фронтенда для браузера).
|
5. Задать `CORS_ORIGIN` (origin фронтенда для браузера).
|
||||||
6. Задать `REGISTRY_USERNAME` и `REGISTRY_PASSWORD` для updater при приватном registry.
|
6. Задать `REGISTRY_USERNAME` и `REGISTRY_PASSWORD` для updater при приватном registry.
|
||||||
|
|||||||
@@ -1189,7 +1189,7 @@ export default function SettingsPage() {
|
|||||||
Control plane EvoBGP: Bearer-ключ и роль viewer+ — см.{" "}
|
Control plane EvoBGP: Bearer-ключ и роль viewer+ — см.{" "}
|
||||||
<a
|
<a
|
||||||
className="underline underline-offset-2"
|
className="underline underline-offset-2"
|
||||||
href="https://git.shts.su/denozord/EvoBGP/src/branch/main/docs/access.md"
|
href="https://git.shx.one/denozord/EvoBGP/src/branch/main/docs/access.md"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
image: git.shts.su/denozord/mikrotikmanager-backend:latest
|
image: git.shx.one/denozord/mikrotikmanager-backend:latest
|
||||||
container_name: mmapp-backend
|
container_name: mmapp-backend
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
@@ -12,10 +12,10 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
mmapp.updater.managed: "true"
|
mmapp.updater.managed: "true"
|
||||||
mmapp.updater.target: backend
|
mmapp.updater.target: backend
|
||||||
mmapp.updater.image: git.shts.su/denozord/mikrotikmanager-backend:latest
|
mmapp.updater.image: git.shx.one/denozord/mikrotikmanager-backend:latest
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
image: git.shts.su/denozord/mikrotikmanager-frontend:latest
|
image: git.shx.one/denozord/mikrotikmanager-frontend:latest
|
||||||
container_name: mmapp-frontend
|
container_name: mmapp-frontend
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -27,14 +27,14 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
mmapp.updater.managed: "true"
|
mmapp.updater.managed: "true"
|
||||||
mmapp.updater.target: frontend
|
mmapp.updater.target: frontend
|
||||||
mmapp.updater.image: git.shts.su/denozord/mikrotikmanager-frontend:latest
|
mmapp.updater.image: git.shx.one/denozord/mikrotikmanager-frontend:latest
|
||||||
|
|
||||||
updater:
|
updater:
|
||||||
image: git.shts.su/denozord/mikrotikmanager-updater:latest
|
image: git.shx.one/denozord/mikrotikmanager-updater:latest
|
||||||
container_name: mmapp-updater
|
container_name: mmapp-updater
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
REGISTRY: git.shts.su
|
REGISTRY: git.shx.one
|
||||||
REGISTRY_USERNAME: ${REGISTRY_USERNAME:-}
|
REGISTRY_USERNAME: ${REGISTRY_USERNAME:-}
|
||||||
REGISTRY_PASSWORD: ${REGISTRY_PASSWORD:-}
|
REGISTRY_PASSWORD: ${REGISTRY_PASSWORD:-}
|
||||||
POLL_INTERVAL_SECONDS: ${POLL_INTERVAL_SECONDS:-300}
|
POLL_INTERVAL_SECONDS: ${POLL_INTERVAL_SECONDS:-300}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ ENV STATE_FILE=/state/updater-state.json
|
|||||||
ENV POLL_INTERVAL_SECONDS=300
|
ENV POLL_INTERVAL_SECONDS=300
|
||||||
ENV HEALTH_TIMEOUT_SECONDS=120
|
ENV HEALTH_TIMEOUT_SECONDS=120
|
||||||
ENV STOP_TIMEOUT_SECONDS=30
|
ENV STOP_TIMEOUT_SECONDS=30
|
||||||
ENV REGISTRY=git.shts.su
|
ENV REGISTRY=git.shx.one
|
||||||
|
|
||||||
VOLUME ["/state"]
|
VOLUME ["/state"]
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ STATE_FILE="${STATE_FILE:-/state/updater-state.json}"
|
|||||||
POLL_INTERVAL_SECONDS="${POLL_INTERVAL_SECONDS:-300}"
|
POLL_INTERVAL_SECONDS="${POLL_INTERVAL_SECONDS:-300}"
|
||||||
HEALTH_TIMEOUT_SECONDS="${HEALTH_TIMEOUT_SECONDS:-120}"
|
HEALTH_TIMEOUT_SECONDS="${HEALTH_TIMEOUT_SECONDS:-120}"
|
||||||
STOP_TIMEOUT_SECONDS="${STOP_TIMEOUT_SECONDS:-30}"
|
STOP_TIMEOUT_SECONDS="${STOP_TIMEOUT_SECONDS:-30}"
|
||||||
REGISTRY="${REGISTRY:-git.shts.su}"
|
REGISTRY="${REGISTRY:-git.shx.one}"
|
||||||
MANAGED_LABEL="mmapp.updater.managed"
|
MANAGED_LABEL="mmapp.updater.managed"
|
||||||
TARGET_LABEL="mmapp.updater.target"
|
TARGET_LABEL="mmapp.updater.target"
|
||||||
IMAGE_LABEL="mmapp.updater.image"
|
IMAGE_LABEL="mmapp.updater.image"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
{
|
{
|
||||||
"id": "backend",
|
"id": "backend",
|
||||||
"container_name": "mmapp-backend",
|
"container_name": "mmapp-backend",
|
||||||
"image": "git.shts.su/denozord/mikrotikmanager-backend:latest",
|
"image": "git.shx.one/denozord/mikrotikmanager-backend:latest",
|
||||||
"health": {
|
"health": {
|
||||||
"type": "http",
|
"type": "http",
|
||||||
"url": "http://backend:8000/health",
|
"url": "http://backend:8000/health",
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
{
|
{
|
||||||
"id": "frontend",
|
"id": "frontend",
|
||||||
"container_name": "mmapp-frontend",
|
"container_name": "mmapp-frontend",
|
||||||
"image": "git.shts.su/denozord/mikrotikmanager-frontend:latest",
|
"image": "git.shx.one/denozord/mikrotikmanager-frontend:latest",
|
||||||
"health": {
|
"health": {
|
||||||
"type": "http",
|
"type": "http",
|
||||||
"url": "http://frontend:3000/dashboard",
|
"url": "http://frontend:3000/dashboard",
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Staging checklist for mmapp-updater:
|
|||||||
- Confirm updater rolls back to previous_digest and keeps mmapp-backend running.
|
- Confirm updater rolls back to previous_digest and keeps mmapp-backend running.
|
||||||
|
|
||||||
4. Registry outage
|
4. Registry outage
|
||||||
- Block access to git.shts.su temporarily.
|
- Block access to git.shx.one temporarily.
|
||||||
- Confirm updater logs remote_digest_failed and does not stop managed containers.
|
- Confirm updater logs remote_digest_failed and does not stop managed containers.
|
||||||
|
|
||||||
Run ./validate.sh before executing this checklist on a staging host.
|
Run ./validate.sh before executing this checklist on a staging host.
|
||||||
|
|||||||
Reference in New Issue
Block a user