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.
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