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.
| Variable | Default | Description |
|---|---|---|
| DATABASE_URL | file:/app/data/dev.db | Pfad zur SQLite-Datenbankdatei |
| AUTH_SECRET | - | Secret für Session-Verschlüsselung (erforderlich) |
| NEXTAUTH_URL | http://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).
| Variable | Default | Description |
|---|---|---|
| BACKGROUND_SYNC_INTERVAL_MINUTES | 5 | Wie oft der Scheduler prüft |
| DISABLE_BACKGROUND_SYNC | unset | Auf true setzen für externen Cron |
| SYNC_SECRET | unset | Bearer-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/syncLokale 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 generateDev-Server starten:
pnpm run devTech Stack
Framework
Next.js (App Router)
Auth
Auth.js (NextAuth v5)
Datenbank
Prisma + SQLite
Styling
Tailwind CSS + shadcn/ui
State
TanStack Query