.. _installation_guide/deploy/gnrdeploybuilder: deploybuilder ============= Il comando ``deploybuilder`` serve per creare automaticamente i file di configurazione necessari all'esecuzione di un'applicazione Genropy in produzione. Alla prima installazione si dovranno abilitare i servizi ``gnrdaemon`` e ``gnrsiterunner``, mentre per ogni nuovo sito si dovrà creare il file di configurazione di Nginx che collegherà la nostra applicazione con un nome di dominio Avviare gnrdaemon come servizio ------------------------------- Creare una directory *genro_conf* e spostarsi dentro di essa. Con il comando:: gnr app deploybuilder -g si crea il file gnrdaemon.service che è da spostare in /lib/systemd/system/gnrdaemon.service:: sudo mv gnrdaemon.service /lib/systemd/system/gnrdaemon.service si dovranno cambiare i permessi del file:: sudo chmod 644 /lib/systemd/system/gnrdaemon.service ricaricare l'elenco dei servizi disponibili:: sudo systemctl daemon-reload abilitare il servizio per l'avvio automatico:: sudo systemctl enable gnrdaemon.service avviare il servizio:: sudo systemctl start gnrdaemon.service Per verificare il funzionamento del servizio si possono usare i seguenti comandi:: sudo systemctl status gnrdaemon.service sudo journalctl -e -u gnrdaemon.service Avviare gnrsiterunner come servizio ----------------------------------- Similarmente a quanto fatto con gnrdaemon si dovrà configurare l'avvio di supervisord che a sua volta avvierà i processi necessari come gunicorn, gnrasync (per la gestione dei websocket) ed eventuali processi gnrworker (per le esecuzioni programmate dei batch). Con il comando:: gnr app deploybuilder -s si crea il file gnrsiterunner.service che è da spostare in /lib/systemd/system/gnrsiterunner.service:: sudo mv gnrsiterunner.service /lib/systemd/system/gnrsiterunner.service si dovranno cambiare i permessi del file:: sudo chmod 644 /lib/systemd/system/gnrsiterunner.service ricaricare l'elenco dei servizi disponibili:: sudo systemctl daemon-reload abilitare il servizio per l'avvio automatico:: sudo systemctl enable gnrsiterunner.service avviare il servizio:: sudo systemctl start gnrsiterunner.service .. hint:: Se quello che stiamo avviando è il primo progetto di Genropy, all'avvio del servizio riscontreremo un errore. Sarà necessario proseguire prima la configurazione di Nginx, e solo dopo ripetere l'avvio di *gnrsiterunner* Per verificare il funzionamento del servizio si possono usare i seguenti comandi:: sudo systemctl status gnrsiterunner.service sudo journalctl -e -u gnrsiterunner.service Configurazione Nginx -------------------- Con il comando:: gnr app deploybuilder -d mio.dominio.com miaapp creeremo un file miaapp.conf che istruirà Nginx su come rispondere alle chiamate per il dominio (mio.dominio.com nell'esempio), e instradarle verso i processi gunicorn dedicati. Il file creato andrà copiato nella cartella dei siti di nginx (*/etc/nginx/sites-enabled*):: sudo mv miaapp.conf /etc/nginx/sites-enabled Il comando creerà anche automaticamente :ref:`Il file gunicorn.py` nella cartella del sito e modificherà automaticamente la configurazione di supervisor in modo che il servizio *gnrsiterunner* avvii automaticamente i processi del nostro sito. Terminata la creazione dei file dovremo riavviare *gnrsiterunner* e Nginx:: sudo service gnrsiterunner restart sudo service nginx restart Certbot ------- Successivamente, se si desidera proteggere il traffico tramite https, è consigliabile utilizzare :ref:`Certbot` per automatizzare il processo