Files
esp32-web/docs/INSTALL.md
user e6e7b622b2 docs: Add project documentation
- README.md: Quick start, API endpoints, ports
- PROJECT.md: Architecture, components, data models
- ROADMAP.md: Version milestones (v0.1.x - v1.0.0)
- TASKS.md: Current sprint tasks
- TODO.md: Backlog items
- docs/INSTALL.md: Setup and deployment
- docs/USAGE.md: API examples
- docs/CHEATSHEET.md: Quick reference
2026-02-05 21:06:05 +01:00

77 lines
1.3 KiB
Markdown

# Installation
## Requirements
- Python 3.11+
- pip
- SQLite (included) or PostgreSQL
## Development Setup
```bash
# Clone repository
cd ~/git/esp32-web
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install with dev dependencies
pip install -e ".[dev]"
# Initialize database
flask --app src/esp32_web db init
flask --app src/esp32_web db migrate -m "initial"
flask --app src/esp32_web db upgrade
# Verify installation
make test
```
## Configuration
Copy `.env.example` to `.env` and adjust:
```bash
cp .env.example .env
```
| Variable | Default | Description |
|----------|---------|-------------|
| SECRET_KEY | dev-key | Flask secret key |
| DATABASE_URL | sqlite:///esp32.db | Database connection |
| UDP_PORT | 5500 | UDP collector port |
| CMD_PORT | 5501 | Sensor command port |
| SENSOR_TIMEOUT | 60 | Seconds before sensor marked offline |
## Container Deployment
```bash
# Build image
make build
# Run container
make container-run
# View logs
make container-logs
# Stop container
make container-stop
```
## Production
For production, use gunicorn:
```bash
gunicorn -b 0.0.0.0:5500 -w 4 'esp32_web:create_app()'
```
With PostgreSQL:
```bash
export DATABASE_URL="postgresql://user:pass@localhost/esp32web"
flask --app src/esp32_web db upgrade
```