nightcrawler

nightcrawler

Docker app from hoody424's Repository

Overview

nightcrawler watches marketplaces and shops for new, used and refurbished products. Watchlists run on a schedule; listings are filtered by real specs read from the titles (brand, storage, RAM, CPU, screen, ...) like on Geizhals, with price history, price-drop and sold detection, a deal score and notifications through Apprise (Discord, Telegram, ntfy, e-mail, ...). Sources: the official eBay Browse API (free developer keys), any Shopify store, and any other shop through CSS selectors. Optional AI with your Claude Pro/Max subscription: relevance filter per watchlist in plain language, natural-language search, deal check. Get a token in the container console with: claude setup-token. Then paste it into the template or into Settings > AI in the web UI. Open the web UI after the start. A demo source with test data is set up on the first start. Watchlists, sources and settings are managed in the web UI and stored in appdata.

nightcrawler for Unraid

nightcrawler watches marketplaces and shops for new, used and refurbished products, filters listings by real specs (Geizhals-style), tracks prices and sends notifications. Optional AI features run on your Claude Pro/Max subscription.

Template: nightcrawler.xml, image: ghcr.io/hoody424/nightcrawler (amd64 + arm64).

First start

  1. Install the template; the defaults work as they are.
  2. Open the web UI (http://<server>:8080). The first start sets up a demo source (webscraper.io's public test shop) and a few watchlists, and the first crawl starts within seconds.
  3. Create your own watchlists and sources in the web UI. Everything is stored in the Data folder (/mnt/user/appdata/nightcrawler): one SQLite database plus the Claude login. Back up that folder.

If the server is reachable from outside your network, set Username and Password (HTTP basic auth) and put nightcrawler behind a reverse proxy with HTTPS.

AI with your Claude subscription

  1. Open the container console (Docker tab > nightcrawler icon > Console) and run claude setup-token. It shows a link: open it, log in to your Claude account, and paste the code back into the console.
  2. Copy the printed sk-ant-oat... token into Claude subscription token in the template, or into Settings > AI in the web UI.
  3. Click Test connection in Settings > AI.

AI calls count towards your plan's usage limits; Max AI calls / hour (default 60) caps them. A subscription is for your own use; if other people use your nightcrawler, set an Anthropic API key (advanced view) instead.

eBay

Create a free Production keyset at developer.ebay.com and enter the App ID as eBay client ID and the Cert ID as eBay client secret. eBay enabled only switches the source on during the very first start; after that, enable it on the Sources page. Pick the marketplace (EBAY_DE, EBAY_US, ...) there too.

eBay keeps a new Production keyset disabled until you handle Marketplace Account Deletion (subscribe or opt out), see eBay setup.

Notifications

Settings > Notifications takes one Apprise URL per line, for example ntfy://my-topic or tgram://bot_token/chat_id.

PUID / PGID

The container starts as root, gives the Data folder to PUID:PGID (Unraid default 99:100, user nobody, group users) and then runs as that user. Changing the values later is fine; ownership is fixed at the next start.

Support

Related apps

Details

Repository
ghcr.io/hoody424/nightcrawler:latest
Last Updated2026-10-12
First Seen2026-10-12

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUI portPorttcp

Web UI and REST API (/api/docs).

Target
8080
Default
8080
Value
8080
DataPathrw

Database, settings and the Claude login. Back this up.

Target
/data
Default
/mnt/user/appdata/nightcrawler
Value
/mnt/user/appdata/nightcrawler
Claude subscription tokenVariable

Optional, for the AI features. Run claude setup-token in the container console and paste the sk-ant-oat... token here (or in Settings &gt; AI).

Target
CLAUDE_CODE_OAUTH_TOKEN
UsernameVariable

Protect the web UI with a login (HTTP basic auth). Set it together with Password. Empty = no login.

Target
NIGHTCRAWLER_USERNAME
PasswordVariable

Password for the login above.

Target
NIGHTCRAWLER_PASSWORD
eBay enabledVariable

Enable the eBay source on the first start (later: Sources page in the web UI). Needs the two keys below.

Target
EBAY_ENABLED
Default
false|true
Value
false
eBay client IDVariable

App ID of a free Production keyset from developer.ebay.com.

Target
EBAY_CLIENT_ID
eBay client secretVariable

Cert ID of the same keyset.

Target
EBAY_CLIENT_SECRET
Anthropic API keyVariable

Alternative to the subscription, billed per token. Choose the Anthropic API key backend in Settings &gt; AI.

Target
ANTHROPIC_API_KEY
PUIDVariable

User the app runs as. Files in Data get this owner.

Default
99
Value
99
PGIDVariable

Group the app runs as.

Default
100
Value
100