Skip to content

Commit

Permalink
initial upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Ulisse Cavallini committed Jan 8, 2024
0 parents commit f19a65b
Show file tree
Hide file tree
Showing 12 changed files with 1,014 additions and 0 deletions.
18 changes: 18 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Deploy Sphinx documentation to Pages

on:
push:
branches: [main] # branch to trigger deployment

jobs:
pages:
runs-on: ubuntu-20.04
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
steps:
- id: deployment
uses: sphinx-notes/pages@v3
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Installazione Geonode con Docker

La documentazione è reperibile a [questo link](https://urbanlegacylab.github.io/Geonode_installazione/).
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
32 changes: 32 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'Installazione Geonode con Docker'
copyright = '2024, Future Urban Legacy Lab - Faunalia'
author = 'Future Urban Legacy Lab - Faunalia'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = ['sphinx_rtd_theme', 'myst_parser']

templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']



# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']

myst_enable_extensions = [
"colon_fence",
"html_admonition",
]
Binary file added docs/img/modifica_password_geonode_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/modifica_password_geonode_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/modifica_password_geonode_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Installazione Geonode con Docker
=================================

.. toctree::
:maxdepth: 2
:caption: Indice:

installazione_geonode
222 changes: 222 additions & 0 deletions docs/installazione_geonode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
# Installazione Geonode

La presente guida segue i passi e le indicazioni della [documentazione ufficiale](https://docs.geonode.org/en/master/install/basic/index.html).

## Installazione delle dipendenze

Le seguenti dipendenze sono necessarie:

* docker
* docker-compose
* python-venv

Queste possono essere installate su Debian con il comando:

```bash
apt install docker.io docker-compose python3.10-venv
```

## Preparazione di Geonode

È necessario clonare il repository github di Geonode, con il comando:

```bash
git clone https://github.com/GeoNode/geonode-project.git -b 4.1.x
```

Dopodiché, è possibile attivare il virtual environment, ed installare la versione richiesta di Django

```bash
python3 -m venv ./.venvs/geonodefull
source ./.venvs/geonodefull/bin/activate
pip install Django==3.2.13
```

Possiamo poi generare il progetto Django, in una nuova cartella “geonodefull”:

```bash
django-admin startproject --template=./geonode-project -e py,sh,md,rst,json,yml,ini,env,sample,properties -n monitoring-cron -n Dockerfile geonodefull
```

E generare il file .env di partenza, specificando il dominio (sottodominio.esempio.tld), la mail dell’utente admin (mail@esempio.tld, utilizzata per la richiesta del certificato ssl), il tipo di ambiente (prod), e l’abilitazione dell’https:

:::{attention}
Questo passaggio assume che il dominio `sottodominio.esempio.tld` sia valido, punti al server su cui viene installato geonode, e che quest'ultimo sia raggiungibile dall'esterno.

In caso contrario, omettere le direttive `--https`, `--env_type`, `--hostname` e `--mail` per configurare Geonode senza https.
:::

```bash
python3 geonodefull/create-envfile.py --https --env_type prod --hostname sottodominio.esempio.tld --email mail@esempio.tld
```

Possiamo quindi entrare nella nuova cartella, generare le immagini di docker, ed avviare i processi, con i comandi seguenti. Questa fase richiederà un po’ di tempo.

```bash
cd geonodefull
docker-compose build
docker-compose up -d
```

Quando tutti i container sono correttamente avviati, geonode dovrebbe essere attivo sul dominio specificato, in https.

## Modifica della password di Geoserver

L’istanza di Geonode così avviata restituirà un errore in fase di caricamento dei file. Questo accade poiché la generazione del file env genera una password di Geoserver, che non viene correttamente impostata all’interno dello stesso. Vedi anche:

* [https://github.com/GeoNode/geonode/issues/8024](https://github.com/GeoNode/geonode/issues/8024)
* [https://github.com/GeoNode/geonode/issues/11570](https://github.com/GeoNode/geonode/issues/11570)

È quindi necessario:

1. Recuperare, nel file env, la password generata per Geoserver, alla riga “GEOSERVER_ADMIN_PASSWORD”
2. Collegarsi alla pagina di Geoserver, all’indirizzo [https://dominio.scelto.tld/geoserver](https://dominio.scelto.tld/geoserver) (ad esempio, [https://sottodominio.esempio.tld/geoserver](https://sottodominio.esempio.tld/geoserver)
3. Accedere con le credenziali di default: user=admin password=geoserver
4. Cliccare su “Users, Groups, Roles” nella sezione “Security”

![modifica_password_geonode_1](img/modifica_password_geonode_1.png)

5. Cliccare su “Users/Groups”, “admin”

![modifica_password_geonode_2](img/modifica_password_geonode_2.png)

6. Inserire negli appositi campi la password recuperata al punto 1

![modifica_password_geonode_3](img/modifica_password_geonode_3.png)

7. Cliccare su “Save”, in fondo alla pagina

## Configurazione mail

Per configurare la mail, è necessario modificare il file .env, nell’apposita sezione, ed abilitare le seguenti opzioni, sostituendo server, username e password:

```unixconfig
EMAIL_ENABLE=True
DJANGO_EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
DJANGO_EMAIL_HOST=smtp.server.tld
DJANGO_EMAIL_PORT=587
DJANGO_EMAIL_HOST_USER=smtp_user@server.tld
DJANGO_EMAIL_HOST_PASSWORD="Password_corretta"
DJANGO_EMAIL_USE_TLS=True
DEFAULT_FROM_EMAIL='user_geonode@server.tld'
```

:::{attention}
Questo passaggio assume che il server `smtp.server.tld` utilizzi TLS sulla porta 587.

In caso contrario, modificare le opzioni `DJANGO_EMAIL_USE_TLS` e `DJANGO_EMAIL_PORT` di conseguenza.
:::

In particolare:

* `DJANGO_EMAIL_HOST` rappresenta il nome, o l'indirizzo IP, del server smtp da utilizzare
* `DJANGO_EMAIL_PORT` rappresenta la porta da utilizzare per la connessione
* `DJANGO_EMAIL_HOST_USER` rappresenta il nome utente da utilizzare per l'autenticazione
* `DJANGO_EMAIL_HOST_PASSWORD` rappresenta la password da utilizzare per l'autenticazione
* `DJANGO_EMAIL_USE_TLS` indica se utilizzare la crittazione TNS
* `DEFAULT_FROM_EMAIL` indica l'indirizzo email dal quale verranno inviati i messaggi

Dopodiché, ricreare i container con

```bash
docker-compose up -d
```

## Registrazione utenti

Per consentire la registrazione degli utenti, modificare nel file .env le seguenti opzioni

```unixconfig
ACCOUNT_OPEN_SIGNUP=True
ACCOUNT_EMAIL_REQUIRED=True
```

Dopodiché, ricreare i container con

```bash
docker-compose up -d
```

## Configurazione Recaptcha

Per configurare il Recaptcha Google alla registrazione, inserire le seguenti righe nel file .env, inserendo le chiavi corrette (versione v2):

```unixconfig
RECAPTCHA_ENABLED=True
RECAPTCHA_PUBLIC_KEY=*******************************************
RECAPTCHA_PRIVATE_KEY=*******************************************
```

Dopodiché, ricreare i container con

```bash
docker-compose up -d
```

## Chiusura porte

I container comunicano tra loro tramite la rete interna di Docker, ed il container di Geonode comunica con l’esterno. È quindi possibile commentare, all’interno del file docker-compose.yml, tutte le porte salvo quelle di Geonode. Riportiamo di seguito un estratto del file yml, nel quale sarà necessario commentare le porte non richieste.

Porte Geonode aperte:

```yaml
geonode:
image: geonode/nginx:1.23.3
build: ./docker/nginx/
container_name: nginx4${COMPOSE_PROJECT_NAME}
environment:
- HTTPS_HOST=${HTTPS_HOST}
- HTTP_HOST=${HTTP_HOST}
- HTTPS_PORT=${HTTPS_PORT}
- HTTP_PORT=${HTTP_PORT}
- LETSENCRYPT_MODE=${LETSENCRYPT_MODE}
- HTTP_SCHEME=${HTTP_SCHEME}
- HTTP_PROXY_NAME=${HTTP_PROXY_NAME}
- RESOLVER=127.0.0.11
ports:
- "${HTTP_PORT}:80"
- "${HTTPS_PORT}:443"
```
Porte di Geoserver chiuse (commentate):
```yaml
geoserver:
image: geonode/geoserver:2.23.0
build: ./docker/geoserver/
container_name: geoserver4${COMPOSE_PROJECT_NAME}
healthcheck:
test: "curl --fail --silent --write-out 'HTTP CODE : %{http_code}\n' --output /dev/null http://127.0.0.1:8080/geoserver/ows"
start_period: 60s
interval: 60s
timeout: 10s
retries: 10
env_file:
- .env
# ports:
# - "8080:8080"
```

Porte di jenkins chiuse (commentate):

```yaml
jenkins:
image: jenkins/jenkins:2.164-jdk11
container_name: jenkins4${COMPOSE_PROJECT_NAME}
user: jenkins
# ports:
# - '${JENKINS_HTTP_PORT}:${JENKINS_HTTP_PORT}'
# - '${JENKINS_HTTPS_PORT}:${JENKINS_HTTPS_PORT}'
# - '50000:50000'
# network_mode: "host"
```

Dopo aver commentato le porte, ricreare i container con

```bash
docker-compose up -d
```

## Risoluzione problemi

Nel caso in cui la pagina di Geoserver presentasse alcuni elementi in http semplice, verificare le configurazioni presenti a [questa pagina](https://docs.geonode.org/en/master/install/advanced/core/index.html#install-and-enable-https-secured-connection-through-the-let-s-encrypt-provider).
35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=_build

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.https://www.sphinx-doc.org/
exit /b 1
)

if "%1" == "" goto help

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd
2 changes: 2 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
sphinx_rtd_theme
myst-parser

0 comments on commit f19a65b

Please sign in to comment.