Blame is a web app that offers an email search service from an archive. This
project is related to blaze and its email archiving system. From an
archive, the user can launch the blame.hvt unikernel (Solo5) to
obtain a web interface (on the specified IPv4 address) that allows them to
search for emails by keyword.
For more details about this unikernel, you can read our article about how we developped it and what is the outcome.
To use it, you will need to install blaze and solo5 in order to create an
archive and launch the unikernel.
blaze can create an archive from emails (in CRLF format) such as:
$ cat >emails.txt<<EOF
path/to/my/email0.eml
path/to/my/email1.eml
path/to/my/email2.eml
...
EOF
$ blaze pack make -o pack.pack --align=512 < emails.txtFor more details on the archive system, please refer to our article on this subject.
Next, you need to create a tap interface so that it can be used by the unikernel and so that the latter is accessible from the network.
sudo ip link add name service type bridge
sudo ip addr add 10.0.0.1/24 dev service
sudo ip tuntap add name tap0 mode tap
sudo ip link set tap0 master service
sudo ip link set service up
sudo ip link set tap0 upYou need to install blame with opam pin (it's actually not possible to
install blame with a sandboxed environment). Finally, you can launch the
unikernel with Solo5 and your archive:
$ opam pin add https://github.com/robur-coop/blame
$ solo5-hvt --mem=512 --net:service=tap0 --block:archive=pack.pack -- \
$(opam var bin)/blame.hvt --ipv4=10.0.0.2/24 --color=alwaysA website is then accessible at the specified address (in our example, 10.0.0.2). The webapp starts by downloading (from the unikernel) a whole bunch of information and finally offers a search bar and a list of emails (downloadable) available from your archive.
If you would like more details about the search engine, please read our article on this topic.