Fab-Manager


Contexte

Fab-Manager est un outil libre permettant la gestion d'un fablab.

Installation

La documentation ici présente reprends les informations de la documentation de Fab-Manager présente ici et surtout la doc de production présente ici.

Préparation du serveur

Les devs ont prévu un script de préparation du système qui permet de mettre à jour le système, gérer les timezones, gérer le swap et gérer la protection ssh.
\curl -sSL prepare-vps.sleede.com | bash

Installation de Fab-Manager

Les devs ont prévu un script d'installation, qui fonctionne ... quand il fonctionne ...
\curl -sSL setup.fab.mn | bash

Paramètres d'installation :
- Nom de domaine et email du sysadmin en fonction du serveur (pour le moment vps-bd13dfa5.vps.ovh.net et maxime@zoomacom.org)
- Paramètres SMTP
  • Serveur : mail.gandi.net
  • Port : 465
  • Username : Pour le moment maxime@zoomacom.org
  • Password : Bah le mot de passe de ma boite mail
  • Authentification : plain
  • Starttls auto : true
  • Openssl verify mode : (laisser par défaut)
  • TLS : true
- Admin sys email / password : ne pas remplir comme ça tout les admins ont les notifs
- Tout le reste est par défaut

Les paramètres sont ensuite stockéss dans /apps/fabmanager/config/env

Config pour http

Dans le fichier config/env il faut modifier :
- DEFAULT_PROTOCOL=http (dans le début)
- ALLOW_INSECURE_HTTP=true (vers la fin du fichier)

et modifier le fichier /apps/fabmanager/config/nginx/fabmanager.conf pour être sur le port 80 et désactiver la redirection 80 -> 443 (si le serveur a été installé en mode https)

Problème de compilation de yarn à l'installation

C'est un manque de ram, après avoir configurer les paramètres et avant de lancer la construction de la base de données il faut ajouter la ligne
NODE_OPTIONS="--max-old-space-size=6144"
dans le fichier config/env.

Mise à jour

Point délicat du système, les mises a jour demandes des executions de commandes manuelles.

Il faut se placer dans le dossier /apps/fabmanager et le script de mise a jour ici en combinant tout les arguments nécessaires aux différentes nouvelles versions comme expliqué ici.
Exemple :
Mise à jour de la 1.2.3 à la 1.2.6 :
## 1.2.4
\curl -sSL upgrade.fab.mn | bash -s -- -e "VAR=value"
## 1.2.5
\curl -sSL upgrade.fab.mn | bash -s -- -c "rails fablab:setup:command"
## 1.2.6
\curl -sSL upgrade.fab.mn | bash -s -- -p "rails fablab:do:things"

La commande de mise a jour est la suivante :
\curl -sSL upgrade.fab.mn | bash -s -- -e "VAR=value" -p "rails fablab:do:things" -c "rails fablab:setup:command"

Afin de garder une trace de la version actuelle (parce que visiblement y a pas de moyen de le savoir), j'ai créé un fichier ~/versionCouranteFabManager afin de savoir où on en est, merci de le mettre à jour.

Commandes utiles

Se placer dans le dossier /apps/fabmanager pour les executer

Arrêt du serveur :
docker-compose down

Démarrage du serveur :
docker-compose up -d

Nettoyage d'une installation foireuse

Nettoyage de docker

Arrêt des containers :
docker stop $(docker container ls -q)

Nettoyage du système docker :
docker system prune

Nettoyage des images docker :
docker image prune

Suppression des images docker :
docker rmi $(docker image ls -q)

Nettoyage de fab-manager (Optionnel)

Supprimer le dossier /apps/fabmanager :
sudo rm -rfv /apps/fabmanager