From defca6dff50fa3b9eb6d0d385559231b771793bd Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 3 Nov 2021 15:25:47 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=94=20Progress=20part=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 9 +- .../1_user/2_concepts/5_notebooks/index.rst | 4 + docs/source/1_user/2_concepts/index.rst | 6 +- .../2_admin/1_installation/1_requirements.rst | 21 ++ .../1_installation/2_preparing_compose.rst | 30 +++ .../1_installation/3_configuring_dns.rst | 17 ++ .../1_installation/4_configuring_compose.rst | 214 ++++++++++++++++++ .../1_installation/5_pulling_images.rst | 48 ++++ .../1_installation/6_starting_sophon.rst | 22 ++ .../1_installation/7_host_reverse_proxy.rst | 62 +++++ .../2_admin/1_installation/8_final_check.rst | 4 + docs/source/2_admin/1_installation/index.rst | 18 ++ docs/source/2_admin/1_why_sophon.rst | 44 ---- .../2_administration/customization.png | 3 + .../2_administration/customization.rst | 6 + docs/source/2_admin/2_how_does_it_work.rst | 0 docs/source/3_dev/1_license/index.rst | 12 + docs/source/index.rst | 23 +- 18 files changed, 478 insertions(+), 65 deletions(-) create mode 100644 docs/source/2_admin/1_installation/1_requirements.rst create mode 100644 docs/source/2_admin/1_installation/2_preparing_compose.rst create mode 100644 docs/source/2_admin/1_installation/3_configuring_dns.rst create mode 100644 docs/source/2_admin/1_installation/4_configuring_compose.rst create mode 100644 docs/source/2_admin/1_installation/5_pulling_images.rst create mode 100644 docs/source/2_admin/1_installation/6_starting_sophon.rst create mode 100644 docs/source/2_admin/1_installation/7_host_reverse_proxy.rst create mode 100644 docs/source/2_admin/1_installation/8_final_check.rst create mode 100644 docs/source/2_admin/1_installation/index.rst delete mode 100644 docs/source/2_admin/1_why_sophon.rst create mode 100644 docs/source/2_admin/2_administration/customization.png create mode 100644 docs/source/2_admin/2_administration/customization.rst delete mode 100644 docs/source/2_admin/2_how_does_it_work.rst create mode 100644 docs/source/3_dev/1_license/index.rst diff --git a/docker-compose.yml b/docker-compose.yml index a648010..5f979ff 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,19 +37,19 @@ services: environment: # INSTALL: Set a random secret key! - 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! - DJANGO_ALLOWED_HOSTS=api.dev.sophon.steffo.eu # INSTALL: Configure your allowed origins! (* doesn't work) - 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! - DJANGO_STATIC_URL=http://static.dev.sophon.steffo.eu/django-static/ # INSTALL: Set your language! - DJANGO_LANGUAGE_CODE=en-us # INSTALL: Set your timezone! - - DJANGO_TIME_ZONE=CET + - DJANGO_TIME_ZONE=Europe/Rome # INSTALL: Set the superuser login details! - DJANGO_SU_USERNAME=root - DJANGO_SU_EMAIL=root@example.org @@ -80,7 +80,6 @@ services: proxy: image: ghcr.io/steffo99/sophon-proxy:latest ports: - # INSTALL: Change this port based on your own needs! - "30033:80" environment: # INSTALL: Configure your proxy details! diff --git a/docs/source/1_user/2_concepts/5_notebooks/index.rst b/docs/source/1_user/2_concepts/5_notebooks/index.rst index 206464d..7c22c1b 100644 --- a/docs/source/1_user/2_concepts/5_notebooks/index.rst +++ b/docs/source/1_user/2_concepts/5_notebooks/index.rst @@ -27,6 +27,10 @@ Qualsiasi **membro** di un :ref:`gruppo di ricerca` può creare nuovi notebook a .. image:: creation.png +.. note:: + + Per motivi tecnici, i notebook non possono avere come slug ``backend``, ``frontend``, ``proxy``, ``api``, ``static`` e ``src``. + Stato del notebook ------------------ diff --git a/docs/source/1_user/2_concepts/index.rst b/docs/source/1_user/2_concepts/index.rst index 593e998..da12ac3 100644 --- a/docs/source/1_user/2_concepts/index.rst +++ b/docs/source/1_user/2_concepts/index.rst @@ -3,13 +3,13 @@ I concetti Questa sezione illustra i concetti chiave di Sophon e il loro funzionamento. -.. image:: diagram_full.png - .. toctree:: - :maxdepth: 3 + :maxdepth: 1 1_instances/index 2_users/index 3_researchgroups/index 4_researchprojects/index 5_notebooks/index + +.. image:: diagram_full.png \ No newline at end of file diff --git a/docs/source/2_admin/1_installation/1_requirements.rst b/docs/source/2_admin/1_installation/1_requirements.rst new file mode 100644 index 0000000..4da19fd --- /dev/null +++ b/docs/source/2_admin/1_installation/1_requirements.rst @@ -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/ diff --git a/docs/source/2_admin/1_installation/2_preparing_compose.rst b/docs/source/2_admin/1_installation/2_preparing_compose.rst new file mode 100644 index 0000000..386cfd2 --- /dev/null +++ b/docs/source/2_admin/1_installation/2_preparing_compose.rst @@ -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] diff --git a/docs/source/2_admin/1_installation/3_configuring_dns.rst b/docs/source/2_admin/1_installation/3_configuring_dns.rst new file mode 100644 index 0000000..125b48e --- /dev/null +++ b/docs/source/2_admin/1_installation/3_configuring_dns.rst @@ -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/``. diff --git a/docs/source/2_admin/1_installation/4_configuring_compose.rst b/docs/source/2_admin/1_installation/4_configuring_compose.rst new file mode 100644 index 0000000..1dbb73d --- /dev/null +++ b/docs/source/2_admin/1_installation/4_configuring_compose.rst @@ -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 `_ 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 `_ 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 `_ 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 `_ 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 `_ 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. \ No newline at end of file diff --git a/docs/source/2_admin/1_installation/5_pulling_images.rst b/docs/source/2_admin/1_installation/5_pulling_images.rst new file mode 100644 index 0000000..6eff74c --- /dev/null +++ b/docs/source/2_admin/1_installation/5_pulling_images.rst @@ -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/ diff --git a/docs/source/2_admin/1_installation/6_starting_sophon.rst b/docs/source/2_admin/1_installation/6_starting_sophon.rst new file mode 100644 index 0000000..aec0f13 --- /dev/null +++ b/docs/source/2_admin/1_installation/6_starting_sophon.rst @@ -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/ diff --git a/docs/source/2_admin/1_installation/7_host_reverse_proxy.rst b/docs/source/2_admin/1_installation/7_host_reverse_proxy.rst new file mode 100644 index 0000000..19a8f65 --- /dev/null +++ b/docs/source/2_admin/1_installation/7_host_reverse_proxy.rst @@ -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 + + + ServerName "DOMINIO" + ServerAlias "*.DOMINIO" + + RewriteEngine On + RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] + + +.. code-block:: apacheconf + + + 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" + + +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 diff --git a/docs/source/2_admin/1_installation/8_final_check.rst b/docs/source/2_admin/1_installation/8_final_check.rst new file mode 100644 index 0000000..a635b38 --- /dev/null +++ b/docs/source/2_admin/1_installation/8_final_check.rst @@ -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. \ No newline at end of file diff --git a/docs/source/2_admin/1_installation/index.rst b/docs/source/2_admin/1_installation/index.rst new file mode 100644 index 0000000..595d46b --- /dev/null +++ b/docs/source/2_admin/1_installation/index.rst @@ -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 + diff --git a/docs/source/2_admin/1_why_sophon.rst b/docs/source/2_admin/1_why_sophon.rst deleted file mode 100644 index 0ba06e2..0000000 --- a/docs/source/2_admin/1_why_sophon.rst +++ /dev/null @@ -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 diff --git a/docs/source/2_admin/2_administration/customization.png b/docs/source/2_admin/2_administration/customization.png new file mode 100644 index 0000000..b97b9c7 --- /dev/null +++ b/docs/source/2_admin/2_administration/customization.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42ac7a211eba5b76dc7f7d95a1e6544ed460f8efe1049a0fe9377dbc77765f72 +size 32753 diff --git a/docs/source/2_admin/2_administration/customization.rst b/docs/source/2_admin/2_administration/customization.rst new file mode 100644 index 0000000..5484e39 --- /dev/null +++ b/docs/source/2_admin/2_administration/customization.rst @@ -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 diff --git a/docs/source/2_admin/2_how_does_it_work.rst b/docs/source/2_admin/2_how_does_it_work.rst deleted file mode 100644 index e69de29..0000000 diff --git a/docs/source/3_dev/1_license/index.rst b/docs/source/3_dev/1_license/index.rst new file mode 100644 index 0000000..a7eb7e4 --- /dev/null +++ b/docs/source/3_dev/1_license/index.rst @@ -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 diff --git a/docs/source/index.rst b/docs/source/index.rst index 849b49a..1c65925 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -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. -Tabelle dei contenuti -===================== - .. toctree:: :caption: Manuale utente @@ -22,20 +19,20 @@ Tabelle dei contenuti .. toctree:: :caption: Guida per l'amministratore - 2_admin/1_why_sophon - 2_admin/2_how_does_it_work - 2_admin/3_installation - 2_admin/4_update - 2_admin/5_administration + 2_admin/1_installation/index + 2_admin/2_administration/index .. toctree:: :caption: Documentazione tecnica + 3_dev/1_license/index + 3_dev/2_differences/index -Collegamenti -============ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` +Pagine speciali +=============== + +- :ref:`genindex` +- :ref:`modindex` +- :ref:`search`