∂ part of node [[promnesia-howto]]

promnesia howto

In this howto I'll try to document my experience getting Promnesia from zero to fully up and running and integrated with my [[personal knowledge management]] system and the [[agora]].

From [[go/promnesia/git]], which I will be following in this procedure:

"[[Promnesia]] is a [[browser extension]] for Chrome and Firefox which serves as a web surfing copilot, enhancing your browsing history and web exploration experience"

I would myself qualify this a bit and say that Promnesia is a tool with several legs, one of which is the browser extension; to get the full benefits, you also need to install a local process in your machine (a "backend"). In any case, let's begin:

  • Install the browser extension component.
    • Currently supported are Firefox and Chrome. Choose one :) I use Firefox.
  • Install the local process.
    • On Linux, type in your terminal: pip3 install --user promnesia bs4 lxml mistletoe logzero. If pip3 is not found, please refer to [[pip]] to install it.
    • On OSX: should be the same.
    • On Windows: unsure. I have a Windows install so I might give it a try soon and report back; [[let me know]] if you are interested and I'll prioritize this.
  • Configure the local process.
  • Configure the periodic indexer. This means adding a [[cronjob]] that runs promnesia index. I run mine every 10 minutes.
    • crontab -e and add the following
    • */10 * * * * ~/.local/bin/promnesia index >/tmp/promnesia-index-stdout.log 2>/tmp/promnesia-index-stderr.log
  • Start the local process.
    • promnesia serve
    • Note that the indexer must have run at least once for this to work; run it manually once if in doubt (promnesia index).
  • Make the local process sticky across reboots.
    • promnesia install-server
  • Enjoy!

Thoughts / asides:

  • love the pip3 based install. love promnesia install-server to set up systemctl!
  • It might be good to just make optional dependencies default, so that pip3 install --user promnesia suffices?
  • I got this exception when trying to run promnesia after updating my config:
    • AssertionError: /home/flancian/.local/share/promnesia/promnesia.sqlite
    • It was because I had forgotten to run the indexer :) The documentation does say to bring up the indexer first though, my bad.
  • Merging auto and guess in the config does sound like a good idea (as per the comment in the [[promnesia config]]).
  • promnesia index mostly works, yields 8601 visits but 7 errors:
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:101]     'RuntimeError' object has no attribute 'norm_url'
[ERROR   2021-04-30 14:14:26 promnesia __main__.py:102] 7 errors, exit code 1

Unsure how to debug further except going in and adding more logging in __main__.py.