Skip to content

A dockerized self-hosted backup node for anytype

License

Notifications You must be signed in to change notification settings

clems4ever/anytype-backup-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnyType Dockerized Backup Node

AnyType is this incredible note-taking app that was released in the opensource.

This project aims to spawn a AnyType self-hosted dockerized backup node for keeping your personal data private on your own devices and network. Note that keeping the data on AnyType servers is fine in terms of security and privacy because it is end-to-end encrypted. However, having a self-hosted backup node provides an extra layer of security as well as a bigger space than 1GB for storing files but at the non-negligible cost of maintaining the infrastructure.

Please note that, as easy as it is to spawn a backup node with this project, it is not the only thing to do to end up with a fully working self-hosted setup including clients. I would highly advise not to use this project if you do not have a deep understanding of the internals of anytype because fixing and upgrading this infrastructure is not an easy thing. Moreover, you will still need to build the clients for your devices, which is definitely not a no-brainer.

This project is my own independant contribution to the Anytype project, therefore it is not maintained by the Anytype team.

Disclaimer of Liability

Please be advised that by using this project, you agree to do so at your own risk. While every effort has been made to ensure the integrity and security of the code, I cannot be held liable for any damage, loss, or corruption of data that may occur as a result of using this project. It is strongly recommended that you back up all important data and thoroughly review the code and documentation before implementation. By proceeding with the use of this project, you acknowledge and accept full responsibility for any and all potential consequences.

Getting Started

With the Liability disclaimer out of the way, let's first make sure Docker and docker-compose are installed on your machine before anything else.

Then, download the latest release of anytype-backup-node. On Linux and Mac, make sure you make the binary executable with

chmod +x anytype-backup-node_Linux_x86_64

You can now run the following command to generate a default configuration that you can edit before spawning the infrastructure.

# generate the default config.yml file.
./anytype-backup-node_Linux_x86_64 init

Once the configuration file is ready, run the following command to bootstrap the services of the backup node.

# spawn the services.
./anytype-backup-node_Linux_x86_64 bootstrap

Now, you should have all services running. However, as documented above you need to build the clients for your devices with the proper anytype configuration. The anytype configuration files including heart.yml are accessible for your to review in configurations/ unless you modified the path in your configuration.

This project does not build the clients because the Anytype team is working on a way to  customize the clients without rebuilding them and it will be released soon enough.

Where is the Dockerfile and docker-compose.yml?

The files are embedded in the go application that you can download from the release tab but if you want you can check the source of the Dockerfile and the docker-compose.yml file.

Contributions and testing

This project has been tested on a Linux server. I've manually verified that the space is synced and that files are stored in the file node by checking the content of MinIO and Redis.

Those tests are not automated yet so if you are willing to contribute, make sure you fully test your changes yourself and prove it with some automated tests or at least some screenshots.

Next

  • Authenticate redis

Sponsorship

You can thank me by sponsoring me on Github

or

You can buy me a beer in the crypto sphere on Ethereum or Polygon at 0x92a9C9e6a418712252fB5996CfE3391a7baBBffB.

License

This project is licensed under the MIT license.