Cozy Deploy: A tool to deploy and manage multiple Cozy instances


#1

Hi there!

After the shinny new Dockerfile made available last week, I introduce you Cozy Deploy, a tool to run multiple Cozies for multiple fellows :smile:


https://github.com/cozy-labs/cozy-deploy

gif


The idea

To provide a tool for sysadmins to deploy and manage multiple Cozies for friends and family, filling the gap of the “multi-user” approach.

With this tool, you can easily create a Cozy instance for someone to test it, handling the domain name, the SSL certificates, the updates/upgrades and the monitoring as well.

Ingredients

Cozy Deploy is based on Docker for containers and Nginx for the SSL proxy.
Once you deploy a container:

  • You choose a domain name
  • It runs a Docker container built from the official Dockerfile
  • It configures Nginx to add a proxy virtual host
  • It generates a self-signed certificate (that you can replace with your own, afterward)
  • It persists relevent volumes on your host, such as CouchDB data and apps
  • It optionnally uses PageKite to open the container to the Internet, if you choose a *.pagekite.me domain name.

Then Cozy Deploy enables you to check Cozies’ status, update their apps, upgrade systems and monitor their resources.

All of this in less than 500 lines of bash, so that you can hack it with ease :smile:
https://github.com/cozy-labs/cozy-deploy/blob/master/cozy-deploy

Installation

So try it out! All you need is a Docker 1.5+ capable host.

On Ubuntu 14.04:

wget -qO- https://raw.github.com/cozy-labs/cozy-deploy/master/install.sh | sudo bash

More information: https://github.com/cozy-labs/cozy-deploy

I hope you’ll enjoy it! Do not hesitate to leave your feedbacks below :blush:


New Cozy Dockerfile available
#2

Vraiment très bien :wink: Je vais l’essayer tout de suite.
Dommage qu’il ne soit pas basé sur ma nouvelle archi :wink:


#3

(In english)

No, it is not (yet) based on “per-app-containers” because I am waiting the work of @poupotte on CouchDB mutualization to proceed :wink:

With that modification we will be able to have one CouchDB container to rule them all, and then split all other components into separated containers \o/


#4

Seems great. I’ll test it on my Syno with Debian chroot to see how things are going.


#5

when you deploy multiple cozy, are some of the resource mutual or each instance consume 2Go of RAM ?


#6

Not yet. Although I am working on it :slight_smile:


#7

thanks for your answer


#8

@Kload @frank would it be imaginable for the long term that cozy deploy would be a supported tool from the cozy team?
If yes, i would like to suggest then to have a setup process which may install the steps described on ingredients description.
The thinking to have a tool which may setup merely cozy clouds, and make a monitoring of each clouds possible make me dreaming… :smile:


#9

@cemoi71 That would be a great idea but currently we are a little bit owerhelmed by features addition. So, it’s something that we’ll do later.


#10

many thanks for answering frank, does it means that is already on a cozy-team list for the long term? (i know that you are all good busy with your current task).
i thought that could be a well fine product for your team to offer to the cozy end-user…

Wish you have good continuation. :smile:


#11

Hey,

nice tool, but doesn’t works on my server.
Using Ubuntu 14.04 LTS, fresh install, only installed Docker.

Automatic install from Github didn’t work,
so used the manual one, ended up giving /usr/local/bin/cozy-deploy chmod 755 to start the script.

Where the script hangs is this part:

root@bar:~# cozy-deploy deploy foo.bar.st
> Finding a free port
> Generating the self-signed SSL certificate
Generating a 2048 bit RSA private key
........................................................................+++
.......................................+++
writing new private key to '/etc/cozy-deploy/ssl/foo.bar.st.key'
-----
> Writing Nginx configuration
* Reloading nginx configuration nginx                                   [ OK ]
> Creating shared volumes

> Running the container:
e3721ee1473be548c28d2fc7473dca670efa8dbd27e47234ea7a3e376d4ae01c
> Waiting for your Cozy to be up and running...

After this message nothing happens, looked up on htop, there is movement, but after 1 hour nothing happens.

When I type cozy-deploy list
I get this:

DOMAIN RUNNING PORT
Error response from daemon: Invalid filter ‘image’


#12

Hello @ploedman, welcome aboard :smile:

cozy-deploy is a pretty old experiment, not maintained anymore, so I don’t know if it still works.

Whate are-you trying to achieve? If you want to try the unofficial Docker image, you may have a look at https://github.com/cozy-labs/cozy-docker/


#13

Hello @Clochix

Didn’t know that the script isn’t maintained anymore, that explains why it didn’t work.

I used the official Docker from ubuntu.

The script seemed really handy because of the ability to make in a simply way more cozy instances, avoiding to make it manually.

Is AUS support still needed? Couldn’t find any good Tutorials to do this on 14.04.

Thank you for your responses.

Greetings


#14

Hello @ploedman,

I added a warning to the documentation of cozy-deploy to mention the application is outdated. You’re right, this was a great and useful tool. Unfortunately, our team is too small to support a lot of different images of Cozy, and Docker’s support has never been one of our top priorities. We know lot of people would really like a better supported Docker image, but we don’t have time to maintain it by ourself.

This script is outdated because it hasn’t been updated for the last version of our Dockerfile, but updating it should’nt be too hard. Feel free to contribute, we would be really glad merging any contribution :smile:

Did you succeed running Cozy with Docker on Ubuntu?