GitHub GitHub
ReactFrontend repo
React

React

TanStack Router

zustand

TypeScript

schema.ts

API-клиент · @my/openapi

CI

bun install

lint · typecheck · test

vite build

GoBackend repo
Go

oapi-codegen: strict server

Apidog

Контракт · OAS 3.1

Google Chrome

Client (браузер)

Selectel

CDN cdn.cellestial.ru

S3: releases/{sha}/, index.html, current.json

DockerVPS · Docker Compose

Caddy

Go

Go API

Правила выкатки

  1. Контракт меняется в Apidog; бэк (oapi-codegen) и фронт (@my/openapi) генерируют из него код
  2. Go API N+1 обслуживает клиента N: ручки и поля не удаляются в том же релизе
  3. Автоперезагрузки нет, вкладка живёт на чанках своего релиза
  4. В S3 последние 5 релизов, stable и previous не удаляются
  5. Откат клиента: index.html ← релиз previous, stable ↔ previous
  • Наша инфраструктура
  • GitHub
  • Внешние сервисы
  • Пользовательский трафик
  • Пайплайн и внешние системы, пунктир
  • Прочие связи
bun run generate
типы paths
make generate
releases/{sha}/ (main)
https://cellestial.ru: HTML, /api/v1
/api/v1/*
index.html
static