Об этом проекте

static-server предоставляет компактный контейнеризированный HTTP-файловый сервер для статических сайтов и SPA-сборок. Образ собран на основе scratch со статически слинкованным бинарником Go, использует стандартную библиотеку, требует CGO_ENABLED=0 и работает от UID 65534 без оболочки, пакетного менеджера, libc и записываемых путей во время выполнения. Основные возможности раздачи: - Раздача файлов из SERVE_DIR с опциональным каскадом FALLBACK_DIR для встроенных значений по умолчанию. - Режим SPA, возвращающий index.html для навигационных маршрутов без расширения, тогда как отсутствующие пути к ресурсам остаются ответами 404. - Опциональная отдача соседних файлов .br и .gz, когда клиент принимает соответствующую кодировку. - Настраиваемый неизменяемый префикс кэша для ресурсов с fingerprint, тогда как HTML и навигационные ответы используют no-cache. - Автоматическая регистрация MIME-типов, включая application/wasm для файлов .wasm. - Только GET и HEAD; остальные методы получают ответы 405. - Отключённые листинги каталогов, при этом каталоги требуют index.html. - Заголовки безопасности в ответах и опциональная настройка Content-Security-Policy. Сервер предоставляет /healthz для проверок liveness и readiness Kubernetes, /version для версии времени сборки и /llms.txt как машиночитаемую справку. Он обрабатывает SIGTERM для корректного завершения работы, а контент может подаваться через read-only bind mount, ConfigMap, emptyDir, заполняемый initContainer, или другой том. Конфигурация основана на переменных окружения, включая PORT, SERVE_DIR, FALLBACK_DIR, SPA_FALLBACK, CACHE_IMMUTABLE_PREFIX, CONTENT_SECURITY_POLICY и PRECOMPRESSED. Репозиторий включает примеры запуска Docker, манифесты Deployment Kubernetes, генерацию ConfigMap через Kustomize, примеры частичных overlay и паттерны initContainer для вывода сборки или рендеринга шаблонов. Образы публикуются в Quay.io и Docker Hub с тегами latest и версионированными тегами. Локальные сборки используют Docker, Docker Buildx, Make и Go 1.24 или новее; поддерживаются мультиплатформенные сборки linux/amd64 и linux/arm64. Аргументы сборки настраивают OCI-метки и шаблон index.html по умолчанию. CI запускает go vet и тесты с race detector, а публикация тегов собирает мультиплатформенные образы. Проект выпущен под лицензией BSD Zero Clause.