All Projects → cozy → cozy-proxy

cozy / cozy-proxy

Licence: AGPL-3.0 license
This repository was part of CozyV2 which has been deprecated - Cozy authentication and routing layer

Programming Languages

coffeescript
4710 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Labels

Projects that are alternatives of or similar to cozy-proxy

cozy-debian
Cozy Debian package
Stars: ✭ 13 (-50%)
Mutual labels:  cozy
cozy-template
Deprecated use https://github.com/cpatchane/cozy-create-app. Template project to create an application for the Cozy Platform
Stars: ✭ 15 (-42.31%)
Mutual labels:  cozy
cozy-banks
A Banks Aggregator on Cozy
Stars: ✭ 48 (+84.62%)
Mutual labels:  cozy
soft-era-vs-code
🌸 soft era for VS Code ~ Light pastel syntax theme for soft, warm, cozy, cute coding. 🌱
Stars: ✭ 91 (+250%)
Mutual labels:  cozy
cozy-ui
React components and CSS styles for Cozy apps
Stars: ✭ 44 (+69.23%)
Mutual labels:  cozy
soft-era-atom-syntax
🌸 soft era for Atom ~ Light pastel syntax theme for soft, warm, cozy, cute coding. 🌱
Stars: ✭ 24 (-7.69%)
Mutual labels:  cozy
cozy-contacts-v2
Contact books manager for Cozy
Stars: ✭ 20 (-23.08%)
Mutual labels:  cozy
easy-cozy
Easy cozy-cloud deployment
Stars: ✭ 22 (-15.38%)
Mutual labels:  cozy

Cozy Proxy

Cozy Proxy redirects requests properly to the right application of the Cozy platform depending on given path. It also handles authentication to the Cozy for users and devices.

Install

We assume here that the Cozy platform is correctly installed on your server.

Type this command to install the proxy module:

$ cozy-monitor install proxy

Contribution

You can contribute to the Cozy Proxy in many ways:

  • Pick up an issue and solve it.
  • Translate it in a new language.
  • Improve the session management.

Listen on https

It is recommended to run Cozy Proxy behind a reverse proxy like nginx. The reverse proxy does the SSL/TLS stuff in that case. But if you want to run Cozy Proxy with no reverse proxy (low memory server for example), you can set the following env variables:

USE_SSL=true
SSL_CRT_PATH=/path/to/server.crt  # /etc/cozy/server.crt by default
SSL_KEY_PATH=/path/to/server.key  # /etc/cozy/server.key by default

To use this when the whole Cozy stack is running, you can add this variables into the Controller configuration file, /etc/cozy/controller.json, as explained into the documentation. Just add the following lines into this file:

"env": {
  "proxy": {
    "PORT": 443,
    "USE_SSL": true,
    "SSL_CRT_PATH": "/path/to/server.crt",
    "SSL_KEY_PATH": "/path/to/server.key"
  }
}

Troubleshooting

The Cozy proxy has a default timeout of 120 seconds. If an application doesn't anwser in 120 seconds, the Proxy will close the connection. If your server is slow, you may want to increase this timeout. Just edit server.js inside the build directory of your proxy (usually /usr/local/cozy/apps/proxy/node_modules/cozy-proxy/build/server) and add server.timeout = 0 juste after return americano.start(options, function(err, app, server) {.

Hack

To be hacked, the Cozy Proxy dev environment requires that a CouchDB instance and a Cozy Data System instance are running. Then you can start the Cozy Proxy this way:

$ git clone https://github.com/cozy/cozy-proxy.git
$ cd cozy-proxy
$ npm install
$ npm run watch

To hack cozy-proxy using the cozy vagrant

  • Forward cozy-home application port from the virtual machine: config.vm.network :forwarded_port, guest: 9103, host: 9103 in file Vagrantfile (if the virtual machine is already up, you can apply this change with vagrant reload)
  • On your computer, go to your cozy-proxy folder cd your-cozy-proxy-folder
  • Run npm install
  • Once install is done, launch cozy-proxy PORT=9555 HOST="0.0.0.0" npm run watch (You may use another port)
  • You can now access the hacked proxy on http://localhost:9555 with your navigator

Tests

Build Status

To run tests, type the following command into the Cozy Proxy folder:

$ npm run test

Note: a running data-system is required for the tests.

Contribute with Transifex

Transifex can be used the same way as git. It can push or pull translations. The config file in the .tx repository configure the way Transifex is working : it will get the json files from the locales repository. If you want to learn more about how to use this tool, I'll invite you to check this tutorial.

License

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

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.

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].