Istallazione classica

Le seguenti istruzioni sono basate su sistema operativo Ubuntu 18.04 LTS.

Installazione di node.js e Yarn

G3W-ADMIN usa il gestore di pacchetti javacript Yarn e Node.js

sudo apt-get install -y nodejs-legacy npm

per l”installazione di Yarn, seguire le istruzioni disponibili qui:

https://yarnpkg.com/en/docs/install#debian-stable

note

If your account is connected to the provider, we”ll try to setup the webhook automatically. If something fails, you can still setup the webhook manually.

Creazione di una virtualenv

Virtualenv

Le seguenti istruzioni sono basate su Python versione 3.6

Installa python pip

sudo apt-get install python3-pip

ora possiamo installare virtualenvwrapper

sudo pip3 install virtualenvwrapper

Per attivare virtuenvwrapper all”accesso al sistema, aggiungi le seguenti righe al file di configurazione “bashrc” del tuo utente

nano ~/.bashrc
....
export WORKON_HOME=<path_to_virtualenvs_directory>
source /usr/local/bin/virtualenvwrapper.sh

Creazione di Virtualenv

To create a virtualnenv is sufficent call mkvirtualenv commando follow by the identification name for virtualenv (to use QGIS API into a virtualenv only solution is to give access python system site-packages to it using –system-site-packages option)

mkvirtualenv g3wsuite

Installazione di G3W-SUITE

Il primo passo è installare i pacchetti di librerie di sviluppo per il modulo python da installare con requiriments.txt

sudo apt-get install -y \
    libxml2-dev \
    libxslt-dev \
    postgresql-server-dev-all \
    libgdal-dev \
    python-dev

dopo è necessario installare il modulo python corretto per la libreria GDAL, controllare la versione e installare il modulo corretto

export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal

pip install GDAL==<installed_version or closest>

Impostiamo il file local_config.py

G3W-ADMIN è un”applicazione Django e per funzionare è necessario impostare un file config.py. Per iniziare copiamo il file local_settings.example.py, impostiamo il database e settiamo le altre configurazioni:

cd g3w-admin/g3w-admin/base/settings
cp local_settings_example.py local_settings.py

imposta il nome del database, la media root e il nome della sessione dei cookies:

...

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': '<db_name>',
        'USER': '<db_user>',
        'PASSWORD': '<db_user_password>',
        'HOST': '<db_host>',
        'PORT': '<db_port>',
    }
}

...

DATASOURCE_PATH = '<static_path_to_gis_data_source>'

...

MEDIA_ROOT = '<path_to_media_root>'

...

SESSION_COOKIE_NAME = '<unique_session_id>'

Con comandi paver

G3W-ADMIN ha una serie di comandi paver CLI per amministrare la suite. Dopo aver preparato l”ambiente è sufficiente invocare paver install task

paver install

Avviare G3W-SUITE

Per eseguire l”applicazione con paver

paver start

e per stopparla

paver stop

G3W-ADMIN è un”applicazione Django, quindi è possibile eseguire l”applicazione con i comandi standard manage.py di Django

./manage.py runserver

Deploy di G3W-SUITE

Come altre applicazioni Django, G3W-SUITE può essere implementato dalle sue funzionalità wsgi. Sul Web se semplice trovare tutorial per deployare un”applicazione Django.

Il modo più semplice è usare Apache2 come WEB server e il suo modulo mod_wsgi.

Alternative solutions are:

Passi per l”installazione manuale

L”installazione consigliata è basata sull”utilizzo dello script paver come menzionato sopra, ma nel caso in cui sia necessario personalizzare il processo di installazione, ecco i passaggi di costruzione e configurazione:

Creazione static js code

# Install yarn (requires root):
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | \
    tee /etc/apt/sources.list.d/yarn.list
apt-get update && sudo apt install -y yarn
# Back to unprivileged user, from the repository directory, run:
yarn --ignore-engines --ignore-scripts --prod
nodejs -e "try { require('fs').symlinkSync(require('path').resolve('node_modules/@bower_components'), 'g3w-admin/core/static/bower_components', 'junction') } catch (e) { }"

Assicurati che i build component siano disponibili in modalità statica e raccolti in un secondo momento

cd g3w-admin/core/static
ln -s "../../../node_modules/@bower_components" bower_components

Requisiti di installazione

Probabilmente all”interno di un virtual env:

pip install -r requirements.tx

Settaggio di Django

python manage.py collectstatic --noinput
python manage.py migrate --noinput

Installa alcuni dispositivi per EPSG e altre opzioni di suite:

for FIXTURE in 'BaseLayer.json' 'G3WGeneralDataSuite.json' 'G3WMapControls.json' 'G3WSpatialRefSys.json'; do
    python manage.py loaddata  core/fixtures/${FIXTURE}
done

Sincronizza le voci dell”albero dei menu (riesegui questo comando nel caso in cui tu abbia installato moduli opzionali e non siano visibili nella struttura dei menu dell”amministratore):

python manage.py sitetree_resync_apps

Continuous integration testing

I test CI vengono eseguiti automaticamente su CircleCI solo per il dev branch.

La configurazione del Docker Compose utilizzata nei test CI è disponibile su docker-compose.yml.

Un”altra configurazione per l”esecuzione dei test locali è fornita con docker-compose-local.yml e può essere utilizzata anche per i test locali eseguendo:

docker-compose -f docker-compose-local.yml up

L”immagine di prova viene creata dall”immagine di dipendenza e eseguirà tutti i passaggi di installazione e compilazione dal repository locale.

L”immagine di dipendenza viene creata da Dockerfile.deps.