2.1 KiB
2.1 KiB
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.
Структура
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+:
python -m venv .venv
# Windows:
.venv\Scripts\activate
pip install -r requirements.txt
# в .env укажите POSTGRES_HOST=localhost
uvicorn app.main:app --reload --port 8000