omnivore README

The project's README from github.com/omnivore-app/omnivore. As one markdown file: README.md.

Omnivore

GitHub Workflow Status Discord Mastodon Follow Twitter Follow GitHub

Omnivore Logo

Omnivore is a complete, open source read-it-later solution for people who like text.

[!IMPORTANT]
Omnivore is now a completely Self-Hosted application. The Cloud application was deprecated in November of 2024. The community still exists on Discord, and we endeavour to keep things updated and bug-fixes ongoing.

We built Omnivore because we love reading and we want it to be more social. Join us!

Every single part is fully open source! Fork it, extend it, or deploy it to your own server.

A guide for running a self hosted server can be found here

web-screenshot-listview

omnivore-discover

Join us on Discord! :speech_balloon:

We're building our community on Discord. Join us!

Shoutouts :tada:

Omnivore takes advantage of some great open source software:

Shoutouts: Community 🧑‍🤝‍🧑

And of course...

and many more who contributed in the past. If you feel like your name is missing from this list, please contact me (Podginator) via our Discord.

How to deploy to your own server

A guide for running a self hosted server can be found here

How to setup local development :computer:

The easiest way to get started with local development is to use docker compose up. This will start a postgres container, our web frontend, an API server, and our content fetching microservice.

Requirements for development

Omnivore is written in TypeScript and JavaScript.

Running the web and API services

1. Start docker compose

git clone https://github.com/omnivore-app/omnivore
cd omnivore/self-hosting/docker-compose/self-build
docker compose up

This will start postgres, initialize the database, and start the web and api services.

2. Open the browser

Open http://localhost:3000 and confirm Omnivore is running

3. Login with the test account

During database setup docker compose creates an account [email protected], password: demo_password.

Go to http://localhost:3000/ in your browser and choose Continue with Email to login.

Frontend Development

If you want to work on just the frontend of Omnivore you can run the backend services with docker compose and the frontend locally:

docker compose up api content-fetch
cd packages/web
cp .env.template .env.local
yarn dev

You will need to configure some values in the new .env.local file. These are the values for running the web service directly on your host machine and running api and content-fetch within docker:

NEXT_PUBLIC_BASE_URL=http://localhost:3000
NEXT_PUBLIC_HIGHLIGHTS_BASE_URL=http://localhost:3000
NEXT_PUBLIC_LOCAL_BASE_URL=http://localhost:3000
NEXT_PUBLIC_SERVER_BASE_URL=http://localhost:4000
NEXT_PUBLIC_LOCAL_SERVER_BASE_URL=http://localhost:4000

Running the puppeteer-parse service outside of Docker

To save pages you need to run the puppeteer-parse service.

1. Install and configure Chromium

brew install chromium --no-quarantine
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
export CHROMIUM_PATH=`which chromium`

2. Navigate to the service directory, setup your env file, and install dependencies

cd packages/puppeteer-parse
cp .env.example .env
yarn

3. Start the service

yarn start

This will start the puppeteer-parse service on port 9090.

In your browser go to http://localhost:3000/home, click the Add Link button, and enter a URL such as https://blog.omnivore.work/p/getting-started-with-omnivore.

You should see a Chromium window open and navigate to your link. When the service is done fetching your content you will see it in your library.

License

Omnivore and our extensions to Readability.js are under the AGPL-3.0 license.

omnivore (omnivore-app/omnivore)

Searching Database…

16.3K ·GitHub
Что это?Omnivore — open source приложение типа «прочитать позже»: вы сохраняете статьи, PDF и выпуски рассылок в личную очередь чтения, а потом читаете их с выделениями, заметками, метками и поиском.
Это просто сайт или есть и приложения?И то и другое: есть веб-приложение на Next.js, нативное приложение для iOS, приложение для Android плюс PWA, а также браузерные расширения для Chrome, Safari, Firefox и Edge. Все они работают с вашим собственным self-hosted сервером.
Как запустить свой экземпляр?Есть гайд по запуску self-hosted сервера, а для локальной разработки весь стек поднимается командой docker compose up — она запускает Postgres, веб-фронтенд, API-сервер и микросервис загрузки контента, а также создаёт для вас демо-логин.
Что нужно на машине, чтобы это запустилось?Docker для compose-стека. Для работы над кодом нужны Node.js v24.19 и Yarn (версиями управляет Volta), плюс Chromium, который используется парсером сохранения страниц.
Осталась ли облачная версия, куда можно просто зарегистрироваться?Нет — облачное приложение закрыли в ноябре 2024 года, и теперь Omnivore — полностью self-hosted приложение. Сообщество поддерживает обновления и исправление багов, так что рассчитывайте запускать и поддерживать свой экземпляр самостоятельно.
Я читаю с телефона в метро — будет ли работать без интернета?Да, офлайн-поддержка — одна из ключевых функций, так что сохранённая очередь чтения остаётся доступной без подключения к сети.
Если я доработаю его под свой сервер, нужно ли публиковать изменения?Да — Omnivore и его расширения к Readability.js распространяются по лицензии AGPL-3.0, поэтому использование по сети считается распространением, и вы обязаны предоставить исходники своей изменённой версии.
Как статьи вообще попадают в мою очередь?Через кнопку Add Link в веб-приложении, через браузерные расширения или пересылкой выпусков рассылок по email. Сохранение идёт через микросервис puppeteer-parse, который загружает и рендерит страницу в Chromium (в dev-режиме порт 9090).
Он интегрируется с Obsidian или Logseq?Да, и с тем и с другим — есть официальный плагин для Logseq и официальный плагин для Obsidian, чтобы переносить туда свои выделения и заметки.
Может ли он читать статьи вслух?Функция озвучки текста поддерживается, но пока только в приложении для iOS.
Size
391.2 MB
Stars
16.3K
Age
4y
Commits · 90 Days