Simple app that mimics Pocket app. Made by Emacs entusiast, for other Emacs entusiasts, and fans of free, open source software, who want to own their collection of articles, and private notes - instead of sharing them with closed source, profit oriented 3rd party company.
By default, this app has to be used together with Syncthing and Emacs (or other org-mode files editor).
The app watches for changes in org-mode file DOWNLOAD_FILE (see .env.example), and downloads every URL provided as a heading title.
By default Monolith is used for downloading webpages, and is required for the app to run.
Downloaded websites are stored in WWW_STORE (see .env.example).
After downloading all the websites listed in DOWNLOAD_FILE, the file is emptied, and the app watch for new records to process. References and links to downloaded files are inserted on the front of POCKET_FILE.
The app detects duplicate URLs and inhibits from downloading them.
This file should be copied to .env
. Default variables values can be used. Their meaning is:
- DB_DIR - folder that contains all files used by the app
- POCKET_FILE - org-mode file that contains records and links to locally archivised webpages
- DOWNLOAD_FILE - org-mode file that is watched for new URLs to download
- WWW_STORE - here downloaded webpages are stored
As this app relies on NodeJS fs.watch API, it requires one of notification systems, dependent on the OS you plan to host this app - check list of options.
Other requirements:
- Download repo
- run
npm i
- copy
.env.example
to.env
npm start
The app is meant to be used together with Syncthing on VPS, laptop and mobile. VPS as a DB_DIR host, share it with other devices. URLs to download can be added via Emacs org-capture
command on desktop, and via Orgzly notes capture feature on mobile.
After files are synced with the VPS, the app processes DOWNLOAD_FILE, archive all URLs, and share it across devices, together with POCKET_FILE which is used as an access point to downloaded wepages (thanks to org-mode links), also as a place for storing related notes, and tags.
VPS may be skipped, and both devices can communicate directly if needed, but personally I found having always online VPS as a sharing instance preferable solution.
- trigger Syncthing rescan event after processing entire queue
- create additional archive with archive.org if URL is not already archive.org archive