mirror of
https://github.com/Steffo99/sophon.git
synced 2024-12-22 14:54:22 +00:00
📔 Progress part 2
This commit is contained in:
parent
92e207f956
commit
defca6dff5
18 changed files with 478 additions and 65 deletions
|
@ -37,19 +37,19 @@ services:
|
||||||
environment:
|
environment:
|
||||||
# INSTALL: Set a random secret key!
|
# INSTALL: Set a random secret key!
|
||||||
- DJANGO_SECRET_KEY=change-me!!!
|
- DJANGO_SECRET_KEY=change-me!!!
|
||||||
|
# INSTALL: Configure your proxy details!
|
||||||
|
- DJANGO_PROXY_BASE_DOMAIN=dev.sophon.steffo.eu
|
||||||
|
- DJANGO_PROXY_PROTOCOL=http
|
||||||
# INSTALL: Configure your allowed hosts!
|
# INSTALL: Configure your allowed hosts!
|
||||||
- DJANGO_ALLOWED_HOSTS=api.dev.sophon.steffo.eu
|
- DJANGO_ALLOWED_HOSTS=api.dev.sophon.steffo.eu
|
||||||
# INSTALL: Configure your allowed origins! (* doesn't work)
|
# INSTALL: Configure your allowed origins! (* doesn't work)
|
||||||
- DJANGO_ALLOWED_ORIGINS=http://dev.sophon.steffo.eu
|
- DJANGO_ALLOWED_ORIGINS=http://dev.sophon.steffo.eu
|
||||||
# INSTALL: Configure your proxy details!
|
|
||||||
- DJANGO_PROXY_BASE_DOMAIN=dev.sophon.steffo.eu
|
|
||||||
- DJANGO_PROXY_PROTOCOL=http
|
|
||||||
# INSTALL: Configure your static url!
|
# INSTALL: Configure your static url!
|
||||||
- DJANGO_STATIC_URL=http://static.dev.sophon.steffo.eu/django-static/
|
- DJANGO_STATIC_URL=http://static.dev.sophon.steffo.eu/django-static/
|
||||||
# INSTALL: Set your language!
|
# INSTALL: Set your language!
|
||||||
- DJANGO_LANGUAGE_CODE=en-us
|
- DJANGO_LANGUAGE_CODE=en-us
|
||||||
# INSTALL: Set your timezone!
|
# INSTALL: Set your timezone!
|
||||||
- DJANGO_TIME_ZONE=CET
|
- DJANGO_TIME_ZONE=Europe/Rome
|
||||||
# INSTALL: Set the superuser login details!
|
# INSTALL: Set the superuser login details!
|
||||||
- DJANGO_SU_USERNAME=root
|
- DJANGO_SU_USERNAME=root
|
||||||
- DJANGO_SU_EMAIL=root@example.org
|
- DJANGO_SU_EMAIL=root@example.org
|
||||||
|
@ -80,7 +80,6 @@ services:
|
||||||
proxy:
|
proxy:
|
||||||
image: ghcr.io/steffo99/sophon-proxy:latest
|
image: ghcr.io/steffo99/sophon-proxy:latest
|
||||||
ports:
|
ports:
|
||||||
# INSTALL: Change this port based on your own needs!
|
|
||||||
- "30033:80"
|
- "30033:80"
|
||||||
environment:
|
environment:
|
||||||
# INSTALL: Configure your proxy details!
|
# INSTALL: Configure your proxy details!
|
||||||
|
|
|
@ -27,6 +27,10 @@ Qualsiasi **membro** di un :ref:`gruppo di ricerca` può creare nuovi notebook a
|
||||||
|
|
||||||
.. image:: creation.png
|
.. image:: creation.png
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Per motivi tecnici, i notebook non possono avere come slug ``backend``, ``frontend``, ``proxy``, ``api``, ``static`` e ``src``.
|
||||||
|
|
||||||
|
|
||||||
Stato del notebook
|
Stato del notebook
|
||||||
------------------
|
------------------
|
||||||
|
|
|
@ -3,13 +3,13 @@ I concetti
|
||||||
|
|
||||||
Questa sezione illustra i concetti chiave di Sophon e il loro funzionamento.
|
Questa sezione illustra i concetti chiave di Sophon e il loro funzionamento.
|
||||||
|
|
||||||
.. image:: diagram_full.png
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 3
|
:maxdepth: 1
|
||||||
|
|
||||||
1_instances/index
|
1_instances/index
|
||||||
2_users/index
|
2_users/index
|
||||||
3_researchgroups/index
|
3_researchgroups/index
|
||||||
4_researchprojects/index
|
4_researchprojects/index
|
||||||
5_notebooks/index
|
5_notebooks/index
|
||||||
|
|
||||||
|
.. image:: diagram_full.png
|
21
docs/source/2_admin/1_installation/1_requirements.rst
Normal file
21
docs/source/2_admin/1_installation/1_requirements.rst
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
Requisiti dell'host
|
||||||
|
===================
|
||||||
|
|
||||||
|
- Una connessione ad Internet (solo in fase di installazione)
|
||||||
|
- `GNU Wget`_ (solo in fase di installazione)
|
||||||
|
- Un nome di dominio
|
||||||
|
- Un webserver (ad esempio, `Apache HTTPd`_)
|
||||||
|
- Un certificato SSL valido *(opzionale, ma raccomandato)*
|
||||||
|
- `Docker Engine`_
|
||||||
|
- `Docker Compose`_
|
||||||
|
|
||||||
|
.. hint::
|
||||||
|
|
||||||
|
È possibile ottenere gratuitamente un certificato SSL utilizzando `Letsencrypt`_!
|
||||||
|
|
||||||
|
|
||||||
|
.. _GNU Wget: https://www.gnu.org/software/wget/
|
||||||
|
.. _Apache HTTPd: https://httpd.apache.org/
|
||||||
|
.. _Docker Engine: https://docs.docker.com/engine/
|
||||||
|
.. _Docker Compose: https://docs.docker.com/compose/
|
||||||
|
.. _Letsencrypt: https://letsencrypt.org/
|
30
docs/source/2_admin/1_installation/2_preparing_compose.rst
Normal file
30
docs/source/2_admin/1_installation/2_preparing_compose.rst
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
Preparazione di Docker Compose
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Come ``root``, si crei una nuova cartella sul proprio sistema operativo in cui archiviare le risorse relative a Sophon:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:~# mkdir -p /dock/sophon
|
||||||
|
|
||||||
|
Successivamente, si scarichi il file ``docker-compose.yml`` all'interno della cartella dal repository di Sophon:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:~# cd /dock/sophon
|
||||||
|
|
||||||
|
root:/dock/sophon# wget "https://raw.githubusercontent.com/Steffo99/sophon/main/docker-compose.yml"
|
||||||
|
--2021-11-02 18:03:05-- https://raw.githubusercontent.com/Steffo99/sophon/main/docker-compose.yml
|
||||||
|
SSL_INIT
|
||||||
|
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
|
||||||
|
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133,
|
||||||
|
185.199.109.133, 185.199.110.133, ...
|
||||||
|
Connecting to raw.githubusercontent.com (raw.githubusercontent.com) 185.199.108.133:443...
|
||||||
|
connected.
|
||||||
|
HTTP request sent, awaiting response... 200 OK
|
||||||
|
Length: 2957 (2.9K) [text/plain]
|
||||||
|
Saving to: ‘docker-compose.yml’
|
||||||
|
|
||||||
|
docker-compose.yml 100%[===================>] 2.89K --.-KB/s in 0s
|
||||||
|
|
||||||
|
2021-11-02 18:03:05 (48.0 MB/s) - ‘docker-compose.yml’ saved [2957/2957]
|
17
docs/source/2_admin/1_installation/3_configuring_dns.rst
Normal file
17
docs/source/2_admin/1_installation/3_configuring_dns.rst
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
Configurazione DNS
|
||||||
|
==================
|
||||||
|
|
||||||
|
Si scelga il dominio (o sottodominio) sul quale si vuole che Sophon sia accessibile e si aggiungano i seguenti record DNS, sostituendo il dominio scelto a ``DOMINIO`` e gli indirizzi IPv4 e IPv6 del server al posto di `0.0.0.0` e `1234::1234`:
|
||||||
|
|
||||||
|
.. code-block:: dns
|
||||||
|
|
||||||
|
*.DOMINIO 1800 IN A 0.0.0.0
|
||||||
|
*.DOMINIO 1800 IN AAAA 1234::1234
|
||||||
|
DOMINIO 1800 IN A 0.0.0.0
|
||||||
|
DOMINIO 1800 IN AAAA 1234::1234
|
||||||
|
|
||||||
|
Sophon sarà accessibile ai seguenti indirizzi:
|
||||||
|
|
||||||
|
- l'interfaccia web a ``https://DOMINIO/``;
|
||||||
|
- l'API a ``https://api.DOMINIO/``;
|
||||||
|
- i notebook a ``https://SLUG.DOMINIO/``.
|
214
docs/source/2_admin/1_installation/4_configuring_compose.rst
Normal file
214
docs/source/2_admin/1_installation/4_configuring_compose.rst
Normal file
|
@ -0,0 +1,214 @@
|
||||||
|
Configurazione ``docker-compose.yml``
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
Si configuri con l'editor di testo preferito il file ``docker-compose.yml`` con le impostazioni desiderate.
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:/dock/sophon# open docker-compose.yml
|
||||||
|
|
||||||
|
In particolare, tutte le impostazioni precedute da ``# INSTALL`` vanno obbligatoriamente modificate.
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_SECRET_KEY``
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Specifica la chiave segreta da usare per i cookie di sessione.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_SECRET_KEY=do-not-use-this-key-in-production-or-you-will-get-hacked
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
Un modo facile per impostare la chiave è premere velocemente tasti a caso sulla tastiera!
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Cambiare la chiave segreta una volta installato Sophon invaliderà tutti gli accessi effettuati dagli utenti.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
La chiave segreta è un dato estremamente riservato: chiunque sia a conoscenza della chiave segreta potrà effettuare l'accesso come qualsiasi utente!
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
`SECRET_KEY <https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-SECRET_KEY>`_ nella documentazione di Django.
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_PROXY_BASE_DOMAIN``
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Specifica il dominio che dovrà essere usato come radice per il proxy, ovvero il ``DOMINIO`` per il quale si è configurato il DNS in precedenza.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_PROXY_BASE_DOMAIN=prod.sophon.steffo.eu
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Se non è specificato, Sophon verrà eseguito in modalità "sviluppo", e assegnerà porte libere del server ai :ref:`notebook` invece che sottodomini.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
L'opzione :ref:`\`\`APACHE_PROXY_BASE_DOMAIN\`\`` più avanti in questa guida, che deve coincidere con questo valore.
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_PROXY_PROTOCOL``
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Specifica il protocollo che dovrà essere usato nei mapping del proxy.
|
||||||
|
|
||||||
|
Si consiglia caldamente di utilizzare ``https``, ma è un valore valido anche ``http``.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_PROXY_PROTOCOL=https
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_ALLOWED_HOSTS``
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Specifica i domini da cui possono provenire le richieste alla pagina di amministrazione.
|
||||||
|
|
||||||
|
Per specificare più domini, è necessario separarli con dei pipe ``|`` .
|
||||||
|
|
||||||
|
Eccetto in configurazioni speciali, deve essere uguale a ``api.DOMINIO``.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_ALLOWED_HOSTS=api.prod.sophon.steffo.eu
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
`ALLOWED_HOSTS <https://docs.djangoproject.com/en/3.2/ref/settings/#allowed-hosts>`_ nella documentazione di Django
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_ALLOWED_ORIGINS``
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Specifica i domini da cui possono provenire le richieste all'API.
|
||||||
|
|
||||||
|
Per specificare più domini, è necessario separarli con dei pipe ``|`` .
|
||||||
|
|
||||||
|
Eccetto in configurazioni speciali, deve essere uguale a ``PROTOCOLLO://DOMINIO|https://sophon.steffo.eu``.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_ALLOWED_ORIGINS=https://prod.sophon.steffo.eu|https://sophon.steffo.eu
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
`Access-Control-Allow-Origin <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin>`_ su MDN
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_STATIC_URL``
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Specifica l'URL a cui saranno accessibili i file statici di Sophon.
|
||||||
|
|
||||||
|
Eccetto in configurazioni speciali, deve essere uguale a ``PROTOCOLLO://static.DOMINIO/django-static/``.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_ALLOWED_ORIGINS=http://static.prod.sophon.steffo.eu/django-static/
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Ci si assicuri di inserire la barra finale, altrimenti Sophon non funzionerà correttamente!
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
`STATIC_URL <https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-STATIC_URL>`_ nella documentazione di Django
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_LANGUAGE_CODE``
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Specifica la lingua che deve usare Sophon nei messaggi di errore.
|
||||||
|
|
||||||
|
Usa il formato `language code`_ di Django.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_LANGUAGE_CODE=en-us
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
Generalmente è una buona idea impostarlo a ``en-us`` per facilitare la risoluzione di eventuali problemi.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
`LANGUAGE_CODE <https://docs.djangoproject.com/en/3.2/ref/settings/#language-code>`_ nella documentazione di Django
|
||||||
|
|
||||||
|
.. _language code: https://docs.djangoproject.com/en/3.2/topics/i18n/#term-language-code
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_TIME_ZONE``
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Specifica il fuso orario che deve usare Sophon nell'interfaccia di amministrazione.
|
||||||
|
|
||||||
|
Usa il formato `tzdata`_.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_TIME_ZONE=Europe/Rome
|
||||||
|
|
||||||
|
.. hint::
|
||||||
|
|
||||||
|
Il fuso orario italiano è ``Europe/Rome``.
|
||||||
|
|
||||||
|
.. _tzdata: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_SU_USERNAME``
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Specifica il nome del :ref:`superutente` che verrà automaticamente creato qualora il database non contenga altri utenti.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_SU_USERNAME=root
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_SU_EMAIL``
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Specifica l'email del :ref:`superutente` che verrà automaticamente creato qualora il database non contenga altri utenti.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_SU_USERNAME=bot@steffo.eu
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Attualmente, l'email non è utilizzata, ma è richiesta da Django per la creazione di un nuovo utente.
|
||||||
|
|
||||||
|
|
||||||
|
``DJANGO_SU_PASSWORD``
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Specifica la password del :ref:`superutente` che verrà automaticamente creato qualora il database non contenga altri utenti.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- DJANGO_SU_PASSWORD=square
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
La password è un dato estremamente riservato, in quanto chiunque ne venga a conoscenza potrà accedere a Sophon con pieni privilegi!
|
||||||
|
|
||||||
|
|
||||||
|
``APACHE_PROXY_BASE_DOMAIN``
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Specifica il dominio che dovrà essere usato come radice per il proxy, ovvero il ``DOMINIO`` per il quale si è configurato il DNS in precedenza.
|
||||||
|
|
||||||
|
.. code-block:: yml
|
||||||
|
|
||||||
|
- APACHE_PROXY_BASE_DOMAIN=dev.sophon.steffo.eu
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
L'opzione :ref:`\`\`DJANGO_PROXY_BASE_DOMAIN\`\`` più indietro in questa guida, che deve coincidere con questo valore.
|
48
docs/source/2_admin/1_installation/5_pulling_images.rst
Normal file
48
docs/source/2_admin/1_installation/5_pulling_images.rst
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
Download delle immagini Docker
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Si utilizzi `Docker Compose`_ per scaricare le `immagini`_ Docker necessarie all'avvio di Sophon:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:/dock/sophon# docker compose pull
|
||||||
|
[+] Running 4/4
|
||||||
|
⠿ proxy Pulled 1.5s
|
||||||
|
⠿ frontend Pulled 1.4s
|
||||||
|
⠿ db Pulled 1.9s
|
||||||
|
⠿ backend Pulled 1.6s
|
||||||
|
|
||||||
|
Inoltre, si scarichi manualmente l':ref:`immagine del Notebook` che può essere avviata da Sophon:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:/dock/sophon# docker image pull "ghcr.io/steffo99/sophon-jupyter:latest"
|
||||||
|
latest: Pulling from steffo99/sophon-jupyter
|
||||||
|
7b1a6ab2e44d: Already exists
|
||||||
|
578d7ac380c6: Pull complete
|
||||||
|
37f1e0b584f6: Pull complete
|
||||||
|
3c7282703390: Pull complete
|
||||||
|
b38aa558f711: Pull complete
|
||||||
|
1412103d568f: Pull complete
|
||||||
|
67419a9a821e: Pull complete
|
||||||
|
37e6cc015184: Pull complete
|
||||||
|
7d9316e2b57c: Pull complete
|
||||||
|
a7f024508c72: Pull complete
|
||||||
|
f3eae3c301a1: Pull complete
|
||||||
|
d3e2107efade: Pull complete
|
||||||
|
d94bc6f8f069: Pull complete
|
||||||
|
1e1dc3e818ad: Pull complete
|
||||||
|
c975ee664182: Pull complete
|
||||||
|
101cfcc0e15b: Pull complete
|
||||||
|
bf991a0d7538: Pull complete
|
||||||
|
4c044af18c7e: Pull complete
|
||||||
|
605d8c6e8eba: Pull complete
|
||||||
|
ed06f2ae4a88: Pull complete
|
||||||
|
ed8b1c841d10: Pull complete
|
||||||
|
468fe9a390ae: Pull complete
|
||||||
|
Digest: sha256:5d42e5e40e406130c688914d6a58aa94769eab03620b53e0fd409a7fb2682a01
|
||||||
|
Status: Downloaded newer image for ghcr.io/steffo99/sophon-jupyter:latest
|
||||||
|
ghcr.io/steffo99/sophon-jupyter:latest
|
||||||
|
|
||||||
|
.. _Docker Compose: https://docs.docker.com/compose/
|
||||||
|
.. _immagini: https://docs.docker.com/engine/reference/commandline/images/
|
22
docs/source/2_admin/1_installation/6_starting_sophon.rst
Normal file
22
docs/source/2_admin/1_installation/6_starting_sophon.rst
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Avvio di Sophon
|
||||||
|
===============
|
||||||
|
|
||||||
|
Si utilizzi `Docker Compose`_ per eseguire le `immagini`_ di Sophon precedentemente scaricate:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:/dock/sophon# docker compose up -d
|
||||||
|
[+] Running 4/4
|
||||||
|
⠿ Container sophon-db-1 Started 11.3s
|
||||||
|
⠿ Container sophon-frontend-1 Started 11.7s
|
||||||
|
⠿ Container sophon-backend-1 Started 10.1s
|
||||||
|
⠿ Container sophon-proxy-1 Started 11.5s
|
||||||
|
|
||||||
|
Si verifichi che i container si siano avviati correttamente con:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:/dock/sophon# docker compose logs
|
||||||
|
|
||||||
|
.. _Docker Compose: https://docs.docker.com/compose/
|
||||||
|
.. _immagini: https://docs.docker.com/engine/reference/commandline/images/
|
62
docs/source/2_admin/1_installation/7_host_reverse_proxy.rst
Normal file
62
docs/source/2_admin/1_installation/7_host_reverse_proxy.rst
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
Configurazione del webserver dell'host
|
||||||
|
======================================
|
||||||
|
|
||||||
|
Si configuri il webserver dell'host per inoltrare tutto il traffico dalla porta 443 (o 80, se si è selezionato ``http`` in :ref:`\`\`DJANGO_PROXY_PROTOCOL\`\``) alla porta locale 30033.
|
||||||
|
|
||||||
|
Sono allegate le istruzioni per il webserver `Apache HTTPd`_; possono essere però adattate se si vuole usare un webserver diverso, come `NGINX`_ o `caddy`_.
|
||||||
|
|
||||||
|
.. _Apache HTTPd: https://httpd.apache.org/
|
||||||
|
.. _nginx: https://www.nginx.com/
|
||||||
|
.. _caddy: https://caddyserver.com/
|
||||||
|
|
||||||
|
|
||||||
|
Con Apache HTTPd
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Ci si assicuri che `mod_rewrite`_, `mod_proxy`_, `mod_proxy_http`_ e `mod_proxy_wstunnel`_ siano attivati.
|
||||||
|
|
||||||
|
Si aggiungano i seguenti ``VirtualHost`` alla configurazione:
|
||||||
|
|
||||||
|
.. code-block:: apacheconf
|
||||||
|
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName "DOMINIO"
|
||||||
|
ServerAlias "*.DOMINIO"
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
.. code-block:: apacheconf
|
||||||
|
|
||||||
|
<VirtualHost *:443>
|
||||||
|
ServerName "DOMINIO"
|
||||||
|
ServerAlias "*.DOMINIO"
|
||||||
|
|
||||||
|
SSLEngine on
|
||||||
|
SSLCertificateFile "/PERCORSO/ALLA/CATENA/DI/CHIAVI/PUBBLICHE/SSL"
|
||||||
|
SSLCertificateKeyFile "/PERCORSO/ALLA/CHIAVE/PRIVATA/SSL"
|
||||||
|
|
||||||
|
ProxyPreserveHost On
|
||||||
|
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{HTTP:Upgrade} =websocket [NC]
|
||||||
|
RewriteRule /(.*) ws://127.0.0.1:30033/$1 [P,L]
|
||||||
|
RewriteRule /(.*) http://127.0.0.1:30033/$1 [P,L]
|
||||||
|
|
||||||
|
Protocols h2 http/1.1
|
||||||
|
Header always set Strict-Transport-Security "max-age=63072000"
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
Infine, si riavvii `Apache HTTPd`_:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root:/dock/sophon# systemctl restart httpd
|
||||||
|
|
||||||
|
|
||||||
|
.. _mod_rewrite: https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
|
||||||
|
.. _mod_proxy: https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
|
||||||
|
.. _mod_proxy_http: https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html
|
||||||
|
.. _mod_proxy_wstunnel: https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html
|
4
docs/source/2_admin/1_installation/8_final_check.rst
Normal file
4
docs/source/2_admin/1_installation/8_final_check.rst
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Verificare il funzionamento
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Se tutto è stato configurato correttamente, l'interfaccia utente Sophon dovrebbe essere raggiungibile al ``DOMINIO`` specificato, e dovrebbe essere possibile effettuare il login con le credenziali del primo :ref:`superutente` configurate.
|
18
docs/source/2_admin/1_installation/index.rst
Normal file
18
docs/source/2_admin/1_installation/index.rst
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
Installazione
|
||||||
|
*************
|
||||||
|
|
||||||
|
Questo capitolo fornisce le informazioni per l'installazione di Sophon su un server Linux.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:numbered:
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
1_requirements
|
||||||
|
2_preparing_compose
|
||||||
|
3_configuring_dns
|
||||||
|
4_configuring_compose
|
||||||
|
5_pulling_images
|
||||||
|
6_starting_sophon
|
||||||
|
7_host_reverse_proxy
|
||||||
|
8_final_check
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
Perchè installare Sophon?
|
|
||||||
*************************
|
|
||||||
|
|
||||||
Differenze con altri progetti simili
|
|
||||||
====================================
|
|
||||||
|
|
||||||
Sophon a prima vista può sembrare simile ad altri progetti già esistenti, ma si differenzia in alcune particolarità del suo funzionamento.
|
|
||||||
|
|
||||||
|
|
||||||
Differenze con JupyterHub
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
`JupyterHub`_ è un progetto con scopi molto simili a quelli di Sophon, ovvero di permettere a tanti utenti di utilizzare `Jupyter`_ su un server remoto, ma ha funzionalità di autorizzazione molto semplici e non ha supporto per :ref:`collaborazione` in tempo reale, in quanto i server `Jupyter`_ che istanzia sono single-user.
|
|
||||||
|
|
||||||
È però più facile da scalare per grandi numeri di utenti, e ha più opzioni di deployment, a differenza di Sophon, che ne supporta una sola.
|
|
||||||
|
|
||||||
.. _JupyterHub: https://jupyter.org/hub
|
|
||||||
.. _Jupyter: https://jupyter.org/
|
|
||||||
|
|
||||||
|
|
||||||
Differenze con Google Colab
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
`Google Colab`_ è un progetto che permette di effettuare ricerca su server `Jupyter`_ utilizzando le risorse della `Google Cloud Platform`_.
|
|
||||||
|
|
||||||
A differenza di Sophon, è disponibile esclusivamente come `software-as-a-service`_, il che costringe agli utenti a trasmettere le loro informazioni ai server di Google, e non ha alcun tipo di supporto alla :ref:`collaborazione` in tempo reale.
|
|
||||||
|
|
||||||
.. _Google Colab: https://colab.research.google.com/#
|
|
||||||
.. _Google Cloud Platform: https://cloud.google.com/
|
|
||||||
.. _software-as-a-service: https://it.wikipedia.org/wiki/Software_as_a_service
|
|
||||||
|
|
||||||
|
|
||||||
Licenza FLOSS
|
|
||||||
=============
|
|
||||||
|
|
||||||
Sophon è rilasciato sotto la `GNU Affero General Public License 3`_ (o successiva).
|
|
||||||
|
|
||||||
Generalmente, significa che è possibile utilizzare il programma e modificarne il codice sorgente **liberamente**, a condizione che le modifiche effettuate vengano ritrasmesse a gli :ref:`utenti` della versione modificata nello stesso modo.
|
|
||||||
|
|
||||||
Il testo completo della licenza è disponibile all'interno del file `LICENSE.txt`_ allegato al codice sorgente del software.
|
|
||||||
|
|
||||||
|
|
||||||
.. _GNU Affero General Public License 3: https://www.gnu.org/licenses/agpl-3.0.html
|
|
||||||
.. _LICENSE.txt: https://github.com/Steffo99/sophon/blob/main/LICENSE.txt
|
|
BIN
docs/source/2_admin/2_administration/customization.png
(Stored with Git LFS)
Normal file
BIN
docs/source/2_admin/2_administration/customization.png
(Stored with Git LFS)
Normal file
Binary file not shown.
6
docs/source/2_admin/2_administration/customization.rst
Normal file
6
docs/source/2_admin/2_administration/customization.rst
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Personalizzazione
|
||||||
|
=================
|
||||||
|
|
||||||
|
È possibile personalizzare l'istanza come descritto nella sezione :ref:`Personalizzazione dell'istanza` modificando l'unica voce del tipo **Sophon instance details** all'interno di **Sophon Core**.
|
||||||
|
|
||||||
|
.. image:: customization.png
|
12
docs/source/3_dev/1_license/index.rst
Normal file
12
docs/source/3_dev/1_license/index.rst
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
Licenza
|
||||||
|
*******
|
||||||
|
|
||||||
|
Sophon è rilasciato sotto la `GNU Affero General Public License 3`_ (o successiva).
|
||||||
|
|
||||||
|
Il testo completo della licenza è disponibile all'interno del file `LICENSE.txt`_ allegato al codice sorgente del software.
|
||||||
|
|
||||||
|
Si specifica che la licenza copre tutti i file all'interno del repository ``Steffo99/sophon``, anche se essi non contengono un header che indica che sono protetti da copyright.
|
||||||
|
|
||||||
|
|
||||||
|
.. _GNU Affero General Public License 3: https://www.gnu.org/licenses/agpl-3.0.html
|
||||||
|
.. _LICENSE.txt: https://github.com/Steffo99/sophon/blob/main/LICENSE.txt
|
|
@ -8,9 +8,6 @@ Benvenuto alla documentazione di Sophon, il centro di ricerca per le Università
|
||||||
Si è cercato di mantenere il registro di ciascuna parte al livello tecnico del pubblico a cui è destinata, pertanto è possibile osservare alcune **semplificazioni** nelle prime parti.
|
Si è cercato di mantenere il registro di ciascuna parte al livello tecnico del pubblico a cui è destinata, pertanto è possibile osservare alcune **semplificazioni** nelle prime parti.
|
||||||
|
|
||||||
|
|
||||||
Tabelle dei contenuti
|
|
||||||
=====================
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Manuale utente
|
:caption: Manuale utente
|
||||||
|
|
||||||
|
@ -22,20 +19,20 @@ Tabelle dei contenuti
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Guida per l'amministratore
|
:caption: Guida per l'amministratore
|
||||||
|
|
||||||
2_admin/1_why_sophon
|
2_admin/1_installation/index
|
||||||
2_admin/2_how_does_it_work
|
2_admin/2_administration/index
|
||||||
2_admin/3_installation
|
|
||||||
2_admin/4_update
|
|
||||||
2_admin/5_administration
|
|
||||||
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Documentazione tecnica
|
:caption: Documentazione tecnica
|
||||||
|
|
||||||
|
3_dev/1_license/index
|
||||||
|
3_dev/2_differences/index
|
||||||
|
|
||||||
Collegamenti
|
|
||||||
============
|
|
||||||
|
|
||||||
* :ref:`genindex`
|
Pagine speciali
|
||||||
* :ref:`modindex`
|
===============
|
||||||
* :ref:`search`
|
|
||||||
|
- :ref:`genindex`
|
||||||
|
- :ref:`modindex`
|
||||||
|
- :ref:`search`
|
||||||
|
|
Loading…
Reference in a new issue