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:
- 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
- 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
commands.coffee 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: https://docs.cozy.io/en/host/install/install-step-by-step.html
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 : 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 --size --digest : create a certificate;
- make_links : 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 : 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 ] [--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 : restore a backup;
- install_weboob: install weboob from devel repository
- update_weboob: update weboob from devel repository
- update_weboob_modules: update weboob modules
Contribution
License
Python Cozy management is developed by Cozy Cloud and distributed under the AGPL v3 license.
What is Cozy?
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