Zou 0.6.0 release: websocket support

Hi all,

You will find here the changelog for Zou 0.6.0. The Zou event stream is now based on websockets. So, it requires a few tweaks in your configuration to work properly.

The /etc/zou/gunicorn-events.conf file must be changed with the following lines:

accesslog = "/opt/zou/logs/gunicorn_events_access.log"
errorlog = "/opt/zou/logs/gunicorn_events_error.log"
workers = 1
worker_class = "geventwebsocket.gunicorn.workers.GeventWebSocketWorker"

And the Nginx configuration must look like this:

server {
    listen 80;
    server_name server_domain_or_IP;

    location /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://localhost:5000/;

    location /socket.io {
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://localhost:5001;

    location / {
        autoindex on;
        root  /opt/kitsu/dist;
        try_files $uri $uri/ /index.html;


  • Event stream is published through websockets. Which means you can update in realtime applications from your pipeline with production data.
  • External job queue can be configured to delegate CPU consuming or blocking functions to a python-rq worker.
  • Capability to store workstation logins in Zou database. From these data a presence log sheet can be generated in CSV format.
  • A task type can be linked to any kind of entity (asset, shot, sequence, layout scene or episode).
  • Shot CSV Import can now import shot with same name fromd different sequences.

That’s it! Thank you for your attention!