Git Product home page Git Product logo

cortx-drive's Introduction

CORTX Drive

CORTX Drive is a file management app built to use Seagate's open source object storage system: CORTX. it provides a web based user interface that can be easily navigated and allows the user store and browse their uploaded files in an easy-to-use friendly manner.

Hackathon PR

Seagate/cortx#1580

Goals

  • To provide an easy to use app that allows users store and manage their files on the cloud
  • To provide a means for users to migrate their data into the decentralized web - IPFS

Architecture

CORTX Drive is written in Java using the Spring Boot application framework. All interactions with CORTX and IPFS are implemented as Services and the web interface is served using Spring MVC Controllers.

Getting started

The quickest way to setup CORTX Drive is by using Docker Compose. Before you start though you will have to open up the docker-compose.yml file and set some variables.

A summary of the variables and their description:

  • AWS_ACCESS_KEY - API Access Key for connecting to CORTX instance
  • AWS_SECRET_KEY - API Secret Key for connecting to CORTX instance
  • AWS_ENDPOINT_URL - URL of CORTX endpoint for connecting to CORTX
  • DEFAULT_BUCKET_NAME - The bucket name of the default storage bucket. This bucket must already exist for the app to work
  • IPFS_ADD_FILE_URL - API URL for the add file endpoint of your IPFS gateway. You can leave this at the default setting if you plan to use the preconfigured IPFS node instance that is already defined in the docker compose file
  • IPFS_RETRIEVE_FILE_URL - API URL for the retrieve file endpoint of your IPFS gateway

Using Docker

To start the app, Run:

docker-compose up -d

This should pull the required app image from Docker Hub and start the local IPFS node and the CORTX Drive app. Confirm that everything is working by running:

docker-compose ps

You should see some output like:

You can see the logs from the app by typing

docker-compose logs cortx-drive

Or view the logs from the IPFS node by typing

docker-compose logs ipfsd

The application should now be accessible from http://localhost:8081/home. The IPFS node dashboard should also be available at http://localhost:5001/webui

Notes

  • The Docker setup uses a host-mode network. This is to allow you access local ports from the container in case you are using an SSH Tunnel to connect to you CORTX instance (on CloudShare)

  • Because of the host mode network setting, you must make sure that ports 5001 and 8081 are not being used by any other application before you start docker-compose

Building from source

To build the app from source, You will need

  • Java 11 Development Kit
  • Gradle Build Tool

The quickest way to get these tools is to use sdkman!

Steps
  1. Clone the source repository from Github

  2. Got to the source repo folder and build the project by running:

    ./gradlew build
  3. Setup the necessary environment variable as defined above

    export AWS_ACCESS_KEY='...'
    export AWS_SECRET_KEYY='...'
    export DEFAULT_BUCKET_NAME='...'
  4. Run the project by typing

    ./gradlew bootRun
  5. This will build the project and run it as a Spring Boot application. The application will be available at http://localhost:8081/home

Screenshots

Video

Here is a video showing a demo of the application

https://youtu.be/3ZVRK8s75SY

cortx-drive's People

Watchers

 avatar  avatar

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.