start:fabmanager:doc1
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
start:fabmanager:doc1 [2018/08/14 09:37] – gerardadmin | start:fabmanager:doc1 [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Doc Installation Français ====== | ||
+ | Traduction Google !!! | ||
+ | |||
+ | # Installer l' | ||
+ | |||
+ | Ce fichier README tente de décrire toutes les étapes de mise en production d'une application fabmanager sur un serveur, à partir d'une solution utilisant Docker et Docker-composer. | ||
+ | Nous recommandons DigitalOcean, | ||
+ | |||
+ | Pour que cela fonctionne, veuillez utiliser la même structure de répertoires que celle décrite dans ce guide dans votre dossier de l' | ||
+ | Vous devrez être root à travers le reste de l' | ||
+ | |||
+ | ==== Table des matières ==== | ||
+ | |||
+ | -[Étapes préliminaires] (# étapes préliminaires) | ||
+ | - configurer le serveur | ||
+ | - acheter un nom de domaine et le lier avec la gouttelette | ||
+ | - se connecter à la gouttelette via SSH | ||
+ | - se préparer le serveur | ||
+ | - dossiers d' | ||
+ | - Configurer le fichier nginx | ||
+ | - Certificat SSL avec LetsEncrypt | ||
+ | - exigences | ||
+ | -[Installer Fabmanager] (# install-fabmanager) | ||
+ | | ||
+ | - Tirer des images | ||
+ | - base de données d' | ||
+ | - construire des actifs | ||
+ | - préparer Elasticsearch (moteur de recherche) | ||
+ | - démarrer tous les services | ||
+ | -[Générer un certificat SSL par Letsencrypt] (# generate-ssl-certificate-by-letsencrypt) | ||
+ | | ||
+ | | ||
+ | | ||
+ | -Bon à savoir | ||
+ | |||
+ | ==== Étapes préliminaires ==== | ||
+ | |||
+ | === configurer le serveur === | ||
+ | |||
+ | Allez dans [DigitalOcean] (https:// | ||
+ | Vous avez besoin d'au moins 2 Go de mémoire adressable (RAM + échange) pour installer et utiliser FabManager. | ||
+ | Nous recommandons 4 Go de RAM pour les communautés plus importantes. | ||
+ | Choisissez un centre de données. Définissez le nom d' | ||
+ | |||
+ | === acheter un nom de domaine et le lier avec le serveur === | ||
+ | |||
+ | - Achetez un nom de domaine sur [OVH] (https:// | ||
+ | - Remplacez l' | ||
+ | | ||
+ | |||
+ | === se connecter au serveur via SSH === | ||
+ | |||
+ | Vous pouvez déjà vous connecter au serveur avec cette commande: `ssh root @ server-ip`. Lorsque la propagation DNS sera effectuée, vous serez en mesure de connectez-vous au serveur avec `ssh root @ your-domain-name`. | ||
+ | |||
+ | === préparer le serveur === | ||
+ | |||
+ | Nous vous recommandons de: | ||
+ | - ugprade votre système | ||
+ | - ajouter au moins 2GB de swap | ||
+ | - Vérifiez que vous utilisez une connexion via une clé SSH. Si c'est le cas, vous pouvez définir le mot de passe racine (pour la console de débogage) et désactiver la connexion par mot de passe. | ||
+ | |||
+ | Pour ce faire, vous pouvez utiliser le script suivant: | ||
+ | |||
+ | `` `bash | ||
+ | cd / root | ||
+ | git clone https:// | ||
+ | cd lazyscripts / | ||
+ | chmod a + x prepare-vps.sh | ||
+ | | ||
+ | `` ` | ||
+ | |||
+ | |||
+ | === dossiers d' | ||
+ | |||
+ | Créez le dossier de configuration: | ||
+ | `` `bash | ||
+ | mkdir -p / apps / fabmanager / config | ||
+ | `` ` | ||
+ | |||
+ | Faites une copie du fichier ** docker / env.example ** et utilisez-le comme point de départ. | ||
+ | Définissez toutes les variables d' | ||
+ | |||
+ | |||
+ | Ensuite, copiez le fichier `env.example` précédemment personnalisé en tant que` / apps / fabmanager / config / env` | ||
+ | |||
+ | ### programme d' | ||
+ | |||
+ | Créez le dossier nginx: | ||
+ | `` `bash | ||
+ | mkdir -p / apps / fabmanager / config / nginx | ||
+ | `` ` | ||
+ | |||
+ | Personnalisez le fichier docker / nginx_with_ssl.conf.example | ||
+ | * Remplacez ** MAIN_DOMAIN ** (exemple: fab-manager.com). | ||
+ | * Remplacez ** URL_WITH_PROTOCOL_HTTPS ** (exemple: https:// | ||
+ | * Remplacer ** ANOTHER_URL_1 **, ** ANOTHER_URL_2 ** (exemple: .fab-manager.fr) | ||
+ | |||
+ | ** Utilisez nginx.conf.example si vous ne souhaitez pas utiliser le protocole SSL pour votre application. ** | ||
+ | |||
+ | Alors, | ||
+ | Copiez le `nginx_with_ssl.conf.example` précédemment personnalisé en tant que` / apps / fabmanager / config / nginx / fabmanager.conf` | ||
+ | |||
+ | **OU** | ||
+ | |||
+ | Copiez le `nginx.conf.example` précédemment personnalisé en tant que` / apps / fabmanager / config / nginx / fabmanager.conf` si vous ne voulez pas utiliser ssl (non recommandé!). | ||
+ | |||
+ | ### Certificat SSL avec LetsEncrypt | ||
+ | |||
+ | ** SUIVEZ CES INSTRUCTIONS UNIQUEMENT SI VOUS VOULEZ UTILISER SSL **. | ||
+ | |||
+ | Let's Encrypt est une nouvelle autorité de certification gratuite, automatisée et ouverte. | ||
+ | Les certificats Let's Encrypt expirent après 90 jours. L' | ||
+ | Voici la configuration d'un minuteur et d'un service pour renouveler les certificats et redémarrer le conteneur Docker de l' | ||
+ | |||
+ | `` `bash | ||
+ | mkdir -p / apps / fabmanager / config / nginx / ssl | ||
+ | `` ` | ||
+ | Exécutez `openssl dhparam -out dhparam.pem 4096` dans le dossier / apps / fabmanager / config / nginx / ssl (générez le fichier dhparam.pem) | ||
+ | `` `bash | ||
+ | mkdir -p / apps / fabmanager / letsencrypt / config / | ||
+ | `` ` | ||
+ | Copiez le `webroot.ini.example` personnalisé précédemment comme` / appsfabmanager / letsencrypt / config / webroot.ini` | ||
+ | `` `bash | ||
+ | mkdir -p / apps / fabmanager / letsencrypt / etc / webrootauth | ||
+ | `` ` | ||
+ | |||
+ | Exécutez `docker pull quay.io/ | ||
+ | |||
+ | Créez le fichier (avec sudo) / | ||
+ | |||
+ | `` `bash | ||
+ | [Unité] | ||
+ | Description = letsencrypt | ||
+ | Nécessite = docker.service | ||
+ | |||
+ | [Un service] | ||
+ | Type = oneshot | ||
+ | ExecStart = / usr / bin / docker run --rm ---name letsencrypt -v "/ apps / fabmanager / log: / var / log / letencrypt" | ||
+ | ExecStartPost = - / usr / bin / docker redémarrez fabmanager_nginx_1 | ||
+ | `` ` | ||
+ | |||
+ | Créez un fichier (avec sudo) / | ||
+ | `` `bash | ||
+ | [Unité] | ||
+ | Description = temporisateur OneShotShot | ||
+ | Nécessite = docker.service | ||
+ | |||
+ | [Minuteur] | ||
+ | OnCalendar = * - * - 1 06:00:00 | ||
+ | Persistant = vrai | ||
+ | Unit = letsencrypt.service | ||
+ | |||
+ | [Installer] | ||
+ | WantedBy = timers.target | ||
+ | `` ` | ||
+ | |||
+ | C'est tout pour le moment. Continuez l' | ||
+ | |||
+ | ### Exigences | ||
+ | |||
+ | |||
+ | Vérifiez que Docker et Docker-composer sont installés: | ||
+ | (C'est normalement le cas si vous avez utilisé une image préconfigurée.) | ||
+ | |||
+ | `` `bash | ||
+ | info docker | ||
+ | docker-compose -v | ||
+ | `` ` | ||
+ | |||
+ | Sinon, vous pouvez installer docker sur ubuntu avec les instructions suivantes: | ||
+ | https:// | ||
+ | |||
+ | Pour installer docker-compose: | ||
+ | |||
+ | `` `bash | ||
+ | curl -L https:// | ||
+ | sudo mkdir -p / opt / bin | ||
+ | sudo mv docker-compose / opt / bin / | ||
+ | sudo chmod + x / opt / bin / docker-compose | ||
+ | `` ` | ||
+ | |||
+ | |||
+ | |||
+ | ## Installer Fabmanager | ||
+ | |||
+ | ### Ajouter le fichier docker-compose.yml | ||
+ | |||
+ | Copiez docker-compose.yml dans le dossier de votre application `/ apps / fabmanager`. | ||
+ | Les commandes docker-composer doivent être lancées à partir du dossier `/ apps / fabmanager`. | ||
+ | |||
+ | ### tirer des images | ||
+ | |||
+ | `` `bash | ||
+ | docker-composer tirer | ||
+ | `` ` | ||
+ | |||
+ | ### base de données d' | ||
+ | |||
+ | `` `bash | ||
+ | docker-compose exécuter --rm fabmanager bundle exec rake db: créer # créer la base de données | ||
+ | docker-compose exécuter --rm fabmanager bundle exec rake db: migrer # exécuter toutes les migrations | ||
+ | docker-compose run --rm -e ADMIN_EMAIL = xxx ADMIN_PASSWORD = xxx paquet fabmanager exec rake db: graines # seed la base de données | ||
+ | `` ` | ||
+ | |||
+ | ### construire des actifs | ||
+ | |||
+ | `docker-compose exécuter --rm fabmanager bundle exec rake assets: précompiler` | ||
+ | |||
+ | ### préparer Elasticsearch (moteur de recherche) | ||
+ | |||
+ | `docker-compose run --rm fabmanager paquet rake exec fablab: es_build_stats` | ||
+ | |||
+ | #### démarrer tous les services | ||
+ | |||
+ | `docker-compose jusqu' | ||
+ | |||
+ | ### Générer un certificat SSL par Letsencrypt | ||
+ | |||
+ | ** Important: l' | ||
+ | |||
+ | Démarrer le service letsencrypt: | ||
+ | `` `bash | ||
+ | sudo systemctl démarre letsencrypt.service | ||
+ | `` ` | ||
+ | |||
+ | Si le certificat a été généré avec succès, mettez à jour le fichier de configuration nginx et activez le port ssl et le certificat | ||
+ | éditer le fichier `/ apps / fabmanager / config / nginx / fabmanager.conf`. | ||
+ | |||
+ | Supprimez le conteneur de votre application et exécutez votre application pour appliquer les modifications exécutant les commandes suivantes: | ||
+ | `` `bash | ||
+ | docker-compose vers le bas | ||
+ | docker-compose up -d | ||
+ | `` ` | ||
+ | |||
+ | Enfin, si tout va bien, démarrez letsencrypt timer pour mettre à jour le certificat tous les 1 du mois: | ||
+ | |||
+ | `` `bash | ||
+ | sudo systemctl active letsencrypt.timer | ||
+ | sudo systemctl démarre letsencrypt.timer | ||
+ | (cochez) sudo systemctl list-timers | ||
+ | `` ` | ||
+ | |||
+ | ## Docker utils avec docker-compose | ||
+ | |||
+ | ### Redémarrer l' | ||
+ | |||
+ | `docker-compose redémarre fabmanager` | ||
+ | |||
+ | ### Supprimer l' | ||
+ | |||
+ | `docker-compose vers le bas fabmanager` | ||
+ | |||
+ | ### Redémarrez tous les conteneurs | ||
+ | |||
+ | `redémarrage docker-compose` | ||
+ | |||
+ | ### Enlever tous les conteneurs | ||
+ | |||
+ | `docker-compose vers le bas` | ||
+ | |||
+ | ### Démarrer tous les conteneurs | ||
+ | |||
+ | `docker-compose jusqu' | ||
+ | |||
+ | ### Ouvrir un bash dans le contexte de l' | ||
+ | |||
+ | `docker-composez run --rm fabmanager bash` | ||
+ | |||
+ | ### Afficher le statut des services | ||
+ | |||
+ | `docker-compose ps` | ||
+ | |||
+ | ### Redémarrer le conteneur nginx | ||
+ | |||
+ | `docker-compose redémarre nginx` | ||
+ | |||
+ | ### Exemple de commande passant des variables d' | ||
+ | |||
+ | docker-compose run --rm -e ADMIN_EMAIL = xxx ADMIN_PASSWORD = xxx paquet fabmanager rake db: seed | ||
+ | |||
+ | ## mise à jour Fabmanager | ||
+ | |||
+ | * Cette procédure met à jour fabmanager vers la version la plus récente par défaut. * | ||
+ | |||
+ | ### Pas | ||
+ | |||
+ | Lorsqu' | ||
+ | |||
+ | 1. allez dans le dossier de votre application | ||
+ | |||
+ | `cd / apps / fabmanager` | ||
+ | |||
+ | 2. tirer les dernières images du docker | ||
+ | |||
+ | | ||
+ | |||
+ | 3. arrêtez l' | ||
+ | |||
+ | | ||
+ | |||
+ | 4. supprimer les anciens actifs | ||
+ | |||
+ | `rm -Rf public / assets /` | ||
+ | |||
+ | 5. compiler de nouveaux atouts | ||
+ | |||
+ | | ||
+ | |||
+ | 6. exécuter des commandes spécifiques | ||
+ | |||
+ | ** N' | ||
+ | sont toujours spécifiés dans [CHANGELOG] (https:// | ||
+ | Ils sont également présents dans la [page des versions] (https:// | ||
+ | |||
+ | Ces commandes exécutent des tâches spécifiques et doivent être exécutées à la main. | ||
+ | |||
+ | 7. redémarrez tous les conteneurs | ||
+ | |||
+ | `` `bash | ||
+ | | ||
+ | | ||
+ | `` ` | ||
+ | |||
+ | Vous pouvez vérifier que tous les conteneurs fonctionnent avec `docker ps`. | ||
+ | |||
+ | ### Bon à savoir | ||
+ | |||
+ | #### Est-il possible de mettre à jour plusieurs versions en même temps? | ||
+ | |||
+ | Oui en effet. C'est le comportement par défaut lorsque la commande `docker-composer pull` va récupérer les dernières versions des images du docker. | ||
+ | Veillez à exécuter toutes les commandes spécifiques répertoriées dans [CHANGELOG] (https:// | ||
+ | et la nouvelle version dans l' |