Лёгкий HTTP-сервер для отдачи статического SPA из папки ./wwwroot. Слушает 0.0.0.0:8000 по TCP и (на Unix) опционально на Unix-сокете.
Возможности:
- Раздача статических файлов с ETag и in-memory кэшированием;
- SPA-fallback на
index.html; is-aliveendpoint с именем и версией приложения;- Подстановка плейсхолдеров версии в указанный файл при отдаче;
- Список путей, исключаемых из кэша.
| Переменная | По умолчанию | Описание |
|---|---|---|
UNIX_SOCKET |
не задана | Только на Unix. Путь к Unix-сокету. Если задана — сервер дополнительно слушает на этом сокете (TCP :8000 остаётся в любом случае). |
BUILD_NAME |
web-app-host (CARGO_PKG_NAME) |
Имя приложения, возвращаемое is-alive-эндпоинтом. |
BUILD_VERSION |
CARGO_PKG_VERSION из Cargo.toml |
Версия приложения. Возвращается is-alive и подставляется вместо ${APP_VERSION} в инжектируемом файле. |
COMPILE_TIME |
пустая строка | Метка времени сборки. Подставляется вместо ${APP_COMPILE_TIME} в инжектируемом файле. |
FILE_TO_VERSION_INJECTION |
не задана | Путь файла (относительно корня сайта), в который при отдаче подставляются ${APP_VERSION} и ${APP_COMPILE_TIME}. Если не задана — инжекция отключена. |
FILES_CACHING_DISABLED |
не задана | Если =1 — отключает in-memory кэш статических файлов. Любое другое значение или отсутствие переменной оставляет кэш включённым. |
| Файл | Описание |
|---|---|
./wwwroot/ |
Корень статических файлов. Index-файл и not-found fallback — index.html (нужен для SPA-роутинга). |
./www-system/.disable-cache |
Опциональный список путей, исключаемых из кэша. По одному пути в строке, пустые строки игнорируются. Путь / исключён из кэша всегда. Если файл отсутствует — печатается сообщение и используется пустой список. |
- TCP:
0.0.0.0:8000(захардкожено). - Static files: папка
./wwwroot, ETag включён, in-memory кэш включён. - Index / not-found:
index.html. - Middlewares (в порядке регистрации):
IsAliveMiddleware,InjectVersionMiddleware,StaticFilesMiddleware.
BUILD_NAME=my-spa \
BUILD_VERSION=1.4.2 \
COMPILE_TIME="2026-05-23T10:00:00Z" \
FILE_TO_VERSION_INJECTION=/index.html \
FILES_CACHING_DISABLED=1 \
./web-app-host