# Pitopn — магазин цифровых товаров # # Стек: FastAPI (Python) + PostgreSQL 17 + Docker Compose # Деплой: Dokploy (Compose) ## Быстрый старт локально ```bash cp .env.example .env docker compose up --build -d ``` Откройте http://localhost:8000 Проверка здоровья: http://localhost:8000/health ## Переменные окружения Скопируйте `.env.example` в `.env` и задайте сильные пароли: | Переменная | Описание | |---|---| | `APP_NAME` | Название магазина | | `SECRET_KEY` | Секрет приложения | | `POSTGRES_USER` | Пользователь БД | | `POSTGRES_PASSWORD` | Пароль БД | | `POSTGRES_DB` | Имя БД | | `APP_PORT` | Внешний порт (по умолчанию 8000) | ## Деплой в Dokploy 1. Создайте проект **Compose** / **Docker Compose**. 2. Подключите этот репозиторий (или загрузите файлы). 3. Укажите `docker-compose.yml` как compose-файл. 4. В Environment добавьте переменные из `.env.example` (особенно `POSTGRES_PASSWORD` и `SECRET_KEY`). 5. В Domains привяжите домен к сервису `web` на порт **8000**. 6. Deploy. База `db` не публикуется наружу — только внутри сети Compose. Данные PostgreSQL хранятся в volume `postgres_data`. ## Структура ``` app/ main.py # FastAPI + главная страница models.py # Product, Category seed.py # демо-товары при первом запуске templates/ # Jinja2 static/ # CSS/JS Dockerfile docker-compose.yml ``` ## Локальная разработка без Docker (опционально) Нужен PostgreSQL 17 и Python 3.12+: ```bash python -m venv .venv # Windows: .venv\Scripts\activate pip install -r requirements.txt # в .env укажите POSTGRES_HOST=localhost uvicorn app.main:app --reload --port 8000 ```