Files
shop-pip/README.md
T

2.6 KiB
Raw Blame History

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

  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.

Админка

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