Accueil > TICE > Installer un serveur Sugarizer

Installer un serveur Sugarizer

⚇ Article publié le mercredi 6 novembre 2019, mis à jour le dimanche 29 août 2021

On peut utiliser différents supports pour mettre en place un serveur Sugarizer. Ici on aborde la mise en place sur un PC (ubuntu et windows) ainsi que le mini ordinateur Raspberry Pi.

Un serveur Sugarizer présente plusieurs intérêts :

  • reprendre le contrôle des données, elles sont hébergées dans l’école ;
  • avoir la maîtrise sur les comptes d’utilisateurs et les interactions possibles ;
  • utiliser le niveau « classe » ;
  • accéder au tableau de bord.

La principale limite sera que les élèves ne pourront pas utiliser leur compte en dehors du réseau de l’école.

Sommaire

Installation

Sugarizer-server a été développé avec node.js et mogodb. Son installation est facilitée par des conteneurs Docker. Plus d’information sur cette page.

La documentation sur l’installation de Sugarizer-server se trouve ici : https://github.com/llaske/sugarizer-server.

Gnu/Linux - Ubuntu avec Docker &

J’ai commencé par mon propre PC sous Ubuntu (18.04) en suivant la documentation citée plus haut.
Commençons par installer docker depuis les dépôts officiels :

sudo apt install docker.io

Puis vérifions que cela fonctionne correctement :

sudo service docker start

et

sudo docker run hello-world

on obtient :

Unable to find image ’hello-world:latest’ locally latest : Pulling from library/hello-world 1b930d010525 : Pull complete Digest : sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f Status : Downloaded newer image for hello-world:latest

Hello from Docker !
This message shows that your installation appears to be working correctly.

Pour la suite a besoin de curl pour installer docker-compose et de git pour Sugarizer, on vérifie que curl et git sont bien installés :

sudo apt install curl
sudo apt install git

Puis on installe docker-compose (d’après la documentation de docker) avec :

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

On règle les droits

sudo chmod +x /usr/local/bin/docker-compose

Vérification de l’installation :

docker-compose —version qui doit renvoyer un numéro de version comme docker-compose version 1.24.1, build 4667896b

On procède à l’installation de Sugarizer et Sugarizer-server :

git clone https://github.com/llaske/sugarizer
git clone https://github.com/llaske/sugarizer-server
cd sugarizer-server
sudo sh generate-docker-compose.sh
sudo docker-compose up -d

La dernière commande procède à la création des containers Docker, la fin devrait être la suivante :

...
Creating sugarizer-server_mongodb_1 ... done
Creating sugarizer-server_server_1 ... done

Les deux conteneurs Docker sont prêts. On peut lancer un navigateur sur cette machine et aller à https://locahost:8080 ou https://x.x.x.x:8080 (x.x.x.x étant l’adresse ip de la machine sur laquelle on a installé Sugarizer) pour vérifier que l’installation est correcte :

PNG - 7.5 kio
Sugarizer est installé !

La suite consiste à créer le compte admin sur Sugarizer-server. pour cela on a besoin de passer une commande dans le conteneur « Sugarizer-server », il nous faut récupérer son nom par la commande

sudo docker container ls

La réponse sera

CONTAINER ID IMAGE ...
e6837bfe7739 sugarizer-server_server ...
c596e20abf54 sugarizer-server_mongodb ...

On récupère l’ID du conteneur Sugarizer-server et on lance :

sudo docker exec -i -t e6837bfe7739 /bin/bash

L’invite du terminal se change : root@e6837bfe7739 :/sugarizer-server#
On entre alors

sh add-admin.sh admin password https://127.0.0.1:80/auth/signup

qui renvoie un message qui devrait se terminer par

{"name" :"admin","role" :"admin","password" :"password",
"language" :"en","created_time":1572694586844,"timestamp" :
1572694586844,"_id" :"5dbd6a3a49ad00002e8420d1"}r

On peut changer le nom et le mot de passe du compte admin en adaptant la commande, par exemple prof / prof :

sh add-admin.sh prof prof https://127.0.0.1:80/auth/signup

On sort du bash du conteneur par en tapant "exit".

