Holochain Forum

Self-host Holochain node on a Linux server

Hello!

I tried looking for info on that but can’t seem to find anything. I have a set of server I run at home, and I would like to host a Holochain node (or a few?).

Is there a Docker container available which I can just spin up? I have a lot of resources to share with the community. Fast/Powerful servers and 1 gig symmetric connection.

Regards.
Juris.

1 Like

Thanks for asking! I’ve been wondering this as well.

Along similar lines if anyone has hosting recommendations and/or devops code, please share. For example, terraform scripts to set up holochain docker nodes on aws fargate … or whatever, just an example.

Tagging @guillemcordoba @lucksus @Connoropolous — I bet one or more of these excellent minds has experience/ideas here.

1 Like

Hey! Thanks!

Yes, this is a big problem with a lot of projects. You want to host a node, but you have to go through 2 hours of manual config hell and a week on forums, trying to figure out why it does not work. A good example of a perfectly working system is STORJ project. I had 0 problems getting it up and running. Docker was fully configured. I just provided a directory for data storage and my Crypto Wallet address, and it is just working. I have tried Harmony One and Cardano ADA, and it is way harder to do, and I just never finished the setup. If we could have a super easy way to set up a node, well, that would be amazing.

I guess we would just need whatever image the Holoport is running, packaged in Docker with ports/dirs/etc… exposed for us to add as a parameter. I am pretty sure devs are already using a Docker when they work on the image that the Holoport is running. So making it available for self-hosting would be amazing.

Mmm I guess you refer more to “hosting happ instances for other users in the holo network”, exactly what a holoport does but in a normal computer. This will be possible for sure, and it will be using the nixos images that the team are building, but as of now they’ve not put energy and emphasys into making that a viable option just yet (we basically are missing documentation and maybe some steps regarding authentication), in the future I’m pretty certain that this will be available.

The simpler case would be running happs in your node that you’re interested in participating in, for example installing a file-storage DHT to share the load. As there is no “one holochain network”, this depends on the happ you want to install/support, and you’re perfectly able to do so by installing said happ in your device.

Hm, maybe it’s different from what you want @rebelCoder; what I actually need right now is to be able to start up a few holochain servers in the cloud for development, non-production purposes:

  1. Start holochain on a linux server in the cloud
  2. That holochain server will be for one user (as I understand the model)
  3. Install apps into that holochain node

@guillemcordoba I am wondering if dockerfiles (or other infrastructure-as-code) exist to do this already? Any similar sample would help me get going down this route.

If not do you have advice on whether to do this using holochain binary, or hc run commands? As I said, this is strictly development mode stuff, but I do want to launch on servers that are not my local machine, so others can hit the demo as well.

Mmm right, yes you can do that, but from the perspective of holochain that would be only one agent. For the moment I’ve not gone this route because it makes development weird - you have to code differently for only one node, it’s much more like a centralized architecture and it forces you to code with assumptions that will shift completely once both release paths are available to us: the holochain binary and holo host.

I guess the closest thing I have is the compository docker image, which I think does everything you have specified. You can also look at the execute.sh to see how I use hc to configure everything on the first run of the container.

1 Like

Oh also, I’m using my holoport rather than some cloud instance to run the container to have at least one node always on in the compository.

1 Like

Thanks @guillemcordoba, excellent advice as usual, will give that a try. :grin: