Skip to main content

Module to help self hosted cozy management

Project description

## Description

Helper to manage self hosting cozy

** ⚠ This tool has only been tested on the platforms we support (Debian / Ubuntu / Raspbian). Some of the commands will not work on other distributions. It is mostly a wrapper around shell commands, so if you use another distribution, you can probably read the code and adapt the commands to your distribution **

## Install

Make sure those packages are installed on your environment :
> python-requests python-docopt python-openssl python-psutil python-pkg-resources

Then, install Python Cozy Management :
`pip install cozy_management`

### Details about installation

This script do this for you:

1. Install requirements
* Put cozy-apt-node-list in silent mode
* Install cozy-apt-node-list to add nodejs repository
* Do an `apt-get update`
* Install nodejs
* Install cozy-depends to have all requirements for Cozy
* Install weboob
2. Install Cozy Debian Package
* Launch an `apt-get install cozy`
* Check nodejs version
* Launch post-configuration for cozy-standalone cozy-nginx cozy-apache2
* cozy-standalone
* Show a warning about self-signed certificate on Android
* Ask for Cozy FQDN
* Ask for certificate type (none, selfsigned, letsencrypt)
* Install npm package (cozy-controller & cozy-monitor)
* Add unix users (cozy, cozy-data-system & cozy-home)
* Create /etc/cozy directory with cozy as owner
* Create /etc/cozy/couchdb.login with Couch admin creation
* Add /etc/supervisor/conf.d/cozy-controller.conf managed by UCF
* (Re)start cozy-controller
* Install stack with `cozy-monitor install-cozy-stack`
* Install & start data-system, home & proxy to avoid errors
* Set the Cozy domain with ` setdomain <domain>`
* Set the Cozy background with a curl
* Install default apps (calendar, contacts, photos, emails, files, sync & import-from-google)
* Manage SSL certificate
* cozy-nginx
* Disable default site
* Add /etc/nginx/conf.d/cozy.conf managed by UCF
* Handle let's encrypt if it's activated
* cozy-apache2
* Enable required modules (ssl, proxy_http, proxy_wstunnel & rewrite)
* Add /etc/apache2/sites-available/cozy.conf managed by UCF

You can found more information here:

## Usage

* **show_diag**: display a quick diagnostic of the server;
* **show_reporting**: display a full diagnostic of your server state;
* **ping_couchdb**: check whether CouchDB is running;
* **get_admin**: display credentials used by Cozy to connect to CouchDB;
* **get_couchdb_admins**: list all CouchDB admin logins;
* **create_token**: create a CouchDB admin user and write the credentials into Cozy configuration files;
* **delete_token**: delete CouchDB admin user used by Cozy and remove the configuration file;
* **reset_token**: delete and create the CouchDB admin user used by Cozy, updating the configuration files;
* **create_cozy_db**: create the database;
* **get_cozy_param <name>**: get a parameter of the instance. Current available parameters are `domain` and `locale`;
* **get_crt_common_name**: get the common name of the TLS certificate (the domain name);
* **generate_certificate <common_name> --size <size> --digest <digest>**: create a certificate;
* **make_links <common_name>**: create the symbolic links to the certificate files in NGinx configuration;
* **clean_links**: delete the symbolic links to the certificate files in NGinx configuration;
* **is_cozy_registered**: check whether user has already registered its server;
* **unregister_cozy**: delete user account from database;
* **fix_oom_scores**: try to prevent applications from the stack to be killed if memory goes low;
* **get_oom_scores**: get the Out Of Memory score for each application;
* **rebuild_app <app>**: reinstall every npm dependencies of an application;
* **rebuild_all_apps**: reinstall every npm dependencies of all applications (useful when upgrading Node version);
* **migrate_2_node4**:
* **install_requirements**:
* **install_cozy**: install the Cozy server;
* **wait_couchdb**: wait until couchdb has started;
* **wait_cozy_stack**: wait until full Cozy stack has started;
* **emulate_smtp [--bind <ip>] [--port <port>]** starts a fake SMTP server on port 25 for debugging purpose;
* **backup**: create a timestamped backup of Cozy configuration and data into `/var/lib/cozy/backups`;
* **restore <backup_filename>**: restore a backup;
* **install_weboob**: install weboob from devel repository
* **update_weboob**: update weboob from devel repository
* **update_weboob_modules**: update weboob modules

## Contribution

* Pick and solve an [issue](

## License

Python Cozy management 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
* Posting on our [Forum](
* Posting issues on the [Github repos](
* Mentioning us on [Twitter](

Project details

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
cozy_management-0.0.25.tar.gz (23.9 kB) Copy SHA256 hash SHA256 Source None Jan 31, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page