On se rend à l’adresse https://locahost:8080/dashboard pour se connecter au compte admin que l’on a créé :
PNG - 5.2 kio
Se connecter au tableau de bord en tant qu’admin

Raspberry Pi

La forme du Raspberry Pi est idéale pour faire un serveur Sugarizer : on peut imaginer le serveur mobile, déplacé dans la même valise qu’un pack de tablettes. Pas besoin de clavier ni d’écran, juste une alimentation usb et zou... en wifi ou en filaire.

J’ai donc essayé avec mes « vieux » Raspberry Pi 1 et 1B+... à partir de ce guide sur une distribution Raspbian Buster Lite et je n’ai pas réussi. Je bute sur une histoire de version node.js et npm. La version arm (armv6l) du processeur du Raspberry Pi 1, limite l’installation de node.js à la version 11.15 (https://nodejs.org/dist/latest-v11.x/node-v11.15.0-linux-armv6l.tar.gz) et je n’ai pas réussi à installer npm avec cette version, l’installation est incomplète et présente des erreurs. Le node.js des dépôts Raspbian est la version 10.15, si on installe npm ensuite on a ce message « npm WARN npm npm does not support Node.js v10.15.2 ». Je n’ai pas de Pi 2 ou 3 qui sont respectivement en armv7 et armv8, il se peut que cela fonctionne car une version "latest" de node.js existe pour armv7. Mais dans ce cas on utilisera plutôt l’image toute faite de Sugarizer-server pour le Pi3 et le Pi4 : SchoolBox, qui ne fonctionne pas sur Raspberry Pi 1, bref oublions le Raspberry Pi1 pour Sugarizer...

Windows 10 et Docker &

C’est théoriquement la solution la plus simple mais je l’ai vite abandonnée n’ayant de PC en Windows 10 à bricoler. En effet, elle suppose des réglages de Windows auxquels on n’a pas forcément accès sur un PC municipal accès comme l’activation de la virtualisation « Hyper-V ».

Windows - / + +

PNG - 3.3 kio
Les ingrédients nécessaires...
Sur un Windows 64 bits, on commence par télécharger node.js depuis cette page https://nodejs.org/fr/download/. L’installation est (très) longue, après avoir installé le paquet msi, l’installation se poursuit dans le shell de Windows. Pour l’accélérer, on peut décocher l’installation des outils, ils ne nous seront pas nécessaires.

Une fois terminé, on teste l’installation dans le shell (cmd.exe) avec :
node -v
PNG - 11.2 kio
On gagne du temps en décochant l’installation des outils...

... qui doit répondre par un message du genre :

v12.13.0
Pour MongoDB, on télécharge la version pour Windows sur cette page https://www.mongodb.com/download-center/community. On lance l’installation mais on décoche l’option « Compass » qui est bloquante. On conserve le réglage qui lance MongoDB comme service Windows.

Une fois installé, on lance le shell pour créer le dossier suivant :
md \data\db
PNG - 9.7 kio
Décocher l’installation de Compass

Git pour Windows se trouve sur cette page : https://git-scm.com/download/win. On l’installe avec toutes les options par défaut.

On lance le Shell (ou Git Bash) pour télécharger les dépôts git. Si le PC doit être utilisé en utilisateur limité, on le fera dans users/public

cd ..
cd public
git clone https://github.com/llaske/sugarizer
git clone https://github.com/llaske/sugarizer-server
cd sugarizer-server
npm install

C’est prêt. On peut à présent lancer Sugarizer-server avec la commande

node sugarizer.js

Au premier lancement, il faut autoriser Node.js dans le pare-feu de windows

PNG - 16.7 kio
Lancement de sugarizer-server
PNG - 18.2 kio
Autoriser node.js
PNG - 11.4 kio
Accessible sur le réseau
Reste à créer un compte admin pour accéder au tableau de bord. On lance Git Bash dans le dossier sugarizer-server (clic-droit → « Git Bash Here ») tout en laissant le Shell qui a lancé sugarizer.js ouvert.
PNG - 51.1 kio
Ouvrir un Git Bash dans le dossier sugarizer-server
On entre la commande :
sh add-admin.sh prof prof https://127.0.0.1:8080/auth/signup
PNG - 20.8 kio
Création d’un compte admin dans Git Bash
On vérifie que le compte a bien été créé en se connectant au tableau de bord https://localhost:8080/dashboard avec le login prof et le mot de passe prof...
PNG - 18.9 kio
Connexion au tableau de bord
À présent, on souhaite créer un raccourci sur le bureau pour lancer Sugarizer-server d’un double clic. Pour cela on associe notre fichier sugarizer.js à l’application node.js. Aller dans sugarizer-server et faire un clic-droit sur le fichier sugarizer.js, puis sélectionner « Ouvrir avec... » dans le menu puis choisir node.js dans « Programmes » par le bouton « Parcourir... » en face de « Toujours utiliser le prog... » puis valider par « Ouvrir » puis « OK ». Désormais un double clic lancera le script dans le Shell.
PNG - 112.5 kio
Associer Node.js au script sugarizer.js
Enfin on peut coller ce raccourci dans le dossier « Démarrage » (Menu démarrer → Tous les programmes → clic-droit + ouvrir sur « Démarrage »)
PNG - 27.3 kio
Coller le raccourci sugarizer.js dans « Démarrage » pour un lancement automatique

Utilisation

Adresse

Une fois notre serveur installé, il faut connaître son adresse afin que les utilisateurs puissent s’y connecter.

Pour connaître l’adresse ip d’une machine Windows on demande « ipconfig » dans cmd.exe et la réponse se trouve en face de « Adresse IPv4 » de la carte réseau connectée. Par exemple ici notre serveur Sugarizer est connecté en wifi et a l’adresse 192.168.0.8. Dans Linux, la commande est généralement « ifconfig » ou « ip a » selon la version du système.
Les PC des écoles ont souvent des ip fixes, si ce n’était pas le cas de notre serveur il faudra figer cette adresse pour pouvoir s’y connecter facilement (QR Code)
PNG - 1.7 kio
Quelle est l’adresse de Sugarizer-server sur Windows ?

Connexion des élèves

L’adresse de notre serveur sera donc https://ip.du.server.sugarizer:8080. Dans notre exemple, cela donne 192.168.0.8:8080. Si on utilise du matériel mobile, on pourra créer un QR code pour s’y connecter.

Si on accède à notre Sugarizer par un navigateur on pourra créer un marque-page avec cette adresse.
PNG - 8.7 kio
Connexion via un navigateur directement avec l’adresse
Depuis une tablette ou une version PC, on devra renseigner l’adresse du serveur. Le bouton QR à côté du formulaire sur les versions mobiles sert à scanner l’adresse imprimée ou affichée en code QR
PNG - 6.5 kio
Connexion depuis une tablette

Connexion au tableau de bord

On se connecte au tableau de bord en joutant « /dashboard » à l’adresse du serveur dans un navigateur, ce qui donne https://192.168.0.8:8080/dashboard dans notre exemple. On entre le login et le mot de passe que l’on a créé lors de l’installation (prof / prof).

Accueil

L’écran d’accueil présente une vue global de l’état du serveur :
PNG - 26.4 kio
Dashboard, l’écran d’accueil

Les utilisateurs

La rubrique « Utilisateurs » du tableau de bord permet de créer et de modifier les élèves et les administrateurs. On peut y créer des comptes d’élèves ou récupérer les comptes créés sur la page de connexion.

Cela peut être utile pour régénérer des mots de passe oubliés.
PNG - 21.3 kio
Utilisateurs, création et modification

Journaux

Permet de consulter les journaux privés et partagés des utilisateurs. On peut ainsi savoir ce qu’a fait l’utilisateur.
PNG - 18.1 kio
Consulter les journaux d’activité

Classes

Ici on créé et on peuple les classes avec les utilisateurs créés.
PNG - 38 kio
Création des classes

Apprivoiser le proxy

Sur un réseau local avec un proxy filtrant, il y a de grandes chances que l’on ne parvienne pas à rejoindre notre Sugarizer-server. Il faut apprendre aux tablettes et PC à ne pas passer par le proxy : voir le tutoriel : Sozi Sugarizer et les serveurs proxy.