site_name: CruzCloud Lab
site_description: >-
  Portal de documentación del lab GitOps CruzCloud — arquitectura, decisiones
  y playbooks de incidentes reales (ZimaOS + k3d + Gitea + Argo CD).
site_url: https://docs.cruzcloud.net/
repo_url: https://gitea.cruzcloud.net/devops/apps-registry
repo_name: devops/apps-registry
edit_uri: _blank

docs_dir: docs

theme:
  name: material
  language: es
  palette:
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: indigo
      accent: indigo
      toggle:
        icon: material/weather-night
        name: Cambiar a modo oscuro
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: indigo
      accent: indigo
      toggle:
        icon: material/weather-sunny
        name: Cambiar a modo claro
  features:
    - navigation.tabs
    - navigation.tabs.sticky
    - navigation.sections
    - navigation.top
    - navigation.footer
    - navigation.indexes
    - search.suggest
    - search.highlight
    - content.code.copy
    - content.tabs.link
    - toc.follow

plugins:
  - search:
      lang: es
  # TODO (fase 2): git-revision-date-localized deshabilitado a propósito.
  # El Dockerfile construye con context: workloads/docs-portal/, que no
  # incluye .git (vive en la raíz del repo) — el plugin no tiene historial
  # real que leer y cae siempre en fallback_to_build_date, emitiendo un
  # WARNING por página. mkdocs build --strict aborta ante CUALQUIER
  # WARNING, así que mientras no se le dé contexto de build con .git real
  # (mover el build a la raíz del repo + fetch-depth:0 en el workflow),
  # este plugin debe quedar fuera para no romper el pipeline.
  # - git-revision-date-localized:
  #     enable_creation_date: true
  #     type: date
  #     fallback_to_build_date: true

markdown_extensions:
  - admonition
  - attr_list
  - md_in_html
  - tables
  - toc:
      permalink: true
  - pymdownx.details
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.highlight:
      anchor_linenums: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.tabbed:
      alternate_style: true

nav:
  - Inicio: index.md
  - Arquitectura:
      - Visión general: arquitectura/vision-general.md
      - Red y exposición: arquitectura/red-y-exposicion.md
      - Flujo GitOps: arquitectura/gitops-flujo.md
      - Glosario: arquitectura/glosario.md
  - Decisiones (ADRs):
      - "0001 · Por qué k3d": decisiones/0001-por-que-k3d.md
      - "0002 · Por qué Argo CD": decisiones/0002-por-que-argocd-vs-manual.md
      - "0003 · HTTP/2 sobre QUIC": decisiones/0003-por-que-http2-sobre-quic-tunnel.md
      - Plantilla ADR: decisiones/plantilla-adr.md
  - Playbooks:
      - Crashloop Medusa: playbooks/incidente-crashloop-medusa.md
      - 504 túnel Gitea: playbooks/incidente-504-gitea-tunnel.md
      - Precios Medusa: playbooks/incidente-precios-medusa.md
      - Imágenes NPM: playbooks/incidente-imagenes-npm.md
  - Aprendizajes:
      - Notas sueltas: aprendizajes/notas-sueltas.md
  - Guía del estudiante:
      - Inicio: guia-estudiante/README.md
      - Conceptos básicos: guia-estudiante/conceptos-basicos.md
  - DevSecOps:
      - Resumen: devsecops/index.md
      - Gitleaks (secretos): devsecops/gitleaks.md
      - Trivy (imagen + IaC): devsecops/trivy.md
      - SAST (Semgrep): devsecops/sast.md
      - SBOM (Syft): devsecops/sbom.md
      - Cosign (firma de imágenes): devsecops/cosign.md

extra:
  social:
    - icon: fontawesome/brands/git-alt
      link: https://gitea.cruzcloud.net/devops
