Skip to content

zachyzissou/omnireader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors