You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -8,63 +8,137 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
## [Unreleased]
9
9
10
10
### Added
11
-
-**Editable local games paths in Settings UI (non-Docker)**: Users running Backlogia locally can now configure game folder paths directly from the Settings page without needing to edit environment variables or .env files
- Manual tag persistence tests (5 tests): Auto vs manual tag conflict resolution, non-Steam games
17
+
- Edge case tests (13 tests): Games with all metadata, system label deletion, NULL playtime handling, large library performance
18
+
-**Complete API documentation**: New `docs/api-metadata-endpoints.md` with request/response examples, curl commands, and error codes for all 13 metadata endpoints
-**Global filter persistence**: Filters always apply across all pages (Library, Discover, Collections, Random) and persist via localStorage
36
+
-**Global filter persistence**: 6 global filters (stores, genres, queries, excludeStreaming, noIgdb, protondbTier) persist across all pages via localStorage
19
37
-**Random page**: New `/random` endpoint with full page displaying configurable number of random games (default 12, max 50) with filter support
20
38
-**Reusable filter components**: Component-based architecture with `_filter_bar.html`, `filters.css`, and `filters.js` for consistent UX
39
+
-**2-tier caching system** for IGDB data:
40
+
-**Tier 1 (Memory)**: 15-minute cache for instant page loads (~0ms)
**Your entire game library, finally in one place.**
@@ -254,15 +258,54 @@ On **Linux** hosts, mDNS is advertised automatically via Avahi.
254
258
255
259
**Trusting the Certificate:**
256
260
257
-
Caddy generates a self-signed certificate. Your browser will show a warning on first visit. You can click past it. To trust it permanently on macOS:
261
+
Caddy generates a self-signed certificate using its own internal CA. Browsers will show a security warning until you trust this CA. Trusting it is **required** for PWA install support (service workers need a valid certificate).
262
+
263
+
Run the included script to trust the certificate automatically:
-**Linux**: Copy `./data/caddy_data/caddy/pki/authorities/local/root.crt` to `/usr/local/share/ca-certificates/` and run `sudo update-ca-certificates`
273
+
-**Windows (PowerShell, run as Administrator)**: `certutil -addstore -f Root .\data\caddy_data\caddy\pki\authorities\local\root.crt`
274
+
275
+
---
276
+
277
+
### Authentication (Optional)
278
+
279
+
Backlogia runs without authentication by default. If you're exposing your instance beyond localhost, you can enable single-user authentication to protect all routes.
280
+
281
+
**Enable authentication:**
282
+
283
+
Add to your `.env` file:
284
+
```bash
285
+
ENABLE_AUTH=true
286
+
```
287
+
288
+
Then restart the container (or application). On first visit you'll be prompted to create an owner account — this is the only account allowed on the instance.
289
+
290
+
| Setting | Default | Description |
291
+
|---------|---------|-------------|
292
+
|`ENABLE_AUTH`|`false`| Set to `true` to require login |
293
+
|`SESSION_EXPIRY_DAYS`|`30`| How long sessions last before requiring re-login |
294
+
295
+
A session secret key is generated automatically and persisted in the database. You can logout from the Settings page.
296
+
262
297
---
263
298
264
299
### Option 3: Local Installation
265
300
301
+
#### Prerequisites (Amazon)
302
+
1. Build the latest `nile` code: https://github.com/imLinguin/nile?tab=readme-ov-file#setting-up-dev-environment
303
+
2. Compile `nile` into an executable: https://github.com/imLinguin/nile?tab=readme-ov-file#building-pyinstaller-executable
304
+
3. Make sure that the compiler executable is in your `PATH` (either place it in an existing `PATH` folder or add the folder containing the executable to the `PATH` list)
305
+
4. If you added a new folder to your `PATH` above, open a **new terminal** for the instructions below (so it receives the updated `PATH`)
0 commit comments