
#  Installation de ScoDoc 9 sur Debian 11 (Bullseye) 
Ce document décrit la procédure d'installation et de configuration de ScoDoc 9
(**version en test, pas encore prête pour la production**).
Cette procédure doit être effectué sur la machine serveur avec un accès administrateur (root).

*Documentation en cours de relecture, voir aussi* https://scodoc.org/git/viennet/ScoDoc


ScoDoc est livré avec des scripts d'installation qui configurer presque
automatiquement votre serveur (serveur web, base de données, etc): vous pouvez
donc installer et configurer ScoDoc avec des connaissances réduites sur le
système Linux.

Cette documentation est prévue pour installer ScoDoc version 9 sur un système
[Debian](http://www.debian.org) 11 (Bullseye, stable) s'exécutant sur une
machine intel-like **64bits** (architecture **AMD64**). Debian s'installe
facilement en cinq minutes, sur une machine normale ou un serveur
virtualisé. Il est **vivement déconseillé** de tenter l'installation sur une
autre version. 

Merci de signaler tout problème (emmanuel.viennet@gmail.com 
ou [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel) ).


- Note 1: l'image du CD d'installation de Debian (amd64) peut se trouver ici:
  [https://www.debian.org/distrib/netinst](https://www.debian.org/distrib/netinst.md),
  choisir la version "petits CD" pour **amd64** (*Il est indispensable
  d'utiliser une version 64 bits ! *) 

- Note 2: une version Docker serait utile: avis aux volontaires.


<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Important: 
La procédure d'installation décrite ci-dessous suppose que ScoDoc va s'exécuter
sur un serveur dédié.  Pour faire des tests, utilisez un serveur virtuel (comme
VirtualBox ou VMWare). L'installation ci-dessous va en effet modifier de
nombreux paramètres de votre système linux (serveur web, firewall, serveur SQL, 
messagerie, ...).   


##  1) Préalable: configurer un serveur linux 
Le serveur devrait être accessible depuis Internet. 

### Informations sur les flux réseau
Le serveur est fréquemment installé sur un réseau protégé ou sur un VPN.

 - le trafic entrant est sur le port 443 (le trafic http/80 est redirigé
  vers le https).

 - le serveur doit pouvoir envoyer du mail (serveur postfix en local, à 
 configurer pour utiliser un relais smtp ou envoyer directement, selon 
 votre politique);

 - Les serveurs de mise à jour de Debian doivent être accessibles (en http, 
 voir `/etc/apt/sources.list`);

 - Les serveurs `scodoc.org` et `scodoc.iutv.univ-paris13.fr` doivent 
 être accessibles (80 et 443).

### Installation Linux Debian
Nous recommandons d'effectuer une installation standard de Debian par le réseau (netinst),
et d'utiliser l'install en mode texte, très simple et rapide.
Durant l'installation de Debian, lorsqu'il demande "logiciels à installer", tout décocher 
sauf "Serveur SSH" et "Utilitaires standard du système". Le script d'installation de ScoDoc 
se chargera ensuite d'installer tous les éléments nécessaires (serveur web, messagerie, etc.).

![InstallDebian6-1.png](screens/InstallDebian6-1.png)

###  Points à vérifier avant d'installer ScoDoc 
Checklist minimale de votre système Linux Debian:

 1. Connexion à Internet: le réseau doit être accessible. En effet, le script d'installation va installer des paquetages du système Debian puis télécharger la dernière mise à jour du logiciel ScoDoc (à partir du serveur Subversion).
 1. Vérifiez la connectivité, par exemple:
```
ping www.univ-paris13.fr
(quitter avec ctrl-c)
cd /tmp
wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc
# doit créer un fichier nomme "scodoc" contenant du code HTML
```
 3. Nom DNS: le serveur doit avoir un nom ("serveur.exemple.fr") connu dans le
    DNS (local ou public). Pour des tests, vous pouvez vous passer de DNS, mais
    dans ce cas le nom de votre serveur sera son adresse IP (eg 192.168.0.10) et
    il ne sera peut être pas accessible de l'extérieur.
 1. Vérifiez que votre serveur est accessible depuis une autre machine de votre
    réseau (voire d'Internet): par exemple "ping serveur.exemple.fr".
 1. Date et heure: vérifier que les dates et heure sont correctes, même après
    reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (`apt-get
    install ntp`), et éventuellement `dpkg-reconfigure tzdata`).
 1. Cette liste est incomplète... et n'oubliez pas: avant de passer en
    production, mettez en place des sauvegardes sérieuses !

####  Configuration si utilisation d'un proxy 
 Si votre accès à Internet passe par un proxy, l'indiquer au moment de
 l'installation Debian. Il est possible qu'il vous faille configurer d'autres
 éléments, voir par exemple
 https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy
 


##  2) Installation de ScoDoc sur Debian

### 2.1) Charger le logiciel 

 <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
 alt="/!\" /> Les commandes ci-dessous sont à exécuter dans un terminal ouvert
 en tant que **root** sur le serveur. Vous pouvez utiliser `su` (ou `sudo su`)
 pour devenir **root**).

Remarque: *Si ce n'est pas déjà le cas, vous avez intérêt à ouvrir une session
`ssh` (ou `putty`) depuis une machine normale, afin de pouvoir copier/coller
facilement les commandes et éditer les fichiers de configuration.*

 - Ajouter le dépot scodoc: copier ce fichier <a href="/attachments/scodoc.list"
   download>scodoc.list</a> dans `/etc/apt/sources.list.d/`
ou le créer contenant juste cette ligne:

        # contenu du fichier /etc/apt/sources.list.d/scodoc.list
        deb http://scodoc.org/repo bullseye main

 - Installer la clé: en `root` sur le serveur, lancer
    
        apt-get -y install gnupg
        wget -O - https://scodoc.org/misc/scodoc-repo.gpg.key | apt-key add -

 - Installer le logiciel:
 
        apt-get update
        apt-get install scodoc9

Notez que l'installation du paquet `scodoc9` va créer automatiquement un
utilisateur `scodoc` qui sera utilisé par le serveur.

 - Attribuer un mot de passe à l'utilisateur `scodoc`:

        passwd scodoc


### 2.2) Configuration des logiciels et des données
 
Vous pouvez le faire manuellement, ou simplement lancer le script suivant
en tant que `root` sur votre serveur nouvellement installé:

    /opt/scodoc/tools/configure-scodoc9.sh

Vous devrez répondre à quelques questions et saisir le mot de passe que vous
attribuerez à l'utilisateur `admin`.

(note: pour en savoir plus sur ce script, [voir l'explication](GuideInstallDebian11Advanced.md))

### 3) **Lancer ScoDoc**:

        sudo su # se connecter en root
        systemctl restart nginx
        systemctl restart scodoc9

et voila !

Visiter `https://monscodoc.mondomaine.fr/` pour achever la configuration et
utiliser le logiciel: voir la page [GuideConfig](GuideConfig.md).

## Importation des données ScoDoc 7

Après installation, vous pouvez migrer toutes vos données depuis une
installation ScoDoc 7, ou même en place.

Voir [la procédure de migration](MigrationScoDoc7a9.md).

##  En cas de problème 
Ne pas hésiter à me contacter ou à écrire sur la liste notes (voir [Listes de
diffusion](ListesDeDiffusion.md)).

 * Problèmes d'envoi de courrier électronique (mail): voir [ProblemesMail](ProblemesMail.md)

Nota: sur certains réseaux, l'autoconfiguration IPv6 pose problème (par exemple:
bloquage des envois de mails). Au besoin, il est possible de désactiver IPv6
(voir par exemple [ici](https://wiki.debian-fr.xyz/D%C3%A9sactiver_l%27IPv6)). 


##  Ensuite... 

 * Mettez en place des [sauvegardes](SauvegardesBases.md)

 * Abonnez-vous au moins à la liste d'annonces: voir [Listes de diffusion](ListesDeDiffusion.md)
