Skip to main content

Private, encrypted, distributed storage across your own machines

Project description

CI

FireCloud

Private, encrypted, distributed storage across machines you own.

Unlike S3 (vendor lock-in), Syncthing (no erasure coding), or IPFS (public DHT), FireCloud gives you zero-knowledge peer-to-peer storage where data is encrypted locally before it leaves your machine. Every chunk stored on the network is ciphertext — nodes can't read it.


Install

# from GitHub (recommended for now)
pip install git+https://github.com/rajashekharsunkara/firecloud.git

# with RAG extensions
pip install "firecloud-devnet[rag]"

# with MLOps extensions
pip install "firecloud-devnet[mlops]"

Quickstart

# 1. Start a 4-node network via Docker Compose
git clone https://github.com/rajashekharsunkara/firecloud.git
cd firecloud
cp .env.example .env          # set FIRECLOUD_PASSPHRASE in .env
docker compose up -d           # starts bootstrap + 3 storage nodes

# 2. Upload a file
docker exec firecloud-bootstrap firecloud upload /data/my-file.zip

# 3. Download from any node
docker exec firecloud-node-1 firecloud download <file_id> /data/restored.zip

Architecture

┌─────────────────────────────────────────┐
│  fc-rag (Private RAG — opt-in)          │  LLMOps
│  fc-mlops (Artifact Store — opt-in)     │  MLOps
│  Docker + GitHub Actions                │  DevOps
│  FireCloud Core (storage, crypto, P2P)  │  Distributed Systems
└─────────────────────────────────────────┘

Distributed Systems — XChaCha20-Poly1305 encryption, FastCDC content-defined chunking, zfec erasure coding, mDNS peer discovery. Manifest consistency uses Lamport timestamps with last-writer-wins semantics. Node communication runs over TLS-protected binary RPC.

DevOps — Multi-node Docker Compose setup with health checks. GitHub Actions CI pipeline (lint → test → build) gates every merge.

MLOpsfc-mlops provides version-tracked ML artifact storage via FireCloud's Node API, a FastAPI telemetry endpoint with psutil system metrics, and IsolationForest-based anomaly detection on telemetry readings.

LLMOpsfc-rag is a fully local RAG pipeline using fastembed for embeddings, Qdrant (embedded mode) for vector search, and Ollama for local LLM inference — no text ever leaves your machine.


Security

FireCloud uses HMAC-SHA-256 with a network-derived key for chunk addressing instead of plain SHA-256. This raises the cost of confirmation-of-file attacks — an attacker who suspects a specific file is stored cannot verify its presence by computing chunk hashes from the plaintext, because valid chunk IDs require the network key. This protection holds as long as the network key remains confidential.


AI/ML Extensions

FireCloud stores and retrieves encrypted content. The RAG and artifact layers run entirely on the client — nothing in plaintext crosses the server boundary.

Private RAG (fc-rag)

Index your docs locally and query with a private LLM — no data leaves your machine.

pip install "firecloud-devnet[rag]"
fc-rag index ./docs
fc-rag query "How does FireCloud handle node departure?"

MLOps Artifact Store (fc-mlops)

Version-track ML models, datasets, and checkpoints using FireCloud as the storage backend.

pip install "firecloud-devnet[mlops]"
fc-ml save ./model.pt --name resnet --version 1.0.0 --type model --metric accuracy=0.94
fc-ml simulate-failure

Development

git clone https://github.com/rajashekharsunkara/firecloud.git
cd firecloud
pip install -e ".[dev]"
pytest tests/ -v

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firecloud_devnet-0.1.0.tar.gz (56.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firecloud_devnet-0.1.0-py3-none-any.whl (49.5 kB view details)

Uploaded Python 3

File details

Details for the file firecloud_devnet-0.1.0.tar.gz.

File metadata

  • Download URL: firecloud_devnet-0.1.0.tar.gz
  • Upload date:
  • Size: 56.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for firecloud_devnet-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4c70e1e3808656a25935c4e0016c615472e95261892fc160b88f369ec045e41a
MD5 9c5fa68e74da68b22af5b5a7f20ebf7e
BLAKE2b-256 048f00c8f002e3f7bf11534a1862942f8d9fb3cc425570de182d05716b20e730

See more details on using hashes here.

Provenance

The following attestation bundles were made for firecloud_devnet-0.1.0.tar.gz:

Publisher: publish.yml on rajashekharsunkara/firecloud

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file firecloud_devnet-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for firecloud_devnet-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 985cf2e4655d02a621b8cdda16530f85086317efee4322ccd171156e48a43341
MD5 1415e64a045344221da223f1d5a9b4a2
BLAKE2b-256 ed68933a108272e4cb1baf054a702f1a41d4092633ebe9866396ff3bbf95b2e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for firecloud_devnet-0.1.0-py3-none-any.whl:

Publisher: publish.yml on rajashekharsunkara/firecloud

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page