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 是一个开源的稍后读应用:你可以把文章、PDF 和邮件订阅内容存进个人阅读队列,之后阅读时可以划重点、写笔记、打标签和搜索。
它只是一个网站,还是有配套的客户端?都有:除了 Next.js 网页应用,还有原生 iOS 应用、Android 应用和 PWA,另外还有 Chrome、Safari、Firefox 和 Edge 的浏览器扩展。所有这些都可以连接你自己的自托管服务器。
我怎么把自己的实例跑起来?官方有自托管服务器的搭建指南;本地开发的话,用 docker compose up 就能把整套服务跑起来 — 它会启动 Postgres、Web 前端、API 服务器和内容抓取微服务,并自动创建一个演示账号。
电脑上需要先装好什么才能跑?跑 compose 套件需要 Docker。如果要参与开发,还需要 Node.js v24.19 和 Yarn(版本由 Volta 管理),另外还要装 Chromium,因为保存网页的解析器依赖它。
还有可以直接注册使用的在线托管版吗?没有了 — 云端版已在 2024 年 11 月停止服务,Omnivore 现在是一个纯自托管应用。社区仍在持续推送更新和修复 bug,但你要自己运行和维护自己的实例。
我常在地铁上用手机阅读 — 没有网络也能用吗?可以,离线支持是它的核心功能之一,保存的内容在没有网络的情况下也能照常阅读。
如果我为了自己的服务器做了修改,必须公开这些改动吗?是的 — Omnivore 及其对 Readability.js 的扩展都采用 AGPL-3.0 协议,通过网络提供服务也算分发,所以你必须提供修改后版本的源代码。
文章是怎么进入我的阅读队列的?可以通过网页应用里的 Add Link 按钮、浏览器扩展,或者把邮件订阅内容转发进来。保存操作由一个 puppeteer-parse 微服务完成,它用 Chromium 抓取并渲染页面(开发环境端口是 9090)。
它能对接 Obsidian 或 Logseq 吗?两个都支持 — 有官方 Logseq 插件和官方 Obsidian 插件,可以把你的划重点和笔记导入这些工具。
它能把我存的文章读出来吗?支持文字转语音,但目前只有 iOS 应用有这个功能。
Size
391.2 MB
Stars
16.3K
Age
4y
Commits · 90 Days