Repository navigation
Service Connections
Service connections live under Settings -> Connections. Configure only the integrations needed for the features you plan to use. Regular users cannot change or verify instance connections. Every administrator reads and edits the same shared rows through the stable instance-configuration owner. Trakt is the exception: users may connect their own account for personal watch history.
| Connection | Role | Default base URL or endpoint | Credential |
|---|---|---|---|
| TMDB | Required for core discovery and setup completion | https://api.themoviedb.org/3 |
API key or read token |
| TVDB | Optional TV identity and episode metadata | https://api4.thetvdb.com/v4 |
API key |
| Usenet server | Built-in download transport | Provider-specific NNTP host, always TLS (usually port 563) | Username and password, when required |
| AI provider | Optional recommendations | https://api.openai.com/v1 |
API key when required, plus model ID |
| Plex | Optional direct watch-history import |
http://localhost:32400 placeholder |
X-Plex-Token |
| Tautulli | Optional watch-history import and Plex-user selection |
http://localhost:8181 placeholder |
API key |
| Trakt | Optional personal watch-history import | https://api.trakt.tv |
Client ID and OAuth access token |
Default private-service URLs are examples. From Docker, localhost means the Nooklet container, not the host running Plex or Tautulli.
| State | Meaning |
|---|---|
| Disconnected | No saved usable configuration exists. |
| Configured | Values were saved without a successful current verification. Features that require verification remain not ready. |
| Verified | Nooklet successfully tested the saved connection. |
| Error | The latest test failed; the card displays a safe status message. |
Use Test & save for initial setup. Nooklet tests the draft values before replacing the saved connection; if the test fails, the previously saved connection remains active. Save without testing is available for staged or temporarily unreachable services, but it does not satisfy readiness.
Saved service credentials and indexer API keys are encrypted at rest with SECRET_BOX_KEY, falling back to AUTH_SECRET only for backward compatibility.
TMDB is the metadata connection required for setup completion. It powers title identity, search, discovery rails, posters, cast, trailers, genres, and original-language checks. A complete request path also needs the Usenet server connection described below.
- Open TMDB -> Configure.
- Keep the standard base URL unless TMDB has instructed otherwise.
- Enter the API key or read token.
- Select Test & save.
- Confirm Verified.
TVDB may add TV metadata but does not replace the TMDB readiness requirement.
The built-in downloader connects directly to the news provider. The form accepts:
- server hostname;
- port from 1 through 65535 (use the provider's TLS port, usually 563);
- 1 through 20 connections;
- username and password.
Every connection uses TLS with certificate verification; plaintext NNTP is not supported, so article data and credentials are never readable on the network. Verification performs a TLS connection, authenticates when credentials are present, and issues an NNTP DATE round trip. Keep the connection count at or below the provider's account limit.
The built-in engine also needs download staging storage and a verified Newznab indexer.
AI recommendations are optional. Configure:
- an OpenAI-compatible base URL;
- an API key when the provider requires one;
- a default model identifier.
Verification requests the provider's model-list endpoint and saves the returned model IDs. Nooklet recognizes the normal OpenAI-compatible { data: [...] } response and LM Studio's native model-list shape. Recommendation generation uses an OpenAI-compatible chat-completions request; local providers must expose compatible behavior.
The recommendation request timeout is controlled by AI_RECOMMENDATIONS_TIMEOUT_MS, whose default is 30 minutes. This does not extend the shorter connection-verification timeout.
These integrations add watch-history context and are not required for media requests.
- Plex imports watches directly using an X-Plex-Token.
- Tautulli imports recent Plex watches and lets the operator choose the Plex user discovered during verification.
- Trakt uses a client ID and OAuth access token and is scoped to the connecting user's personal history.
Choose the source you already operate; connecting all three is unnecessary.
Use one of these addressing patterns:
| Service location | Base URL pattern |
|---|---|
| Another service in the same Compose network | http://<compose-service-name>:<port> |
| Service running on the Docker host |
http://host.docker.internal:<port> where supported |
| Service elsewhere on the LAN | http://<exact-hostname-or-IP>:<port> |
Private and loopback targets are protected by the outbound request policy. Add only the exact hostname or IP to PRIVATE_SERVICE_HOST_ALLOWLIST, then recreate/restart Nooklet:
PRIVATE_SERVICE_HOST_ALLOWLIST=host.docker.internal;plex.home.arpa;192.168.1.25Do not include schemes, ports, paths, CIDR ranges, or wildcards. ALLOW_PRIVATE_SERVICE_HOSTS=true is a broader alternative intended only for a trusted, single-user LAN.
- Confirm the URL is reachable from the Nooklet runtime, not merely from your desktop browser.
- For Docker, replace
localhostwith a Compose service name,host.docker.internal, or a LAN address. - Add the exact private hostname/IP to
PRIVATE_SERVICE_HOST_ALLOWLISTand recreate the container. - Confirm TLS scheme and port match the provider.
- Re-enter the credential if it was rotated; a blank credential while editing keeps the saved value.
- Inspect
docker compose logs --tail=200 appfor transport-level context without sharing secrets publicly. - Retry Test & save, then return to Setup Center.
Nooklet repository · Features · User guide · Engineering dossier · Issues · Private security advisory
Documentation last reviewed against main: August 19, 2026.
Nooklet
Start here
- Getting started
- Guided Docker setup
- Docker installation
- Native installation (advanced)
- First-time setup
Configure
Use Nooklet
- Discover and recommendations
- Library and requests
- YouTube monitoring
- Downloads and import
- Watch history
- Automation and notifications
Operate
- Health and diagnostics
- Backup, restore, upgrades
- Accounts and users
- Troubleshooting
- Multi-instance boundaries
Engineering