.. _quickstart:

=============================
Quickstart
=============================

Progetti
========================
Provvedere alla creazione del progetto tramite comando jmb-start.
Il comando accetta come parametro la versione di django desiderata (es. p18 per Django 1.8).
È consigliabile optare per l'ultima versione stabile di Django di cui sia stato creato un apposito skeleton.

.. code-block:: python

    jmb-start -t p18


Il progetto andrà nominato come il dominio di pertinenza

.. code-block:: python

    www.nomeprogetto.it


Si procede alla modifica del file setup.py, nel quale è necessario indicare i required_install.

Si crea un db prostgres con il medesimo nome del progetto

.. code-block:: bash

    createdb www.nomeprogetto.it


Si crea un file local.py, inserendo i dati del db.

Terminata la fase di creazione è necessario pushare il progetto realizzato sul repository hg.thundersystems.it

.. code-block:: python

    hg clone . ssh://dev@hg.thundersystems.it/jmb-siti/nomeprogetto


Il medesimo path andrà aggiunto al file .hg/hgrc alla voce default.

.. code-block:: python

    [paths]
    default = ssh://dev@hg.thundersystems.it//home/hg/thunder/jmb/jmb.core


Applicazioni
========================

Per creare le app usare il comdando jmb-start con paramentro -t japp

.. code-block:: python

    jmb-start -t japp nome.app

Terminata la fase di creazione è necessario pushare l'app realizzata sul repository hg.thundersystems.it

.. code-block:: python

    hg clone . ssh://dev@hg.thundersystems.it/jmb-siti/jmb/custom/nomeapp

Per inserire l'app nel progetto reigstrarla nel file buildout.cfg, nel file setup.py e nel /web/settings/base.py.

Indirizzo email Jumbo
========================
Ogni progetto deve avere un indirizzo email jumbo@nomeprogetto.it, che verrà utilizzato per creare i vari account esterni.

Deploy
========================
Sul server copiare il codice del sito con mercurial

.. code-block:: python

    hg clone . ssh://dev@hg.thundersystems.it/jmb-siti/nomeprogetto

Modificare web/settings/local.py

Creare utente PostgreSQL

.. code-block:: python

    su – postgres
    createuser -sP nomeuser

Creare database PostgreSQL con il medesimo nome del progetto assegnandogli l'utente precedentemente creato

.. code-block:: python

    createdb nomeprogetto -O nomeuser

Inizializzare il progetto con jmb-go con parametro -d (per "deployment")

.. code-block:: python

    jmb-go -d

Creare il file di configurazione di uWsgi

.. code-block:: python

    jmb-prepare -cw nomeprogetto

Creare il file di configurazione di Nginx

.. code-block:: python

    jmb-prepare -cN nomeprogetto

Modificare il file di configurazione di Nginx, in /etc/nginx/sites-available/ modificando le voci relative all'indirizzo da servire.
Sono presenti due sezioni denominate 'server': la primo è necessario per il redirect del sito senza il www, la seconda contiene l'indirizzo o gli indirizzi
effettivamente serviti.
Nella prima sezione modificare le voci server_name e return

.. code-block:: python

    server {
        listen         80;
        server_name    nomeprogetto.it;
        return         301 http://www.nomeprogetto.it;
    }

Nella seconda sezione modificare la voce server_name e selezionare la porta: 80 o 443

.. code-block:: python

    server {
        [...]
        listen      80;
        #    listen      443 ssl;
        server_name    nomeprogetto.it;
        [...]

Per attivare nginx sul progetto, creare un link simbolico dalla cartella sites-available alla cartella sites-enabled

.. code-block:: python

    ln -s www.nomeprogetto.it ../sites-available/

Riavviare il servizio di nginx

.. code-block:: python

    service nginx reload

Avviare il server, lanciando da dentro la cartella del progetto, il comando

.. code-block:: python

    dj start