Prerelease: v1.0.0-rc1

How to Contribute

Hashiverse has no company behind it and no servers of its own. Its resilience, availability, and censorship resistance are entirely a function of how many independent servers exist in the network. Every node you add makes the network harder to attack, harder to silence, and more useful for everyone on it. If you believe in what Hashiverse is trying to be, running a server is the most direct way to help.

The good news: it costs about as much as a cup of coffee a month. And if you want to contribute more, the right move is to run more servers, not a bigger one — ten $5 machines spread across different providers and regions are far more valuable to the network than one $50 machine.

What you need

Any cheap VPS from any provider will do — Hetzner, DigitalOcean, Vultr, Linode, and many others offer suitable machines for around $5/month. The minimum requirements are modest:

CPU and RAM requirements are minimal — the server is written in Rust and is designed to run efficiently on the smallest available instance sizes.

Installing and running the server

An important point to mote is that when you fire up a server, it has to do some significant Proof of Work before it is designated a trusted spot in the Hashiverse network. So don't be surprised if for the first few hours you CPU is at max and the logs keep talking about PoWs, iters, and ETA.

We recommend any standard linux server. Ubuntu works nicely, either 2024, or 2026. Paste the following into the startup script / user-data / cloud-init field when you create your server (the name varies by provider). It installs Docker, opens the firewall, writes the compose file, and brings the stack up.

#!/usr/bin/env bash
set -euo pipefail

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y docker.io docker-compose-v2 ufw

ufw allow 22/tcp
ufw allow from 0.0.0.0/0 to any port 443 proto tcp
ufw --force enable

mkdir -p /opt/hashiverse && cd /opt/hashiverse

cat > docker-compose.yml <<"YAML"
services:
  hashiverse-server:
    image: ghcr.io/hashiverse/hashiverse-server:latest
    restart: unless-stopped
    ports:
      - "0.0.0.0:443:443"
    cap_add:
      - NET_ADMIN
    volumes:
      - ./data:/data
    logging:
      driver: local
      options:
        max-size: 10m
        max-file: "5"

  watchtower:
    image: nickfedor/watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 3600
YAML

docker compose pull
docker compose up -d

Watchtower will keep the server automatically updated as new versions are released. The NET_ADMIN capability is required for the server's built-in DDoS protection, which uses ipset and iptables to drop traffic from abusive IPs at the kernel level. The ./data volume is where the server persists its identity and stored encrypted posts — keep this safe if you care about continuity, although Hashiverse is designed to heal itself if you destroy a server and fire up a new one.