feat: Docker deploy serving SPA and API on :8080
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# MincedPad
|
||||
|
||||
Self-hosted anonymous paste / file share: public wall, TTL, burn-after-read, and a password-gated admin panel. One Docker container serves the Vue SPA and FastAPI API on port **8080**.
|
||||
|
||||
## Deploy (Docker Compose)
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Open http://127.0.0.1:8080/
|
||||
Admin: http://127.0.0.1:8080/admin
|
||||
|
||||
Data (SQLite + uploads) persists in `./data` on the host (`DATA_DIR=/data` in the container).
|
||||
|
||||
## Environment
|
||||
|
||||
| Variable | Default | Meaning |
|
||||
| --- | --- | --- |
|
||||
| `ADMIN_PASSWORD` | `changeme` | Admin login password |
|
||||
| `SECRET_KEY` | (dev default) | JWT signing secret — change in production |
|
||||
| `MAX_UPLOAD_MB` | `200` | Max upload size in megabytes |
|
||||
| `RATE_LIMIT_PER_SECOND` | `2` | Create/upload rate limit per IP |
|
||||
| `DATA_DIR` | `/data` | SQLite + uploads directory |
|
||||
|
||||
Set these under `environment:` in `docker-compose.yml` (or via your orchestrator).
|
||||
|
||||
## Mobile
|
||||
|
||||
The UI is mobile-first (Element Plus responsive grid, full-width controls under 768px). Use a real phone or browser device mode for smoke checks after deploy.
|
||||
|
||||
## Local development
|
||||
|
||||
**API**
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python -m venv ../.venv && source ../.venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
DATA_DIR=../data PYTHONPATH=. uvicorn app.main:app --host 0.0.0.0 --port 8080 --reload
|
||||
```
|
||||
|
||||
**Frontend** (proxies `/api` to `:8080`)
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Production-style (API serves `frontend/dist`):
|
||||
|
||||
```bash
|
||||
cd frontend && npm run build
|
||||
cd ../backend && DATA_DIR=../data PYTHONPATH=. uvicorn app.main:app --port 8080
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Use as you like for self-hosting.
|
||||
Reference in New Issue
Block a user