Files
workshop/README.md
2026-08-13 00:09:28 +03:00

90 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ADa Workshop
## Что необходимо
- Python 3.11 или новее;
- запущенный PostgreSQL и созданная пустая база данных;
- бакет Backblaze B2 и Application Key с правами **Read and Write**;
- файлы проекта:
```text
Workshop/
├── main.py # Запуск FastAPI и отдача страницы
├── routers.py # API каталога, проверка ZIP и загрузка в B2
├── database.py # Модели и подключение PostgreSQL
├── workshop.html # Интерфейс мастерской
├── requirements.txt # Python-зависимости
└── .evn # Локальные настройки и секреты, в Git не добавлять
```
Папки `.venv/` и `backups/` для запуска не нужны: первая создаётся командами
ниже, вторая содержит резервные копии разработки.
## Настройка `.evn`
Создай в папке `Workshop` файл именно с именем `.evn` и заполни его:
```env
DATABASE_URL=postgresql+psycopg://POSTGRES_USER:POSTGRES_PASSWORD@localhost:5432/WORKSHOP_DB
S3_ENDPOINT_URL=https://s3.YOUR_REGION.backblazeb2.com
S3_REGION=YOUR_REGION
S3_BUCKET=YOUR_BUCKET_NAME
S3_ACCESS_KEY=YOUR_B2_keyID
S3_SECRET_KEY=YOUR_B2_applicationKey
```
Для Backblaze B2:
- `S3_ACCESS_KEY` — поле **keyID** созданного Application Key;
- `S3_SECRET_KEY` — поле **applicationKey**;
- `S3_REGION` — регион из S3 Endpoint;
- `S3_BUCKET` — имя бакета.
## Запуск на Windows
Открой PowerShell в папке проекта и выполни:
```powershell
cd C:\путь\к\Workshop
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m uvicorn main:app --reload
```
Открой в браузере: http://127.0.0.1:8000
## Запуск на macOS
Открой Terminal в папке проекта и выполни:
```bash
cd /путь/к/Workshop
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m uvicorn main:app --reload
```
Открой в браузере: http://127.0.0.1:8000
Для остановки сервера в обоих случаях нажми `Ctrl+C`.
## Формат загружаемого ZIP
Архив должен содержать файлы в корне архива, без внешней папки `ada/`:
```text
ada.zip
├── checker/
│ └── checker.py
└── service/
├── docker-compose.yml
├── Dockerfile.api
└── ...
```
Обязательны `checker/checker.py`, `service/docker-compose.yml` и
`service/Dockerfile.api`. Максимальный размер ZIP — 5 МБ; все файлы должны
лежать только внутри `checker/` или `service/`.