cozy-stack

command module
v0.0.0-...-9818b01 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2017 License: AGPL-3.0 Imports: 3 Imported by: 0

README

Cozy Cloud

GoDoc Build Status codecov

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 the new version of Cozy Cloud which aims to be simpler for hosting thousands of instances. It should also bring for the self-hosted the possibility to host several instances on the same server, and improve many things, starting with security and reliability.

Feel free to open an issue for questions and suggestions.

Dependencies

  • A SMTP server
  • CouchDB 2.0.0

To install CouchDB 2.0.0 through Docker, take a look at our Docker specific documentation.

Installing a cozy-stack

We do not yet provide releases binaries, but we will soon and you won't have to install go in order to run cozy-stack

Using go

Install go, version >= 1.7. With go installed and configured, you can run the following command:

go get github.com/cozy/cozy-stack

This will fetch the sources in $GOPATH/src/github.com/cozy/cozy-stack and build a binary in $GOPATH/bin/cozy-stack.

Don't forget to add your $GOPATH to your $PATH in your *rc file so that you can execute the binary without entering its full path.

export PATH="$GOPATH:$PATH"
Add an instance and run

You can configure your cozy-stack using a configuration file or different comand line arguments. You can have more informations on our Configuration page.

Assuming CouchDB is installed and running on default port 5984, you can start the server:

cozy-stack serve

And then create an instance for development:

cozy-stack instances add --dev "localhost:8080"

The cozy-stack server listens on http://localhost:8080/ by default. See cozy-stack --help for more informations.

Make sure the full stack is up with:

curl -H 'Accept: application/json' 'http://localhost:8080/status/'

Configuration

See configuration documentation.

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.

There are some useful commands to know in order to develop with the go code of cozy-stack:

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/

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
pkg
settings
Package settings is for facilitating the usage of user settings, like themes.
Package settings is for facilitating the usage of user settings, like themes.
vfs
Package vfs is for storing files on the cozy, including binary ones like photos and movies.
Package vfs is for storing files on the cozy, including binary ones like photos and movies.
web
Package web Cozy Stack API.
Package web Cozy Stack API.
apps
Package apps is the HTTP frontend of the application package.
Package apps is the HTTP frontend of the application package.
auth
Package auth provides register and login handlers
Package auth provides register and login handlers
data
Package data provide simple CRUD operation on couchdb doc
Package data provide simple CRUD operation on couchdb doc
files
Package files is the HTTP frontend of the vfs package.
Package files is the HTTP frontend of the vfs package.
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.
settings
Package settings regroups some API methods to facilitate the usage of the io.cozy settings documents.
Package settings regroups some API methods to facilitate the usage of the io.cozy settings documents.
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