Skip to content
This repository was archived by the owner on Jul 7, 2026. It is now read-only.

Latest commit

 

History

History
72 lines (48 loc) · 2.44 KB

File metadata and controls

72 lines (48 loc) · 2.44 KB

OmniFeed

OmniFeed is an intelligent personal dashboard for aggregating and managing multimedia content.

Features

  • Minimalist Vite+React+Tailwind frontend with glassmorphic cards and collapsible sidebar
  • Express backend with REST API for triggering n8n workflows and managing Smart Filters
  • Dynamic plugin architecture with runtime module loading
  • n8n workflows for Music, RSS, Podcasts, and YouTube
  • Docker Compose setup for frontend, backend, n8n workflow engine, and Postgres storage
  • CI/CD via GitHub Actions: linting, testing, and Docker image builds
  • First-run configuration wizard for account linking, feed discovery, notifications, and advanced settings
    • Onboarding state persists via /api/settings/onboarding

Getting Started

Prerequisites

  • Node.js v18+
  • Docker & Docker Compose

Local Development

  1. Copy the sample backend environment file and adjust credentials as needed:

    cp backend/.env.example backend/.env
  2. Install dependencies and start services via VS Code Tasks:

    • Install Frontend Dependencies
    • Start Frontend Dev
    • Install Backend Dependencies
    • Start Backend Dev
  3. Alternatively, use Docker Compose:

docker-compose up --build

Run database migrations with `npm run migrate` inside the backend directory.

Testing

  • Backend: cd backend && npm test (defaults to an in-memory SQLite store when NODE_ENV=test). Ensure dependencies are installed (npm install) before running.
  • Frontend: tests are not yet configured; coordinate with the team before introducing Vitest or similar tooling.

Documentation

Contributing

Please submit PRs against main. Ensure linting and tests pass before merging.

Performance Profiling

Start the backend with PROFILING=true npm run dev to log request durations.

Operations

  • Health check: curl http://localhost:4000/healthz (returns status, loaded plugins, timestamp).
  • Feed preview: curl http://localhost:4000/api/feeds for the latest snapshot (/api/feeds/music, /api/feeds/news, etc. for specific streams).
  • Logs: set LOG_LEVEL=debug to increase verbosity; request IDs are emitted via x-request-id headers and structured logs.