Git Product home page Git Product logo

rainstash's Introduction

rainstash

rainstash is an Amazon CloudFormation template for automating the setup of Resilio Sync in the Amazon cloud.

The following information must be supplied as parameters to rainstash:

  • AllowedSubnet - the subnet allowed to managed the instance via SSH and HTTPS, IPs outside of this subnet will not be able to manage the instance, subnet should be in CIDR form (x.x.x.x/xx)
  • DeviceName - the name of this device
  • FolderKey - the encrypted read-only key used to maintain a copy of a folder upon stack setup, must begin with a F followed by 32 uppercase alphanumeric characters
  • InstanceType - the EC2 instance type (i.e. - the size of the instance); see http://aws.amazon.com/ec2/instance-types/
  • KeyName - the name of keypair used to setup instance; used to access instance via SSH
  • StorageNeededInGB - the amount of storage, in gigabytes, needed
  • VolumeType - the type of volume to configure, standard is the default for lowest cost
  • WebInterfacePassword - the password for the web interface
  • WebInterfaceUsername - the username for the web interface

rainstash and Amazon CloudFormation is completely free to use, however, Amazon may charge for the use of resources created with rainstash. rainstash uses the following cost-related services: EC2, S3, and data transfer.

Due to technical and security considerations, rainstash by default only accepts encrypted read-only folder keys for the best security. That encrypted data itself resides on an encrypted virtual disk volume, but the instance is meant to be ephimeral. If the EC2 instance where rainstash is running is shutdown or rebooted, data on that instance is not trivially recoverable. The workaround - the BitTorrent protocol and Resilio Sync are meant to be decentralized and distributed. Always have more than one copy of your folders, whether it's multiple rainstash stacks or running on your own hardware. Please keep this in mind!

rainstash's People

Contributors

willjasen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rainstash's Issues

literal quote for disk encryption password

special characters are throwing it off

2021-07-28 01:21:33,153 [DEBUG] Running command 01-encrypt-volume
2021-07-28 01:21:33,153 [DEBUG] No test for command 01-encrypt-volume
2021-07-28 01:21:33,817 [ERROR] Command 01-encrypt-volume (echo asdfasofh;afh;asldfkja;sdlfkja;slf;asldkjfa;slkdjfas;lkfj | cryptsetup luksFormat /dev/xvdf) failed

HTTPS interface

By default, the btsync web interface is HTTP only. For security, implement HTTPS.

Disk encryption

Not all AWS instance types support disk encryption natively. Currently, only m3.medium and larger instances can be used with encrypted disks, but a larger instance size isn't feasible for most use cases due to pricing.

Place data onto separate volume

Data should reside on a separate volume than what the OS resides on so it can be better managed. This will facilitate disk encryption as well.

Advanced configuration

It would be possible to have the instance start btsync with a config file, but the file would need to be downloaded from S3 and kept up to date separately from the CloudFormation template.

Mapping for a regoin error

Any idea about the origin of:
Template validation error: Template error: Unable to get mapping for RegionMap::us-west-1::AMI

Just started playing with AWS and the template. Thanks!

/secure folder selection

User must know that the /secure volume is the only place where data is encrypted on the fly. Any way to force the user to use this directory?

Deleting stack causes error

Error: "The following resource(s) failed to delete: [DataVolume, MountPoint]."

Then the /dev/xvdf volume that is created by the stack must be manually deleted, then the stack deleted again, then all is okay.

New project name

Without having first researched names, it seems btcloud is an already claimed name stake at https://btcloud.io/. A name change is okay for differentiation, but what should it be?

how to securely obtain the disk encryption password

The volume that is encrypted with cryptsetup is created that way upon stack creation, but it does not persist after a reboot.

Perhaps this could be tied to the SSH key already assigned to the instance?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.