main
Co-authored-by: Cursor <cursoragent@cursor.com>
Pitopn — магазин цифровых товаров
Стек: FastAPI (Python) + PostgreSQL 17 + Docker Compose
Деплой: Dokploy (Compose)
Быстрый старт локально
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
- Создайте проект Compose / Docker Compose.
- Подключите этот репозиторий (или загрузите файлы).
- Укажите
docker-compose.ymlкак compose-файл. - В Environment добавьте переменные из
.env.example(особенноPOSTGRES_PASSWORDиSECRET_KEY). - В Domains привяжите домен к сервису
webна порт 8000. - Deploy.
База db не публикуется наружу — только внутри сети Compose. Данные PostgreSQL хранятся в volume postgres_data.
Админка
URL: /admin
Логин и пароль задаются в .env:
ADMIN_USERNAME=admin
ADMIN_PASSWORD=change-me-strong-admin-password
В админке: дашборд, товары, загрузка ключей, заказы.
Магазин
- Каталог и карточка товара
- Корзина (сессия)
- Оформление с демо-оплатой и мгновенной выдачей кодов
- Поиск заказа:
/lookup
Структура
app/
main.py # FastAPI + сессии
models.py # Product, ProductKey, Order
routers/shop.py # витрина, корзина, заказы
routers/admin.py # админка
templates/ # Jinja2
static/ # CSS/JS
Dockerfile
docker-compose.yml
Локальная разработка без Docker (опционально)
Нужен PostgreSQL 17 и Python 3.12+:
python -m venv .venv
# Windows:
.venv\Scripts\activate
pip install -r requirements.txt
# в .env укажите POSTGRES_HOST=localhost
uvicorn app.main:app --reload --port 8000
Languages
Python
48.4%
HTML
29.3%
CSS
20.6%
JavaScript
1.1%
Dockerfile
0.6%