Hansip: Supporting SQLite, S3 Storage and Multi Configuration Path Locations

Today I want to share about a new release that brings out many interesting features for Hansip!

GitHub - slaveofcode/hansip: Group file sharing using End-to-End Encryption
Group file sharing using End-to-End Encryption. Contribute to slaveofcode/hansip development by creating an account on GitHub.
If you are new here about Hansip, you may take a look the previous post that describes what is Hansip and How it's work

As the primary focus of the Hansip project is to support simple E2E file encryption, I don't want to get overwhelmed with the project setup, especially when it's required to use postgresql database.

Postgresql is Good...eventually 🐘

Don't get me wrong, I love postgres, so much... but as the main focus of this project is to show you the how the encryption works behind the scene, the most notably thing is the database itself, Postgres.

Postgresql is good, but not at the beginning. You want a simple steps (and resource) when start to play and do an experiment with Hansip, meaning users avoiding the "Big Effort" to setup from the start.

Now by default Hansip will using SQLite3 as a database. There's also some configuration available to adjust the location of the SQLite location storage.

db:
  type: sqlite # or postgresql

sqlite:
  path: ./hansip.db # placed inside the current project folder
config.yaml

AWS S3 Storage! 🗄

Another interesting update is now you can use S3 as a file storage!

You can set the config.yaml for the S3 configuration.

storage:
  type: s3

aws:
  region: <your-region>
  s3:
    bucket_name: <your-s3-bucket>
    access_key: <your-aws-access-key>
    secret_key: <your-aws-secret-key>
config.yaml

The configuration tells Hansip to switch over from filesystem storage to s3 and by this change you must also set the required parameter for Hansip to connect with Your S3 bucket.

Multi Configuration Paths ⚙️

When working with Hansip, There's something that I want to be available on the feature, the multi configuration path.

This may a simple approach but it has big benefit when we want to deploy the application on the server. Hansip will look into these three paths for the configuration.

./config.yaml The current project directory

$HOME/.hansip/config.yaml User level configuration

/etc/hansip/config.yaml System level configuration

The configuration is ordered from top to bottom, so when we have a system level configuration, and starting another Hansip instance with config.yaml within the project directory, it will not interfered by the system configuration.

Thank you!

That's it, hopefully these updates will make you happy and boost more productifity! also don't forget to visit the project repository!

GitHub - slaveofcode/hansip: Group file sharing using End-to-End Encryption
Group file sharing using End-to-End Encryption. Contribute to slaveofcode/hansip development by creating an account on GitHub.