Hacker News Digest

22 августа 2025 г. в 15:15 • nkantar.com • ⭐ 124 • 💬 75

OriginalHN

#python#uv#caddy#docker#dockerfile#sus#coolify#nginx#apache#https

Static sites with Python, uv, Caddy, and Docker

Стек для Python-статики: uv + Caddy + Docker

Я почти полностью перешёл на uv — он быстрый, удобен и сам ставит нужный Python. Статические сайты собираю Python-скриптами, а раздаю через Caddy в многоступенчевом Docker-контейнере.

Пример на sus

Dockerfile (сжато):

FROM ghcr.io/astral-sh/uv:debian AS build
WORKDIR /src
COPY . .
RUN uv python install 3.13
RUN uv run --no-dev sus

FROM caddy:alpine
COPY Caddyfile /etc/caddy/Caddyfile
COPY --from=build /src/output /srv/
  1. Берём образ с uv, копируем код.
  2. uv ставит Python 3.13 и зависимости, запускает sus, который кладёт сайт в /output.
  3. Вторая стадия — лёгкий Caddy. Копируем конфиг и готовые статические файлы в /srv.

Caddyfile минимален:

:80
root * /srv
file_server

Запуск:

docker build -t sus .
docker run -p 80:80 sus

Итог: быстрая сборка, маленький образ, автоматический HTTPS при нужном домене.