README.md
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
We're building our community on Discord. Join us!
Read more about Omnivore on our blog. https://blog.omnivore.work/p/getting-started-with-omnivore
Omnivore takes advantage of some great open source software:
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.
Check out our docs for information on importing your data from other apps.
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.
Omnivore is written in TypeScript and JavaScript.
git clone https://github.com/omnivore-app/omnivore
cd omnivore
docker compose up
This will start postgres, initialize the database, and start the web and api services.
Open http://localhost:3000 and confirm Omnivore is running
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.
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
To save pages you need to run the puppeteer-parse service.
brew install chromium --no-quarantine
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
export CHROMIUM_PATH=`which chromium`
cd packages/puppeteer-parse
cp .env.example .env
yarn
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.
A guide for running a self hosted server can be found here
Omnivore and our extensions to Readability.js are under the AGPL-3.0 license.