Skip to content

MyJetTools/web-app-host

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

web-app-host

Лёгкий HTTP-сервер для отдачи статического SPA из папки ./wwwroot. Слушает 0.0.0.0:8000 по TCP и (на Unix) опционально на Unix-сокете.

Возможности:

  • Раздача статических файлов с ETag и in-memory кэшированием;
  • SPA-fallback на index.html;
  • is-alive endpoint с именем и версией приложения;
  • Подстановка плейсхолдеров версии в указанный файл при отдаче;
  • Список путей, исключаемых из кэша.

Переменные окружения

Переменная По умолчанию Описание
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

About

Web App Hosting Application

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors