Všechny postupy
Ve výstavbě · pracovní verze vyžaduje release manifest

Technický postup

Instalace z Docker images a Docker Compose

Od převzetí release balíčku přes první spuštění až po podepsaný akceptační záznam.

Pro koho
Implementátor, Linux/Docker administrátor, DBA, správce identity a sítí
Výsledek
Služby běží z přesně určených images, komunikují jen povolenými směry a instalace projde opakovatelným smoke testem.

01

1. Převzetí a kontrola

  1. Převezměte release manifest, Compose soubor, konfigurační šablonu, secrets checklist a runbook.
  2. Ověřte kontrolní součty a oprávnění k registry. Nepoužívejte tag latest.
  3. Images stahujte řízeným pull ze zákaznického prostředí; instalace nemá vyžadovat příchozí servisní prostup jen kvůli distribuci nové verze.
  4. Porovnejte podporovaný Docker Engine, Compose plugin, OS, databázi a CPU s cílovým prostředím. Použití PostgreSQL, Oracle Database nebo Microsoft SQL Server musí potvrdit matice konkrétního release.
  5. Zapište vlastníka instalace, servisní okno, návratový bod a kontakty L1/L2/L3.

02

2. Topologie služeb

SIFYBOX se neskládá z jednoho univerzálního kontejneru. Compose zapíná pouze služby potřebné pro konkrétní řešení.

  • OOD řídí případ, formulář, stav a role.
  • DOG vytváří dokumenty ze šablon a dat.
  • FS uplatňuje finanční pravidla a podle integračního kontraktu ověřuje zdroj nebo uchovává rozhodný snapshot; účetnictví zůstává v ekonomickém systému.
  • ZST předává vybranou roli na omezené období.
  • EPK řídí schválení a podpisové úkoly; WSCS technicky provádí podpis podle konfigurace.
  • CUL uchovává dokumenty, metadata a verze; CULWS zpřístupňuje integrační služby.
  • Keycloak/IdP, eSSL, ekonomický systém, SMTP, Vault a monitoring mohou být externími službami zákazníka.

03

3. Konfigurační soubor

Cílový návrhový vzor, nikoli ověřený release runbook. Hodnoty, podporu _FILE, healthchecky, migrace a názvy proměnných musí potvrdit manifest a repozitář konkrétního release.

Pracovní vzorHodnoty <…> doplňte z release
# /etc/sifybox/env/release.env — úplné image reference z manifestu
OOD_IMAGE=registry.ders.cz/<PROJECT>/<OOD_IMAGE>@sha256:<DIGEST>
POSTGRES_IMAGE=<SUPPORTED_POSTGRES_IMAGE>@sha256:<DIGEST>

# /etc/sifybox/env/site.env — nesekretní parametry instalace
COMPOSE_PROFILES=dog-local,fs-local,zst-local,epk-local,wscs-local,cul-local,culws-local
PUBLIC_BASE_URL=https://<FQDN>
DB_NAME=<DATABASE_NAME>
DB_USER=<DATABASE_USER>
OIDC_ISSUER=https://<KEYCLOAK_OR_IDP>/realms/<REALM>
OIDC_CLIENT_ID=<CLIENT_ID>
TZ=Europe/Prague

04

4. Compose jako sestava služeb

Cílový návrhový vzor vysvětluje princip úplných image referencí, interní sítě a secrets. Skutečné názvy, healthchecky, volumes a příkazy se převezmou z repozitáře konkrétního release.

Pracovní vzorHodnoty <…> doplňte z release
# Cílový návrhový vzor — názvy parametrů, healthchecky a příkazy
# musí potvrdit manifest a runbook konkrétního release.
name: sifybox

services:
  ood:
    image: ${OOD_IMAGE:?OOD_IMAGE is required}
    env_file:
      - /etc/sifybox/env/site.env
    networks: [sifybox-backend]
    secrets: [db_password, oidc_client_secret]

  database:
    image: ${POSTGRES_IMAGE:?POSTGRES_IMAGE is required}
    networks: [sifybox-backend]
    environment:
      POSTGRES_DB: ${DB_NAME:?DB_NAME is required}
      POSTGRES_USER: ${DB_USER:?DB_USER is required}
      POSTGRES_PASSWORD_FILE: /run/secrets/db_password
    secrets: [db_password]
    volumes:
      - postgres_data:/var/lib/postgresql/data

networks:
  sifybox-backend:
    internal: true

volumes:
  postgres_data:

secrets:
  db_password:
    file: /etc/sifybox/secrets/db_password
  oidc_client_secret:
    file: /etc/sifybox/secrets/oidc_client_secret

05

5. První spuštění

Pracovní vzorHodnoty <…> doplňte z release
# Cílový návrhový vzor. Před použitím ověřte release runbook.
COMPOSE=(docker compose --env-file /etc/sifybox/env/release.env --env-file /etc/sifybox/env/site.env)

# 1. Kontrola výsledné konfigurace bez spuštění
"${COMPOSE[@]}" config --quiet

# 2. Stažení přesně určených images
"${COMPOSE[@]}" pull

# 3. Kontrola použitých digestů
"${COMPOSE[@]}" images --format json

# 4. Spuštění databáze a ověření jejího health stavu
"${COMPOSE[@]}" up -d database
"${COMPOSE[@]}" ps

# 5. Migrace – použijte pouze příkaz z release runbooku
"${COMPOSE[@]}" run --rm ood <MIGRATION_COMMAND_FROM_RELEASE>

# 6. Spuštění aplikačních služeb
"${COMPOSE[@]}" up -d

# 7. Kontrola stavu a posledních logů
"${COMPOSE[@]}" ps
"${COMPOSE[@]}" logs --since=10m --no-color

Pozor: Migraci nikdy nespouštějte odhadem. Musí být idempotentní nebo mít přesně popsaný návratový postup v release runbooku.

06

6. Akceptační smoke test

  1. Přihlaste testovacího uživatele přes cílový IdP a ověřte přiřazení rolí.
  2. Založte testovací případ, přiložte dokument a proveďte jeden přechod workflow.
  3. Vygenerujte dokument, pokud je DOG součástí sestavy.
  4. Ověřte odeslání a přesný stav, který vrátí ekonomický systém nebo eSSL; technické přijetí nezaměňujte za zaúčtování.
  5. Ověřte audit: identita, čas, akce, původní a výsledný stav a korelační ID.
  6. Restartujte jednu aplikační službu a ověřte, že se případ ani dokument neztratí.
  7. Zaznamenejte verze a digesty, výsledek testů, výjimky a schválení převzetí.