-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Ulisse Cavallini
committed
Jan 8, 2024
0 parents
commit f19a65b
Showing
12 changed files
with
1,014 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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", | ||
] |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
sphinx_rtd_theme | ||
myst-parser |