Open Source & Self-Hosted

Distributed Encrypted Storage

Build your own resilient, encrypted storage network across multiple nodes. Self-hosted, secure, and designed for communities and organizations.

Why RedundaNet?

A complete solution for distributed, encrypted storage

🔒

End-to-End Encryption

Your data is encrypted before it leaves your device. Only you hold the keys. Storage nodes cannot read your files.

🌐

Mesh VPN Network

Nodes connect securely via Tinc VPN mesh network. No central server required. Works across NATs and firewalls.

📚

Erasure Coding

Data is split into 10 encrypted shares. Any 3 can reconstruct your file. Survives up to 7 node failures.

🔑

GPG Authentication

Node identity verified via public GPG keyservers. Decentralized trust with no central authority.

🐳

Docker Native

Fully containerized with Docker Compose. Easy deployment, updates, and management on any system.

🖦

Raspberry Pi Ready

Pre-built images for Raspberry Pi. Turn any Pi into a storage node in minutes.

How It Works

Your data is encrypted, split, and distributed across multiple nodes

Data Flow: Upload

Your File

Original data

Encrypt

AES-128

Split

Erasure coding

Share 1
Node A
Share 2
Node B
Share 3
Node C
...
Share 10
Node J

Any 3 of 10 shares can reconstruct your original file.
Storage nodes only see encrypted blobs - they cannot read your data.

1

Client-Side Encryption

Your file is encrypted on your device using AES-128. The encryption key is embedded in the capability URL.

2

Erasure Coding

The encrypted file is split into 10 shares using Reed-Solomon coding. Only 3 are needed to reconstruct.

3

Distributed Storage

Each share is sent to a different storage node over the encrypted VPN mesh network.

4

Capability URL

You receive a capability URL containing the encryption key. Share it to grant access to the file.

Join the Network

Contribute storage and become part of the distributed network

1

Generate Your GPG Key

Create a GPG key pair and publish it to a public keyserver. This is your node's identity.

pip install redundanet
redundanet node keys generate \
  --name my-node \
  --email you@example.com
redundanet node keys publish \
  --key-id YOUR_KEY_ID
2

Submit Application

Fill out the join form with your GPG key ID and storage contribution. This creates a GitHub issue.

Join Form →
3

Wait for Approval

A maintainer reviews your application, verifies your GPG key, and merges the PR to add your node.

4

Set Up Your Node

Once approved, initialize your node and start the services.

git clone github.com/adefilippo83/redundanet
cd redundanet
redundanet init --name node-XXXXX
redundanet sync
docker compose up -d

Architecture

A decentralized architecture with no single point of failure

💻

Your Device

Tahoe-LAFS Client

🔌

Introducer

Node Discovery

💾

Storage Node 1

Encrypted Shares

💾

Storage Node 2

Encrypted Shares

💾

Storage Node N

Encrypted Shares

All nodes connected via encrypted Tinc VPN mesh network

Security Model

Multiple layers of encryption protect your data

🔒 Transport Encryption

All network traffic is encrypted via Tinc VPN using RSA key exchange and AES encryption.

🔐 Storage Encryption

Data is encrypted with AES-128 before upload. Storage nodes only see encrypted blobs.

🔑 Identity Verification

Node identities are verified via GPG keys published to public keyservers. No central authority.

🛠 Capability Security

Access is controlled by cryptographic capability URLs. Possession of the URL grants access.

🍰 Redundant Storage

Erasure coding ensures data survives up to 7 node failures out of 10.

👁 Zero Knowledge

Storage nodes cannot see file contents, names, or metadata. Only encrypted shares.

Get Started

Choose your preferred installation method

🐳 Docker (Recommended)

Run RedundaNet using Docker Compose. Works on any system with Docker installed.

git clone https://github.com/adefilippo83/redundanet.git
cd redundanet
redundanet init --name my-node
docker compose up -d

🐍 PyPI

Install the RedundaNet CLI tool via pip for node management.

pip install redundanet

redundanet node keys generate \
  --name my-node \
  --email you@example.com
redundanet status

🖦 Raspberry Pi

Download our pre-built image, flash it to an SD card, and boot.

# Download from GitHub Releases
# Flash with Raspberry Pi Imager
# Boot and SSH in:
ssh redundanet@redundanet.local
# Password: redundanet