Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/danielroe/nuxt.fyi. Celebrating sites built with Nuxt in the wild. nuxt.fyi
bluesky jetstream nuxt
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263# Discord webhook to post detections intoDISCORD_WEBHOOK_URL=
# Bluesky posting (optional). Generate an app password under Settings -> Privacy & security -> App passwords.BLUESKY_SERVICE=https://bsky.socialBLUESKY_IDENTIFIER=BLUESKY_APP_PASSWORD=# Minimum gap between Bluesky posts in ms (default 15 minutes). Only affects firehose-# triggered posts; user-requested replies (@-mentions) bypass this gate.BLUESKY_MIN_INTERVAL_MS=900000# Stored scans older than this (ms) get a forced rescan before we reply to an @-mention# request. Defaults to 24 hours.REPLY_FRESHNESS_MS=86400000
# Jetstream endpoint (pick a regional instance)JETSTREAM_URL=wss://jetstream2.us-east.bsky.network/subscribe# Concurrency for the two daemon queues.DETECTION_CONCURRENCY=8CAPTURE_CONCURRENCY=4
# How long before we'll rescan a domain (ms). Default 30 days.RESCAN_AFTER_MS=2592000000
# Where to store sqliteNUXT_DATA_DIR=./data
# Set to 1 to log every post seenVERBOSE=0
# ImageKit (https://imagekit.io). Screenshots and og:images get uploaded here so the# dashboard can render them via @nuxt/image. Leave the keys empty to disable uploads;# the dashboard will fall back to the upstream og:image URL where available.IMAGEKIT_URL_ENDPOINT=IMAGEKIT_PUBLIC_KEY=IMAGEKIT_PRIVATE_KEY=# Base folder for uploads. Screenshots end up at <root>/screenshots/<domain>.jpg and# og:images at <root>/og-images/<domain>.<ext>.IMAGEKIT_ROOT_FOLDER=/nuxt-fyi
# Screenshot scanner service. The daemon delegates screenshot capture, NSFW# classification, and the screenshot half of ImageKit upload to a separate process (run# `pnpm dev:scanner` in another terminal locally; in prod this is a separate Fly app# reachable via private networking). Leave empty to disable remote capture: the dashboard# then only renders og:images for new scans, and NSFW classification doesn't run.SCANNER_URL=http://localhost:3001SCANNER_TOKEN=
# Daemon's public-submit HTTP endpoint. The dashboard's `/api/submit` route POSTs here# when a visitor queues a domain by hand. Bound to 127.0.0.1; set# DAEMON_SUBMIT_ENABLED=0 to turn the endpoint off entirely (leaving the token empty# also makes it refuse every request). Locally the dashboard reaches it on the loopback# interface; on Fly both processes share the env.DAEMON_SUBMIT_PORT=3010DAEMON_SUBMIT_TOKEN=# Rate limit per IP for the dashboard's /api/submit route (count per window in ms).SUBMIT_RATE_LIMIT=5SUBMIT_RATE_WINDOW_MS=60000
# NSFW classification thresholds (nsfwjs Porn/Hentai/Sexy probabilities, 0..1). These# are read by the scanner only; tune without code changes.NSFW_PORN_THRESHOLD=0.5NSFW_SEXY_THRESHOLD=0.6