https://github.com/punchagan/elfeed-offline
Offline reading for elfeed posts using a Service Worker
https://github.com/punchagan/elfeed-offline
elfeed elfeed-rss-reader offline-first rss-reader
Last synced: 2 months ago
JSON representation
Offline reading for elfeed posts using a Service Worker
- Host: GitHub
- URL: https://github.com/punchagan/elfeed-offline
- Owner: punchagan
- License: agpl-3.0
- Created: 2025-11-03T18:22:22.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-02-26T11:18:40.000Z (4 months ago)
- Last Synced: 2026-02-26T11:36:38.925Z (4 months ago)
- Topics: elfeed, elfeed-rss-reader, offline-first, rss-reader
- Language: OCaml
- Homepage: https://elfeed-offline.muse-amuse.in/
- Size: 814 KB
- Stars: 8
- Watchers: 0
- Forks: 2
- Open Issues: 11
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
* Elfeed-offline
Offline reading for Elfeed posts using a Service worker
I wrote a blog post [[https://punchagan.muse-amuse.in/blog/offline-friendly-elfeed-web-ui/][here]] with more details on the motivation to build it and an
overview of how it works.
** Installation Instructions
- Configure [[https://github.com/skeeto/elfeed/][Elfeed]] and start the Elfeed web server using ~M-x elfeed-web-start~
in Emacs.
- Install the latest version of [[https://nightly.dune.build/][dune nightly]]. (works only on Linux and MacOS,
currently)
- Clone the project
- ~dune~ (unlike ~opam~) doesn't automatically manage external (system)
dependencies. You can run ~dune show depexts~ to see the external
dependencies, and install them using your system's package manager (like
~apt~, ~homebew~, etc.)
- Run ~dune build~. This will install all the dependencies including an OCaml
compiler, and could take a while.
** Usage Instructions
- Set ~ELFEED_USERNAME~ and ~ELFEED_PASSWORD~ environment variables to restrict
access to yourself.
- Run ~dune exec -- elfeed-offline~ to start the Dream server
- Run the ~scripts/make-cert.sh~ script to create SSL certificates. This is
necessary for the service worker to work correctly, when accessing from a
different device than the server. Follow the instructions in the script to
copy and add the additional certificates to your mobile phone.
- Access the server in your browser. Use ~https://.local:9000~ to
have everything working even with dynamic IPs.
- Wait for a few seconds to make sure everything is cached in the browser for
offline reading.
- Enjoy reading!