cozy-stack

command module
v0.0.0-...-700955b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2016 License: AGPL-3.0 Imports: 2 Imported by: 0

README

Cozy Cloud

GoDoc Build Status

What is Cozy?

Cozy Logo

Cozy is a platform that brings all your web services in the same private space. With it, your web apps and your devices can share data easily, providing you with a new experience. You can install Cozy on your own hardware where no one profiles you.

And what about this repository?

This repository contains thoughts for a new version of Cozy Cloud which aims to be simpler for hosting thousands of instances. It should also bring multi-users for self-hosted and improve many things, starting with security and reliability. You can find:

Feel free to open an issue for questions and suggestions.

There are some useful commands to know in order to play with the go code:

go get -u github.com/cozy/cozy-stack
cd $GOPATH/src/github.com/cozy/cozy-stack

go get -t -u ./...      # To install or update the go dependencies
go test -v ./...        # To launch the tests
go run main.go serve    # To start the API server
godoc -http=:6060       # To start the documentation server
                        # Open http://127.0.0.1:6060/pkg/github.com/cozy/cozy-stack/

The swagger description of the REST API can be displayed with those commands:

go get -u github.com/go-swagger/go-swagger/cmd/swagger
git clone git@github.com:swagger-api/swagger-ui.git
mkdir -p swagger-ui/dist/specs
swagger generate spec -o swagger-ui/dist/specs/swagger.json
go get github.com/mholt/caddy/caddy
cd swagger-ui/dist && caddy
xdg-open http://localhost:2015/index.html?url=http://localhost:2015/specs/swagger.json

Requirements

  • Go 1.7.1
  • CouchDB 2.0.0

With Docker

Building a cozy-stack binary

To build a cozy-stack binary with Docker using the local source code, run:

# From your cozy-stack developement folder
docker run -it --rm --name cozy-stack \
    -v $(pwd):/go/src/github.com/cozy/cozy-stack \
    -v $(pwd):/go/bin \
    golang:1.7.1 \
    go get -v github.com/cozy/cozy-stack

The cozy-stack binary is now present in the current folder. Run it with:

./cozy-stack serve
Running a CouchDB instance

This will run a new instance of CouchDB in single mode (no cluster) and in admin-party-mode (no user).

$ docker run -d \
    --name cozy-stack-couch \
    -p 5984:5984 \
    -v $HOME/.cozy-stack-couch:/opt/couchdb/data \
    klaemo/couchdb:2.0.0
$ curl -X PUT http://127.0.0.1:5984/{_users,_replicator,_global_changes}

Verify your installation at: http://127.0.0.1:5984/_utils/#verifyinstall

How to contribute?

We are eager for contributions and very happy when we receive them! It can code, of course, but it can also take other forms. The workflow is explained in the contributing guide.

Community

You can reach the Cozy Community by:

  • Chatting with us on IRC #cozycloud on irc.freenode.net
  • Posting on our Forum
  • Posting issues on the Github repos
  • Mentioning us on Twitter

License

Cozy is developed by Cozy Cloud and distributed under the AGPL v3 license.

Documentation

Overview

Cozy Cloud is a personal platform as a service with a focus on data. Cozy Cloud can be seen as 4 layers, from inside to outside:

1. A place to keep your personal data

2. A core API to handle the data

3. Your web apps, and also the mobile & desktop clients

4. A coherent User Experience

It's also a set of values: Simple, Versatile, Yours. These values mean a lot for Cozy Cloud in all aspects. From an architectural point, it declines to:

- Simple to deploy and understand, not built as a galaxy of optimized microservices managed by kubernetes that only experts can debug.

- Versatile, can be hosted on a Raspberry Pi for geeks to massive scale on multiple servers by specialized hosting. Users can install apps.

- Yours, you own your data and you control it. If you want to take back your data to go elsewhere, you can.

Directories

Path Synopsis
web
Package web Cozy Stack API.
Package web Cozy Stack API.
data
Package data provide simple CRUD operation on couchdb doc
Package data provide simple CRUD operation on couchdb doc
files
Package files is for storing files on the cozy, including binary ones like photos and movies.
Package files is for storing files on the cozy, including binary ones like photos and movies.
jsonapi
Package jsonapi is for using the JSON-API format: parsing, serialization, checking the content-type, etc.
Package jsonapi is for using the JSON-API format: parsing, serialization, checking the content-type, etc.
middlewares
Package middlewares is a group of functions.
Package middlewares is a group of functions.
status
Package status is here just to say that the API is up and that it can access the CouchDB databases, for debugging and monitoring purposes.
Package status is here just to say that the API is up and that it can access the CouchDB databases, for debugging and monitoring purposes.
version
Package version gives informations about the version of the cozy-stack
Package version gives informations about the version of the cozy-stack

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL