• AlexRUS1234's avatar
    deploy: scratch container and quadlet
    · 341f870c
    AlexRUS1234 создал
    OCI-образ — основная дистрибуция M1 (v0.1.0):
    
    - deploy/Containerfile: multi-stage golang:1.26-alpine -> scratch,
      CGO_ENABLED=0 -trimpath, -X main.Version (линкер Go 1.26 для
      package main берёт только main.Version, не полный importpath).
      ca-certificates ставятся в build-стадии и наследуются scratch'ем
      (HTTPS к upstream'ам). VERSION build-arg с фолбэком на git describe
      для локальной сборки. USER 65534, EXPOSE 29202/30202,
      VOLUME /var/lib/khrazhevnik, ENTRYPOINT /khrazhevnik (PID 1).
    - deploy/quadlet/khrazhevnik.container: rootless podman quadlet —
      PublishPort 29202 и 127.0.0.1:30202, ReadOnly, Volume данных,
      экосистемы apt+rpm-md включены env, JWT-секрет через Podman Secret,
      AutoUpdate=registry, StopTimeout=40 под каскад shutdown.
    - .dockerignore: артефакты/секреты/web-сборку исключаем; embed-заглушку
      assets/index.html оставляем (нужна go:embed до сессии 18).
    - Makefile: цель image (podman build --manifest, PLATFORMS по умолчанию
      нативная, multi-арх через PLATFORMS=linux/amd64,linux/arm64 + QEMU).
    - docs/func/ru/deploy.md: rootless-порты, quadlet-установка, bootstrap
      (/setup -> login -> create remote и флаг -add-remote), настройка
      клиентов apt/dnf на прокси, свой TOML через Exec drop-in.
    - README: статус v0.1.0 + раздел развёртывания со ссылкой на deploy.md.
    341f870c