Update README with Docker-first guide

This commit is contained in:
2026-01-22 22:55:35 +13:00
parent 3eb4b3f09f
commit 7a7d570852

View File

@@ -25,7 +25,65 @@ Magent is a friendly, AI-assisted request tracker for Jellyseerr + Arr services.
- Local account password changes via "My profile". - Local account password changes via "My profile".
- Docker-first deployment for easy hosting. - Docker-first deployment for easy hosting.
## Backend (FastAPI) ## Quick start (Docker - primary)
Docker is the recommended way to run Magent. It includes the backend and frontend with sane defaults.
```bash
docker compose up --build
```
Then open:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
### Docker setup steps
1) Create `.env` with your service URLs and API keys.
2) Run `docker compose up --build`.
3) Log in at http://localhost:3000.
4) Visit Settings to confirm service health.
### Docker environment variables (sample)
```bash
JELLYSEERR_URL="http://localhost:5055"
JELLYSEERR_API_KEY="..."
SONARR_URL="http://localhost:8989"
SONARR_API_KEY="..."
SONARR_QUALITY_PROFILE_ID="1"
SONARR_ROOT_FOLDER="/tv"
RADARR_URL="http://localhost:7878"
RADARR_API_KEY="..."
RADARR_QUALITY_PROFILE_ID="1"
RADARR_ROOT_FOLDER="/movies"
PROWLARR_URL="http://localhost:9696"
PROWLARR_API_KEY="..."
QBIT_URL="http://localhost:8080"
QBIT_USERNAME="..."
QBIT_PASSWORD="..."
SQLITE_PATH="data/magent.db"
JWT_SECRET="change-me"
JWT_EXP_MINUTES="720"
ADMIN_USERNAME="admin"
ADMIN_PASSWORD="adminadmin"
```
## Screenshots
Add screenshots here once available:
- `docs/screenshots/home.png`
- `docs/screenshots/request-timeline.png`
- `docs/screenshots/settings.png`
- `docs/screenshots/profile.png`
## Local development (secondary)
Use this only when you need to modify code locally.
### Backend (FastAPI)
```bash ```bash
cd backend cd backend
@@ -60,7 +118,7 @@ $env:ADMIN_USERNAME="admin"
$env:ADMIN_PASSWORD="adminadmin" $env:ADMIN_PASSWORD="adminadmin"
``` ```
## Frontend (Next.js) ### Frontend (Next.js)
```bash ```bash
cd frontend cd frontend
@@ -74,15 +132,6 @@ Admin panel: http://localhost:3000/admin
Login uses the admin credentials above (or any other local user you create in SQLite). Login uses the admin credentials above (or any other local user you create in SQLite).
## Docker (Testing)
```bash
docker compose up --build
```
Backend: http://localhost:8000
Frontend: http://localhost:3000
## Public Hosting Notes ## Public Hosting Notes
The frontend proxies `/api/*` to the backend container. Set: The frontend proxies `/api/*` to the backend container. Set:
@@ -96,3 +145,25 @@ If you prefer the browser to call the backend directly, set `NEXT_PUBLIC_API_BAS
- `GET /requests/{id}/history?limit=10` recent snapshots - `GET /requests/{id}/history?limit=10` recent snapshots
- `GET /requests/{id}/actions?limit=10` recent action logs - `GET /requests/{id}/actions?limit=10` recent action logs
## Troubleshooting
### Login fails
- Make sure `ADMIN_USERNAME` and `ADMIN_PASSWORD` are set in `.env`.
- Confirm the backend is reachable: `http://localhost:8000/health` (or see container logs).
### Services show as down
- Check the URLs and API keys in Settings.
- Verify containers can reach each service (network/DNS).
### No recent requests
- Confirm Jellyseerr credentials in Settings.
- Run a full sync from Settings -> Requests.
### Docker images not updating
- Run `docker compose up --build` again.
- If needed, run `docker compose down` first, then rebuild.