Zurück zur Startseite

Selbst-Hosting Anleitung

FeedFerret in wenigen Minuten auf deinem eigenen Server starten.

Schnellstart mit Docker

Der schnellste Weg, FeedFerret zum Laufen zu bringen.

Stelle sicher, dass Docker und Docker Compose installiert sind.

Erstelle ein neues Verzeichnis und füge eine docker-compose.yml hinzu:

version: "3.8"

services:
  feedferret:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: feedferret
    restart: always
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=file:/app/data/dev.db
      - AUTH_SECRET=${AUTH_SECRET}
      - AUTH_TRUST_HOST=true
      - NEXTAUTH_URL=http://localhost:3000
    volumes:
      - feedferret_data:/app/data

volumes:
  feedferret_data:

Generiere ein Secret und starte die Services:

export AUTH_SECRET=$(openssl rand -base64 32)
docker-compose up -d --build

Öffne http://localhost:3000 und erstelle dein erstes Konto.

Umgebungsvariablen

Konfiguriere FeedFerret nach deinen Bedürfnissen.

VariableDefaultDescription
DATABASE_URLfile:/app/data/dev.dbPfad zur SQLite-Datenbankdatei
AUTH_SECRET-Secret für Session-Verschlüsselung (erforderlich)
NEXTAUTH_URLhttp://localhost:3000Öffentliche URL deiner Instanz
GOOGLE_CLIENT_ID-Google OAuth Client ID (optional)
GOOGLE_CLIENT_SECRET-Google OAuth Client Secret (optional)
GITHUB_ID-GitHub OAuth App ID (optional)
GITHUB_SECRET-GitHub OAuth App Secret (optional)

Hintergrund-Sync

FeedFerret synchronisiert Feeds automatisch — kein externer Cron nötig.

Ein integrierter Scheduler aktualisiert Feeds beim Start. Er respektiert die Update-Frequenz jedes Feeds (pro Feed → Kategorie → User → 60 Min Standard).

VariableDefaultDescription
BACKGROUND_SYNC_INTERVAL_MINUTES5Wie oft der Scheduler prüft
DISABLE_BACKGROUND_SYNCunsetAuf true setzen für externen Cron
SYNC_SECRETunsetBearer-Token für /api/sync Endpoint

Bei mehreren Replicas den eingebauten Scheduler deaktivieren und externen Cron verwenden:

DISABLE_BACKGROUND_SYNC=true
SYNC_SECRET=$(openssl rand -hex 32)
# crontab:
# */5 * * * * curl -fsS -H "Authorization: Bearer $SYNC_SECRET" https://your.host/api/sync

Lokale Entwicklung

FeedFerret aus dem Quellcode für Entwicklung starten.

Node.js 20+, pnpm, SQLite (eingebaut)

Repository klonen und Abhängigkeiten installieren:

git clone https://github.com/moby3012/feedferret.git
cd feedferret
pnpm install

.env-Datei erstellen:

DATABASE_URL="file:./prisma/dev.db"
NEXTAUTH_SECRET="your-super-secret-key"
NEXTAUTH_URL="http://localhost:3000"

Datenbank initialisieren:

pnpm exec prisma db push
pnpm exec prisma generate

Dev-Server starten:

pnpm run dev

Tech Stack

Framework

Next.js (App Router)

Auth

Auth.js (NextAuth v5)

Datenbank

Prisma + SQLite

Styling

Tailwind CSS + shadcn/ui

State

TanStack Query

FeedFerret on GitHub

github.com/moby3012/feedferret