Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.