seepuls/.env.example
Till JS 6f77d0095b
Some checks are pending
CI / validate (push) Waiting to run
feat: echte Suche, Amenities/Region ausgespielt, Folgen→Web-Push
Vier Review-Verbesserungen:

- Suche real: /api/v1/search liefert echte unified Events+Orte (war Stub);
  Event-q trifft auch Venue-Namen; Startseite zeigt Orte-Treffer bei Suche.
- Amenities/Öffnungszeiten/Region ausgespielt: Venue-Liste liefert
  openingHours/amenities/smoking/heroUrl, neuer amenity- + q-Filter;
  Orte-Seite mit Ausstattungs-/Region-Chips, „Jetzt geöffnet"-Badge
  (isOpenNow, über-Mitternacht-fest) + Amenity-Badges; Region-Chips auch
  auf der Startseite.
- Folgen → Web Push (login-frei): kanal-agnostischer Kern
  (push_endpoints + venue_follows + notification_outbox, Migration 0005),
  Crawler-Auslöser (nur neue Events, best-effort), notification-worker
  (Drain + Ruhezeiten 22–8h + Pruning toter Endpoints), öffentliche
  /api/v1/push/*-Routen, Service Worker + lib/push.ts + Schalter auf
  /gemerkt (iOS-PWA-Hinweis). web-push-Lib (lädt unter Bun).
  Ohne VAPID-Keys bleibt Push schlafend (subscribe→503). Doku:
  docs/NOTIFICATIONS.md. Offen vor Push-Live: VAPID-Keys+SOPS, VVT-Eintrag.

Tests: 112 API + 34 Web grün; api+web type-check grün; web build grün.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 15:51:50 +02:00

60 lines
2.3 KiB
Text

# Seepuls — Lokale Entwicklungs-Konfiguration
# Kopiere nach .env und passe an.
# API-Server
PORT=3095
NODE_ENV=development
BASE_URL=http://localhost:3095
# Web (Astro, später)
WEB_PORT=3096
# Datenbank (lokales Postgres aus docker-compose, exposed auf 5441)
DATABASE_URL=postgresql://seepuls:devpassword@localhost:5441/seepuls
# Plattform-Services
MANA_AUTH_URL=http://localhost:3001
# JWKS-Endpoint von mana-auth (NICHT /.well-known/jwks.json — siehe
# mana-auth/src/middleware/jwt-auth.ts)
MANA_AUTH_JWKS_URL=http://localhost:3001/api/auth/jwks
MANA_SHARE_URL=http://localhost:3072
MANA_LINKS_URL=http://localhost:3073
MANA_EVENTS_URL=http://localhost:3074
MANA_MCP_URL=http://localhost:3069
MANA_CREDITS_URL=http://localhost:3061
MANA_NOTIFY_URL=http://localhost:3066
MANA_RESEARCH_URL=http://localhost:3068
MANA_GEOCODING_URL=http://localhost:3075
MANA_MEDIA_URL=http://localhost:3065
# mana-llm: PORTS.md sagt 3062, mana-llm/CLAUDE.md sagt 3025 — Drift,
# wir folgen der Service-CLAUDE.md (kann bei prod auf llm.mana.how
# überschrieben werden).
MANA_LLM_URL=http://localhost:3025
# Service-Identität — wird beim ersten Deploy von mana-auth generiert
# (POST /api/v1/admin/apps/seepuls/service-keys)
MANA_SERVICE_KEY=msk_test_replace-after-onboarding
# Crawler-User-Agent (Pflicht laut AGGREGATOR_POLICY.md §1)
SEEPULS_CRAWL_USER_AGENT=seepuls/0.0.1 (+https://seepuls.com; kontakt@mana.how)
SEEPULS_CRAWL_INTERVAL_MS=1100
# CORS — wer darf direkt auf das API zugreifen
CORS_ORIGINS=https://seepuls.com,http://localhost:3096
# ── Web Push (Folgen → Benachrichtigung) ──────────────────────────────
# VAPID-Schlüsselpaar erzeugen: `npx web-push generate-vapid-keys`.
# Privaten Key in SOPS/age ablegen. Ohne Keys bleibt Push schlicht aus
# (Worker idle, /push/subscribe → 503), der Rest läuft normal.
SEEPULS_VAPID_PUBLIC_KEY=
SEEPULS_VAPID_PRIVATE_KEY=
SEEPULS_VAPID_SUBJECT=mailto:kontakt@mana.how
# SEEPULS_NOTIFICATIONS=off # Zustell-Worker komplett aus
# SEEPULS_NOTIFY_TICK_MS=20000 # Drain-Intervall (Default 20s)
# Öffentliche API-Basis, die das Web im Browser anspricht (Web-Push-
# Subscribe + iCal-Feed). Muss von der Web-App gesehen werden.
SEEPULS_PUBLIC_API_URL=https://api.seepuls.com
# Verdaccio — für pnpm install gegen pkg.mana.how
NPM_AUTH_TOKEN=