All Projects → anthonybudd → S4

anthonybudd / S4

Licence: MIT license
S4 is 100% S3 compatible storage, accessed through Tor and distributed using IPFS.

Programming Languages

shell
77523 projects
javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to S4

Cortx
CORTX Community Object Storage is 100% open source object storage uniquely optimized for mass capacity storage devices.
Stars: ✭ 426 (+535.82%)
Mutual labels:  storage, s3, object-storage
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (+441.79%)
Mutual labels:  storage, s3, object-storage
Juicefs
JuiceFS is a distributed POSIX file system built on top of Redis and S3.
Stars: ✭ 4,262 (+6261.19%)
Mutual labels:  storage, s3, object-storage
Akubra
Simple solution to keep a independent S3 storages in sync
Stars: ✭ 79 (+17.91%)
Mutual labels:  storage, s3, object-storage
Tus Ruby Server
Ruby server for tus resumable upload protocol
Stars: ✭ 172 (+156.72%)
Mutual labels:  storage, s3
storage
Go library providing common interface for working across multiple cloud storage backends
Stars: ✭ 154 (+129.85%)
Mutual labels:  storage, s3
Cakephp File Storage
Abstract file storage and upload plugin for CakePHP. Write to local disk, FTP, S3, Dropbox and more through a single interface. It's not just yet another uploader but a complete storage solution.
Stars: ✭ 202 (+201.49%)
Mutual labels:  storage, s3
minio-rclone-webdav-server
A @rclone served WebDAV server with @minio as the s3 storage backend docker example
Stars: ✭ 17 (-74.63%)
Mutual labels:  storage, s3
Space Daemon
The Space Daemon packages together IPFS, Textile Threads/Buckets, and Textile Powergate (Filecoin*) into one easy to install Daemon to make it easy to build peer to peer and privacy focused apps.
Stars: ✭ 151 (+125.37%)
Mutual labels:  storage, ipfs
qscamel
qscamel is a command line tool to migrate data between different endpoint efficiently.
Stars: ✭ 34 (-49.25%)
Mutual labels:  s3, object-storage
awesome-storage
A curated list of storage open source tools. Backups, redundancy, sharing, distribution, encryption, etc.
Stars: ✭ 324 (+383.58%)
Mutual labels:  storage, s3
Dosa
DOSA is a data object abstraction layer
Stars: ✭ 172 (+156.72%)
Mutual labels:  storage, object-storage
Cloudexplorer
Cloud Explorer
Stars: ✭ 170 (+153.73%)
Mutual labels:  storage, s3
Temporal
☄️ Temporal is an easy-to-use, enterprise-grade interface into distributed and decentralized storage
Stars: ✭ 202 (+201.49%)
Mutual labels:  storage, ipfs
Uptoc
A static file deployment tool that supports multiple platforms./ 一个支持多家云厂商的静态文件部署工具
Stars: ✭ 159 (+137.31%)
Mutual labels:  storage, s3
estuary
A custom IPFS/Filecoin node that makes it easy to pin IPFS content and make Filecoin deals.
Stars: ✭ 195 (+191.04%)
Mutual labels:  storage, ipfs
esop
Cloud-enabled backup and restore tool for Apache Cassandra
Stars: ✭ 40 (-40.3%)
Mutual labels:  storage, s3
minio-dart
Unofficial MinIO Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.
Stars: ✭ 42 (-37.31%)
Mutual labels:  s3, object-storage
go-storage
A vendor-neutral storage library for Golang: Write once, run on every storage service.
Stars: ✭ 387 (+477.61%)
Mutual labels:  storage, s3
laravel-ovh
Wrapper for OVH Object Storage integration with laravel
Stars: ✭ 30 (-55.22%)
Mutual labels:  storage, object-storage

S4

S4

S4 is 100% compatible AWS S3 storage, accessed through Tor and distributed using IPFS.

Tor acts as a DNS and hides the physical location of the S4 server. IPFS acts as a CDN and will make your data permanently accessible and is impossible to take offline once it has been published. A sidecar docker container is provided to seamlessly proxy requests from your existing S3 code over Tor to S4.

S4 Video Tutorial

Create S4 server

You can set-up your own local S4 server with just 4 commands.

$ git clone [email protected]:anthonybudd/S4.git && cd S4/

$ cp .env.example .env

$ docker run -it --rm -v $(pwd)/data/tor:/web anthonybudd/s4-tor-proxy generate ^s4

$ docker-compose up

Node.js AWS-SDK Example

Once you have created your local S4 server, you can test it using the included example. This demo shows the current Node.js AWS-SDK working with the sidecar docker container to proxy the AWS S3 requests over Tor back to your local S4 server.

$ cd example/

$ nano .env

$ docker-compose up -d

$ docker exec -ti my-app node src/index.js

Architecture

S4

Tor does not just provide anonymity, Tor acts as a DNS. S4 uses Tor hidden services, data is uploaded into an S4 bucket over Tor. This also means you can create a free .onion domain name without needing any 3rd-parties. A sidecar container is provided to seamlessly proxy requests from your existing S3 code over Tor to S4.

IPFS acts as a CDN. Each S4 bucket is published to IPFS under a separate key allowing you to address your files using any existing IPFS HTTP gateway like this https://ipfs.io/ipns/[BUCKET-KEY]/image.jpg. This link will never change or go offline, the more people who request it, the faster the data will be returned to the user.

Build a Node

S4 node

S4 is designed to democratise object-storage technology so anyone can have S3-like data storage without needing to depend on giant cloud tech providers. It was specifically built to run on a Raspberry Pi in production. A full blog post has been provided with in-depth instructions on how to build your own S4 node. A basic overview is provided below.
  • Install Ubuntu 20.04

  • $ git clone [email protected]:anthonybudd/S4.git

  • $ cd S4

  • $ ./install

  • $ sudo mount /dev/XXX /mnt/ssd

  • $ sed -i "" "s#S4_ROOT=.*#S4_ROOT=/mnt/ssd#" .env

  • $ sed -i "" "s#ACCESS_KEY=.*#ACCESS_KEY=$(openssl rand -hex 10)#" .env

  • $ sed -i "" "s#SECRET_KEY=.*#SECRET_KEY=$(openssl rand -hex 20)#" .env

  • $ sudo reboot

  • $ docker run -it --rm -v /mnt/ssd/tor:/web anthonybudd/s4-tor-proxy:arm64v8 generate ^s4

  • $ docker-compose up

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].