Tests

Para correr los test de la aplicación, se deben levantar todos los servicios y luego inicializar la configuración de test.

Tests de Ckan

$ docker-compose -f dev.yml up --build -d portal
$ docker exec andino bash /etc/ckan_init.d/tests/install_solr4.sh    
$ docker exec andino bash /etc/ckan_init.d/tests/install_nodejs.sh    
$ docker exec andino bash -c 'su -c "bash /etc/ckan_init.d/tests/run_all_tests.sh" -l $USER'

Probar la instalación con SSL en Vagrant (Instalando nginx)

Instalación de andino

Primero debemos evitar instalar la aplicación en vagrant, ya que pasaremos un parametro mas. Para eso modificamos el Vagrantfile cambiando las líneas:

-INSTALL_APP = true
-UPDATE_APP = !INSTALL_APP
+INSTALL_APP = false
+UPDATE_APP = false

Y luego levantar la VM con vagrant up.

Luego entramos a la aplicación y corremos el siguiente comando:

sudo -E python ./install.py --error_email admin@example.com --site_host 192.168.23.10 --database_user db_user --database_password db_pass --datastore_user data_db_user --datastore_password data_db_pass --nginx_port 127.0.0.1:8000

Esto instalará la aplicación, pero solo la hará accesible desde localhost:8000.

Instalar y configurar nginx

Luego instalamos nginx en el host sudo apt install nginx.

Generamos los certificados locales:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/andino.key -out /etc/nginx/ssl/andino.crt

Creamos la configuracion de nginx (no apta para producción) en /etc/nginx/sites-available/001-andino.conf:

upstream wsgi_andino {
  # fail_timeout=0 means we always retry an upstream even if it failed
  # to return a good HTTP response (in case the gunicorn master nukes a
  # single worker for timing out).

  server 127.0.0.1:8000 fail_timeout=0;
}

server {
    listen 80;
    #example: server_name www.datos.gob.ar datos.gob.ar;
    server_name dev.andino.gob.ar dev.andino.gob.ar;
    return 301 https://$host$request_uri;
}
server {
    listen   443;
    server_name dev.andino.gob.ar;

    ssl    on;
    ssl_certificate   /etc/nginx/ssl/andino.crt;
    ssl_certificate_key    /etc/nginx/ssl/andino.key;

    client_max_body_size 4G;
    keepalive_timeout 5;
    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Protocol https;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://wsgi_andino;
            break;
        }
    }
    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

}

Activamos el sitio:

sudo rm /etc/nginx/sites-enabled/default -rf
sudo ln -s /etc/nginx/sites-available/001-andino.conf /etc/nginx/sites-enabled/001-andino.conf

sudo systemctl restart nginx

Finalmente accedemos al sitio en http://192.168.23.10:80, y el mismo nos deberia redireccionar a la versión https. El explorador nos mostrará una advertencia sobre el sitio, ya que no podrá validar los certificados.