Skip to content

dissenter-web/site_portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Site (FastAPI)

Личный сайт-портфолио на FastAPI + Jinja2 с мультиязычным контентом (ru/en).

Stack

  • FastAPI
  • Jinja2 templates
  • Docker / docker-compose

1) Быстрый запуск (Docker)

  1. Скопируй пример env:
    cp .env.example .env
  2. Подними контейнер:
    docker compose up --build -d
  3. Открой сайт: http://localhost:8000

2) Локальный запуск (без Docker)

  1. Установи зависимости:
    pip install -r requirements.txt
  2. Запусти приложение:
    uvicorn app.main:app --reload

3) Минимум для деплоя (production-ready для портфолио)

  • Непривилегированный пользователь в контейнере (appuser).
  • Health/readiness endpoint'ы: /healthz, /readyz.
  • docker-compose healthcheck (проверка /readyz).
  • Базовые security headers + gzip.
  • Ограничение хостов через ALLOWED_HOSTS.
  • Версионирование ассетов через ASSET_VERSION.

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

  • ASSET_VERSION — версия статики для cache-busting (повышай при релизе).
  • ROOT_PATH — если приложение работает не с /, а с подпути.
  • ALLOWED_HOSTS — список разрешённых хостов через запятую.

Пример:

ASSET_VERSION=5
ROOT_PATH=
ALLOWED_HOSTS=example.com,www.example.com

5) Проверки

  • Проверка синтаксиса Python:
    python -m compileall app static/js
  • Проверка health endpoint:
    curl -s http://localhost:8000/healthz
  • Проверка readiness endpoint:
    curl -s http://localhost:8000/readyz

6) Структура проекта

  • app/ — backend-код (роуты и middleware)
  • templates/ — Jinja-шаблоны страниц
  • static/ — CSS/JS/контент (static/content/*.json)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors