immudb Blog Posts

libfuse meets immudb to create a versioned and tamperproof filesystem - immudb

Written by dennis | Sep 13, 2022 7:25:14 AM

Adam, one of our fantastic developers at Codenotary wrote a cool proof of concept to mount immudb, the open source immutable database in a filesystem using libfuse.

This Python project enables you to use a normal Linux filesystem mount to store files tamperproof and versioned in immudb.

https://github.com/Razikus/immufs

You can watch a short tutorial video here: https://asciinema.org/a/519412

Setup

To run the immufs project the first thing you need to start is an immudb instance. You can read more in the documentation page of immudb: docs.immudb.io

Make sure to install all the dependencies and the libfuse-dev OS packages.

git clone https://github.com/Razikus/immufs.git
cd immufs
pip3 install -r requirements.txt

# Debian or Ubuntu
apt install -y libfuse-dev
# lets run a local immudb docker container that listens on the immudb standard port 3322
docker run -p 3322:3322 -d codenotary/immudb:1.3.2

The default credentials are immudb:immudb, but you can change that using the immuadmin command. There is also a database initialized when starting immudb that is called defaultdb.

Start immufs

You can find a start.sh script in the repository but its simply a shortcut for the following command:

# when immudb is running on the same host
python3 -m immufs.immufs /immufs -o serverurl=localhost:3322 -o login=immudb -o password=immudb -o database=defaultdb


# when immudb is running on another system
python3 -m immufs.immufs /immufs -o serverurl=<ip or dns name>:3322 -o login=immudb -o password=immudb -o database=defaultdb

Now you can work within the mountpoint /immufs and the backend is immudb.

Summary

As this is a proof of concept, don’t expect it to be production ready or without any limitations. You can look into the feature list that is updated on a regular basis: https://github.com/Razikus/immufs#features

Feel free to try immufs, share your use cases or issues with us