2018-04-06 17:38:32 +01:00
# Storj
2018-04-06 17:32:34 +01:00
2018-06-26 12:48:02 +01:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/storj/storj )](https://goreportcard.com/report/github.com/storj/storj)
2018-04-06 17:32:34 +01:00
[![Go Doc ](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square )](http://godoc.org/github.com/storj/storj)
2018-06-26 12:48:02 +01:00
<!-- [![Release ](https://img.shields.io/github/release/golang-standards/project-layout.svg?style=flat-square )](https://github.com/storj/storj/releases/latest) -->
[![Coverage Status ](https://coveralls.io/repos/github/storj/storj/badge.svg?branch=master )](https://coveralls.io/github/storj/storj?branch=master)
2018-04-06 17:32:34 +01:00
2018-04-06 17:39:49 +01:00
< img src = "https://github.com/Storj/storj/blob/wip/logo/logo.png" width = "100" >
2018-04-06 17:32:34 +01:00
----
2018-04-27 13:53:46 +01:00
Storj is a platform, token, and suite of decentralized applications that allows you to store data in a secure and decentralized manner. Your files are encrypted, shredded into little pieces called 'shards' and stored in a global decentralized network of computers. Only you have access and the ability to retrieve all shards from the network, decrypt them, and finally re-combine all file pieces into your original file.
2018-04-06 17:32:34 +01:00
----
## To start using Storj
2018-04-27 13:53:46 +01:00
See our documentation at [Storj docs ](https://docs.storj.io/docs ).
2018-04-06 17:32:34 +01:00
2018-04-27 13:53:46 +01:00
## To start developing Storj
2018-04-06 17:32:34 +01:00
2018-04-27 13:53:46 +01:00
The [community site ](https://storj.io/community.html ) hosts all information about building storj from source, how to contribute code
2018-04-06 17:32:34 +01:00
and documentation, who to contact about what, etc.
2018-07-19 20:48:51 +01:00
### Install required packages
2018-04-17 14:38:31 +01:00
2018-07-19 20:48:51 +01:00
First of all install `git` , `golang` and `redis-server` and add environment variables.
2018-04-17 14:38:31 +01:00
2018-07-19 20:48:51 +01:00
#### Debian based (like Ubuntu)
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
```bash
apt-get install git golang redis-server
echo 'export GOPATH="$HOME/go"' >> $HOME/.bashrc
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> $HOME/.bashrc
source $HOME/.bashrc
```
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
#### Mac OSX
```bash
brew install git go redis
if test -e $HOME/.bash_profile
then
echo 'export GOPATH="$HOME/go"' >> $HOME/.bash_profile
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> $HOME/.bash_profile
source $HOME/.bash_profile
else
echo 'export GOPATH="$HOME/go"' >> $HOME/.profile
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> $HOME/.profile
source $HOME/.profile
fi
```
2018-04-17 14:38:31 +01:00
2018-07-19 20:48:51 +01:00
### Install storj
2018-04-27 13:53:46 +01:00
2018-07-19 20:48:51 +01:00
Clone the storj repository. You may want to clone your own fork and branch.
```bash
git clone https://github.com/storj/storj $GOPATH/src/storj.io/storj
```
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
#### Install all dependencies
2018-04-17 16:26:54 +01:00
2018-07-19 20:48:51 +01:00
`go get` can be used to install all dependencies. The execution will take some time. You can add -v if you want to get more feedback.
2018-04-17 16:26:54 +01:00
2018-07-19 20:48:51 +01:00
```bash
go get -t storj.io/storj/...
```
2018-04-27 13:53:46 +01:00
2018-07-19 20:48:51 +01:00
Fix error message `cannot use "github.com/minio/cli"` See https://github.com/minio/minio/issues/5974 for more details.
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
```bash
go get -t github.com/minio/cli & & rm -rf $GOPATH/src/github.com/minio/minio/vendor/github.com/minio/cli
go get -t storj.io/storj/...
```
2018-04-27 13:53:46 +01:00
2018-07-19 20:48:51 +01:00
### Run unit tests
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
```bash
go clean -testcache
go test storj.io/storj/...
```
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
You can execute only a single test package. For example: `go test storj.io/storj/pkg/kademlia` . Add -v for more informations about the executed unit tests.
2018-04-06 17:32:34 +01:00
2018-07-19 20:48:51 +01:00
### Start farmer
2018-04-06 17:32:34 +01:00
2018-07-19 20:48:51 +01:00
```bash
piecestore-farmer --help
2018-04-06 17:32:34 +01:00
```
2018-07-19 20:48:51 +01:00
To be continued.
## You have a working [Docker environment](https://docs.docker.com/engine).
2018-04-06 17:32:34 +01:00
```
$ git clone https://github.com/storj/storj
$ cd storj
$ make docker
```
For the full story, head over to the [developer's documentation].
## Support
2018-04-27 13:53:46 +01:00
If you need support, start with the [troubleshooting guide], and work your way through the process that we've outlined.
2018-04-06 17:32:34 +01:00
2018-04-27 13:53:46 +01:00
That said, if you have any questions or suggestions please reach out to us on [rocketchat ](https://storj.io/community.html ) or [twitter ](https://twitter.com/storjproject ).