design final
This commit is contained in:
parent
a0d2188f6f
commit
99a690972e
1414 changed files with 2389 additions and 1455 deletions
78
DEV_SETUP.md
Normal file
78
DEV_SETUP.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# Development Setup Guide
|
||||
|
||||
## Quick Start for Local Development
|
||||
|
||||
The `run_app.py` script mimics Docker production conditions while enabling fast iteration.
|
||||
|
||||
### Standard Development Mode (Recommended)
|
||||
```bash
|
||||
python run_app.py
|
||||
```
|
||||
|
||||
**Features:**
|
||||
- ✓ Loads environment variables from `.env` file
|
||||
- ✓ Single Uvicorn worker with **fast auto-reload**
|
||||
- ✓ Mimics Docker environment (`PYTHONUNBUFFERED=1`)
|
||||
- ✓ Creates upload directory automatically
|
||||
- ✓ Binds to `0.0.0.0:8000` (same as Docker)
|
||||
|
||||
**Best for:** Quick code iterations, template changes, debugging
|
||||
|
||||
### Production-Like Mode
|
||||
```bash
|
||||
python run_app.py --gunicorn
|
||||
```
|
||||
|
||||
**Features:**
|
||||
- ✓ Gunicorn with 4 Uvicorn workers (exactly like Docker)
|
||||
- ✓ 120s timeout (same as Docker)
|
||||
- ✓ Gunicorn's reload (slower but tests production server)
|
||||
- ✓ Tests multi-worker behavior
|
||||
|
||||
**Best for:** Testing before deploying to Docker, load testing
|
||||
|
||||
## Environment Variables
|
||||
|
||||
The script automatically loads `.env` file variables:
|
||||
- `RATE_PER_M2_BLACK` - Black & white print rate (default: 4.0)
|
||||
- `RATE_PER_M2_COLOR` - Color print rate (default: 5.0)
|
||||
- `SERVER_HOSTNAME` - Server hostname (default: einszwovier.local)
|
||||
- `BOOKSTACK_PORT`, `OPENWEBUI_PORT`, `PORTAINER_PORT` - Service ports
|
||||
- `MATRIX_USER`, `MATRIX_PASS`, `MATRIX_HOMESERVER` - Matrix integration
|
||||
|
||||
## Comparison: Dev vs Docker
|
||||
|
||||
| Feature | `python run_app.py` | `docker-compose up` |
|
||||
|---------|---------------------|---------------------|
|
||||
| Server | Uvicorn (single worker) | Gunicorn + Uvicorn (4 workers) |
|
||||
| Auto-reload | ✓ Fast (watches all files) | ✓ Slow (Docker rebuild) |
|
||||
| Env loading | `.env` file | `.env` file |
|
||||
| Port | 8000 | 80→8000 |
|
||||
| Memory limit | None | 1GB limit |
|
||||
| Health checks | No | Yes |
|
||||
| Dependencies | All services | Isolated |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### `.env` file not found
|
||||
Create `.env` file from template:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
### Port 8000 already in use
|
||||
```bash
|
||||
# Find and kill process
|
||||
lsof -ti:8000 | xargs kill -9
|
||||
```
|
||||
|
||||
### Environment variables not loading
|
||||
Ensure `python-dotenv` is installed:
|
||||
```bash
|
||||
pip install python-dotenv
|
||||
```
|
||||
|
||||
### Testing Matrix integration locally
|
||||
1. Start Matrix server: `docker-compose up synapse -d`
|
||||
2. Run app: `python run_app.py`
|
||||
3. Submit test order via `/cost` endpoint
|
||||
Loading…
Add table
Add a link
Reference in a new issue