36 lines
1.2 KiB
Markdown
36 lines
1.2 KiB
Markdown
# Mengya Drift Bottle – Backend
|
||
|
||
Flask API that powers the React frontend located in `../mengyadriftbottle-frontend`.
|
||
|
||
## Features
|
||
|
||
- JSON-first `/api` endpoints for throwing, picking up, and reacting to bottles
|
||
- Rate limiting per IP (5 seconds) for throw/pickup actions
|
||
- File-backed persistence with automatic schema upgrades
|
||
- Lightweight token portal via `/admin?token=...` for quick moderation
|
||
- Full legacy dashboard (`/admin/login`) preserved for session-based moderation
|
||
- CORS enabled for local development via Vite
|
||
|
||
## Quick Start
|
||
|
||
```bash
|
||
cd mengyadriftbottle-backend
|
||
python -m venv .venv
|
||
.venv\Scripts\activate
|
||
pip install -r requirements.txt
|
||
python app.py
|
||
```
|
||
|
||
The server listens on `http://localhost:5002` by default and exposes the API under `http://localhost:5002/api`.
|
||
|
||
## Environment Variables
|
||
|
||
| Name | Description | Default |
|
||
| ---- | ----------- | ------- |
|
||
| `DRIFT_BOTTLE_SECRET` | Secret key for Flask sessions | Random value generated at runtime |
|
||
| `DRIFT_BOTTLE_ADMIN_TOKEN` | Token required for `/admin?token=...` | `shumengya520` |
|
||
|
||
## File Storage
|
||
|
||
Bottle data, config, mottos, and filter words continue to use the JSON files located at the repository root (`../bottles.json`, etc.). The backend automatically creates them if missing.
|