Tous les manuels d'exploitation
En cours de rédaction · Le projet de travail nécessite un manifeste de libération

Manuel technique

Installation à partir d'images Docker et de Docker Compose

De la réception du package de lancement jusqu'au premier lancement et à la signature du document d'acceptation.

Public
Développeur, administrateur Linux/Docker, administrateur de bases de données, administrateur de réseaux et d'identité
Résultat
Les services fonctionnent à partir d'images précisément définies, communiquent uniquement dans les directions autorisées et l'installation réussit un test de fumée reproductible.

01

1. Prise de contrôle et inspection

  1. Téléchargez le manifeste de la version, le fichier Compose, le modèle de configuration, la liste de contrôle des secrets et le manuel d'exploitation.
  2. Vérifiez les sommes de contrôle et les autorisations du registre. N'utilisez pas la dernière étiquette.
  3. Télécharger les images via une extraction contrôlée depuis l'environnement client ; l'installation ne doit pas nécessiter d'accès au service entrant uniquement pour distribuer une nouvelle version.
  4. Comparez le moteur Docker, le plugin Compose, le système d'exploitation, la base de données et le processeur compatibles avec l'environnement cible. L'utilisation de PostgreSQL, d'Oracle Database ou de Microsoft SQL Server doit être confirmée par les tableaux de compatibilité spécifiques à chaque version.
  5. Notez le nom du propriétaire de l'installation, la plage horaire de service, le point de retour et les contacts L1/L2/L3.

02

2. Topologie de service

SIFYBOX ne se compose pas d'un conteneur universel. Compose active uniquement les services nécessaires à une solution spécifique.

  • OOD gère les dossiers, les formulaires, les statuts et les rôles.
  • DOG crée des documents à partir de modèles et de données.
  • FS applique les règles financières et, conformément au contrat d'intégration, vérifie la source ou conserve un instantané décisif ; la comptabilité reste dans le système économique.
  • ZST cède le rôle sélectionné pour une période limitée.
  • EPK gère les tâches d'approbation et de signature ; WSCS effectue techniquement la signature conformément à la configuration.
  • CUL stocke les documents, les métadonnées et les versions ; CULWS fournit des services d'intégration.
  • Keycloak/IdP, eSSL, système économique, SMTP, Vault et la surveillance peuvent être des services clients externes.

03

3. Fichier de configuration

Modèle de conception cible, et non un manuel de déploiement validé. Les valeurs, la prise en charge de _FILE, les contrôles d'intégrité, les migrations et les noms de variables doivent être confirmés par le manifeste et le dépôt de la version concernée.

Exemple de travailRemplacez les valeurs <…> par celles de la version
# /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 comme ensemble de services

Le modèle de conception cible explique le principe des références d'images complètes, des réseaux internes et des secrets. Les noms, les contrôles d'intégrité, les volumes et les commandes sont extraits du dépôt de la version spécifique.

Exemple de travailRemplacez les valeurs <…> par celles de la version
# 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. Première start-up

Exemple de travailRemplacez les valeurs <…> par celles de la version
# 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

Remarque : Ne jamais lancer une migration au hasard. Elle doit être idempotente ou comporter une procédure de retour précisément décrite dans le manuel d'exploitation.

06

6. Test de fumée d'acceptation

  1. Connectez-vous avec l'utilisateur de test via le fournisseur d'identité cible et vérifiez les attributions de rôles.
  2. Créez un cas de test, joignez un document et effectuez une transition de flux de travail.
  3. Générez un document si DOG fait partie de l’ensemble.
  4. Vérifiez la soumission et le statut exact renvoyé par le système économique ou eSSL ; ne confondez pas l’acceptation technique avec la publication.
  5. Vérifiez l'audit : identité, heure, action, état initial et état résultant, et ID de corrélation.
  6. Redémarrez un service d'application et vérifiez que le dossier ou le document n'est pas perdu.
  7. Versions et résumés des enregistrements, résultats des tests, exceptions et approbations d'acceptation.