diff --git a/README.md b/README.md index 5c484bc..fe1fe2c 100644 --- a/README.md +++ b/README.md @@ -6,23 +6,27 @@ Dark dashboard for Arr* services and custom links. - First-run admin setup - Cookie-based admin auth +- Health endpoint at `/healthz` +- Readiness endpoint at `/readyz` (optional DB write probe) - Public dashboard with search/filter - Dedicated protected admin page at `/admin` - Link CRUD backed by MariaDB - Icon blobs stored in the database -- Single-container deployment +- Containerized app deployment (requires MariaDB) - Admin-managed service links ## Local Dev ```bash npm install +pip install -r backend/requirements.txt npm run dev ``` Backend runs on `http://localhost:6363`. Open `/admin` for the protected management page. +Ensure MariaDB is running and reachable by the backend `DB_*` variables. ## Docker @@ -32,6 +36,12 @@ docker compose up --build The app expects a MariaDB instance configured through environment variables. +### Health Endpoints + +- `GET /healthz` returns `{"ok": true}` when the app process is up +- `GET /readyz` returns `{"ok": true}` when database checks pass +- `GET /readyz?write_test=true` additionally verifies DB writes using a temporary table + ### Session and Cookie Env Vars - `SESSION_TTL_SECONDS` (default: `86400`) @@ -41,6 +51,10 @@ The app expects a MariaDB instance configured through environment variables. - `LOGIN_MAX_ATTEMPTS` (default: `5`) - `LOGIN_WINDOW_SECONDS` (default: `300`) - `LOGIN_LOCKOUT_SECONDS` (default: `900`) +- `MAX_NAME_LEN` (default: `255`) +- `MAX_CATEGORY_LEN` (default: `255`) +- `MAX_DESCRIPTION_LEN` (default: `2000`) +- `MAX_ICON_URL_LEN` (default: `2048`) - `MAX_ICON_BYTES` (default: `2097152`) - `USERNAME_MAX_LEN` (default: `64`) - `PASSWORD_MIN_LEN` (default: `12`)