GitHunt
PU

punchagan/elfeed-offline

Offline reading for elfeed posts using a Service Worker

  • 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!

Languages

OCaml80.4%HTML11.2%CSS5.9%Shell1.8%Dune0.8%

Contributors

GNU Affero General Public License v3.0
Created November 3, 2025
Updated February 26, 2026
punchagan/elfeed-offline | GitHunt