commit fb00211c48a643c32c12e85ea663ad2a785a3c6b Author: orohi Date: Sat Jul 25 01:51:44 2026 +0300 first commit Co-authored-by: Cursor diff --git a/README.md b/README.md new file mode 100644 index 0000000..275ddd5 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# 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 +```