A tool for securely migrating object storage data between cloud providers.
CloudShift is a web application available as a container on Docker Hub or for direct download by cloning this repo.
Steps for installing and running CloudShift using either method is outlined below.
If you do not have Docker installed, follow the installation instructions here.
Search for "cloudshiftdev/app" under the Containers tab.
Click the image. Making sure the latest tag is selected, click the "Pull" button to download.
After the download has completed, click "Run." Before clicking "Run" again, click Optional Settings and set the host post to your desired port.
In your browser, navigate to localhost:HOST_PORT
where HOST_PORT
is the host port set in the previous step.
In an open terminal, type docker pull cloudshiftdev/app:latest
After the download is complete, run the container using docker run -p HOST_PORT:3000 cloudshiftdev/app
, where HOST_PORT
is your desired port.
In your browser, navigate to localhost:HOST_PORT
.
Before installing, download and install Node.js. Node.js 18.12 or higher is recommended.
In your terminal, run git clone https://github.com/oslabs-beta/CloudShift.git
.
Navigate to the Cloudshift folder and run npm install
followed by npm start
.
NOTE: By default, this will open your browser to localhost:3000
, however you can change the port by opening your package.json
file.
Under scripts
> start
, change localhost:3000
to any port value.
After installation & navigating to CloudShift in your browser, click on your origin & destination cloud providers.
Origin & Destination will then populate with the necessary required credentials to complete the transfer process.
Using root or admin level access credentials is recommended to ensure correct permissions for transferring data.
Credentials
Select your origin & destination buckets from the dropdown lists, which populate after you insert your credentials. Then, press the "Start Migration" button.
See Philosophy for the motivation behind our design decisions.
Built on Rclone.
Cloudshift...
Transfers data securely.
Will not corrupt your data or break your containers if the transfer process fails for any reason.
Couldshift does NOT...
Delete your origin bucket or any data within your origin bucket upon completition.
Store credentials/data. All config files are auto deleted after the transfer completes.
Address specific use-cases that don't apply to most users.
Currently(!) support same provider transfers.
If you find that CloudShift doesn't provide you with the granular control necessary for your use-case, or you wish to learn more about Rclone (and how the transfer process works), visit the Rclone docs.
For an in-depth read about our motivation, check out our Medium article here.
CloudShift seeks to abstract as much of the cloud data migration process as possible for the majority of use-cases. If you require granular control of the transfer process, we recommend using the Rclone CLI.
If you feel like CloudShift lacks a feature that fits with our design philosophy, connect with us or get involved.
Send us a message on our LinkedIn.
If this concerns a bug, submit an issue.
CloudShift is an open-source product that is open to input and contributions from the community. After trying out the product, feel free to raise issues or submit a PR request.
We welcome community contributions, including new developers who've never made an open source Pull Request before. If you'd like to start a new PR, we recommend creating an issue for discussion first. This lets us open a conversation, ensuring work is not duplicated unnecessarily and that the proposed PR is a fix or feature we're actively looking to add.