Installer Cosmos Cloud avec Docker
Cosmos Cloud

Installer Cosmos Cloud avec Docker

Table des matières

J'avais fait un article au tout début de belginux sur Cosmos Cloud où j'avais mis en avant toutes les qualités de cette application qui est maintenant au cœur de tous mes serveurs, qu'ils soient distant ou à la maison. Pour moi c'est vraiment un indispensable.

Un must-have !
Cosmos - Le must have du self-hosted!
Présentation de Cosmos, le must have de l’auto-hébergement. Sécurité serveur, reverse proxy, VPN, gestionnaire de containers et plus encore :)

J'avais commencé depuis ce temps à faire un article que j'ai depuis lors scindé, pour plus de clarté, en plusieurs parties tant Cosmos Cloud offre des possibilités tant niveau sécurité que gestion de son serveur maison, qui peut tout aussi bien être installé sur un serveur distant cela dit.

Voici donc le premier article d'une longue série qui va rentrer dans le vif du sujet et je vais publier les autres dans la semaine et celles qui suivent.

Cela peut sembler, je dis bien sembler, compliqué et long mais je me suis efforcé à bien expliqué toute la procédure dans ses moindres détails.

Cette installation est la plus optimale et vous facilitera bien la vie après.

Si vous rencontrez une difficulté n'hésitez pas à demander de l'aide.


Préparation

Ouvrir les ports sur son routeur

Il faudra ouvrir les ports 80 & 443 (TCP) pointant vers l'IP locale de votre serveur.

Si vous comptez utiliser le VPN de Cosmos Cloud, ouvrez le port 4242 en UDP.
Ce n'est généralement pas compliqué, référez-vous au manuel de votre routeur si vous ne savez pas comment faire.

Ajouter son domaine à Cloudflare

On va commencer par se rendre sur Cloudflare pour créer un compte (gratuit):

Connect & protect with the connectivity cloud
Make employees, applications and networks faster and more secure everywhere, while reducing complexity and cost.

On clique sur Sign up:

Maintenant on sélectionne Add a Website, la version Free:

Créez votre compte, validez en cliquant sur Sign up:

Poursuivez en choisissant Add a website or applicaiton:

Indiquez le nom de votre domaine et cliquez sur Continuer:

On choisi la version Free et on clique sur Continue:

Cloudflare vérifie s'il y a déjà des entrées associées à votre domaine, peu importe, cliquez sur Continue:

Cloudflare va vous demander de changer les serveurs DNS chez votre fournisseur de nom de domaine.
⚠️ Notez bien les deux adresses après Your assigned Cloudflare nameservers:

Pour l'exemple je vais vous montrer comment faire chez OVH, mais la même procédure partout. Une fois connecté à votre compte client OVH, allez dans la partie Web Cloud, Serveur DNS:

Cliquez sur Modifier les serveurs DNS et entrez les deux nameservers que je vous ai demandé de noter au point précédant et validez en cliquant sur Appliquer la configuration:

On retourne sur la page de Cloudflare et on clique sur Continue:

Ici vous cliquez sur Finish later:

Maintenant il va falloir attendre que le transfert de DNS soit effectif chez Cloudflare. Vous recevrez un mail quand c'est terminé. Cela peut prendre du temps. En général c'est quand même relativement rapide, ça peut aller de 15 minutes à 1 heure. Surveillez la boîte mail du compte avec lequel vous vous êtes inscrit.

Ah, voilà le mail de confirmation!

On retourne sur Cloudflare dans Overview et on peut constater que c'est bien effectif.

Cliquez sur DNS dans le menu de gauche:

Ajoutez une entrée de Type A (Add record) avec une * dans Name (required) et dans le champ IPv4 address (required) votre l'IP publique, prenez soin de décocher Proxy Status, une fois que c'est terminé, confirmez en cliquant sur Save:

Ajoutez une entrée de Type A (Add record) avec www dans Name (required) et dans le champ IPv4 address (required) votre l'IP publique, prenez soin de décocher Proxy Status, confirmez en cliquant sur Save:

Ajoutez une entrée de Type A (Add record) avec votre nom de domaine dans Name (required) et dans le champ IPv4 address (required) votre l'IP publique, prenez soin de décocher Proxy Status, confirmez en cliquant sur Save:

Voici à quoi doit ressembler vos entrées DNS:

Attentez la propagation complète de votre domaine. Vous pouvez vérifier ça sur:

DNS Propagation Checker - Global DNS Checker Tool
Instant DNS Propagation Check. Global DNS Propagation Checker - Check DNS records around the world.

Entrez votre domaine et cliquez sur Search. Vous devez voir votre IP publique partout.
C'est terminé pour la partie Cloudflare.

⚠️
Si votre routeur ne prend pas en charge le hairpinning, comme moi, il est conseillé de mettre l'IP locale (oui, oui) de votre serveur au lieu de votre IP publique si non cela va poser des problèmes si vous voulez faire du filtrage IP. En plus cela permettra de ne pas exposer Cosmos Cloud sur le web (bien qu'il existe d'autres façons de le faire).

Donc vous suivez exactement la procédure décrite ci-dessus, mais vous ajouter votre l'IP locale de votre serveur pour les entrées de Type A avec le @ et l'*.

Pour ouvrir une application sur le web, il suffira d'ajouter le sous-domaine choisi dans la partie URL's de Cosmos dans NAME et de mettre votre IP externe dans le champ IPv4.

N'hésitez pas à rejoindre belginux sur Discord, Matrix ou encore par mail si vous avez des questions à propos de ce point. On se fera un plaisir de vous aider!

Préparer sa clé API Cloudflare

Conserver cette clé pas loin, vous en aurez besoin sous peu!

Mais comment trouver cette clé sur Cloudflare?
Rendez-vous dans Overview:

En bas à droite vous pouvez voir Get your API token, cliquez dessus:

Sur la ligne Global API key, cliquez sur View. Il vous sera demandé votre mot de passe de votre compte Cldouflare pour l'afficher, quand votre mot de passe est rentré, cliquez sur View:

Cliquez sur Click to copy et notez cette clé quelque part à portée de main:


Installer Cosmos Cloud

Connectez-vous en SSH à votre serveur et copier/collez cette commande, en root:

sudo docker run -d --network host  --privileged --name cosmos-server -h cosmos-server --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket -v /:/mnt/host -v /var/lib/cosmos:/config azukaar/cosmos-server:latest

Cosmos est déployé:

La commande dans le screenshot ne correspond plus car elle a été changée depuis la rédaction de l'article. Mais la finalité est la même.

Terminer l'installation de Comos Cloud

Maintenant il va falloir se rendre sur sur l'IP de votre serveur, en navigation privée pour éviter tout problème de cache.

http://IP

Bienvenue sur Cosmos Cloud! Cliquez sur Start:

Cosmos Cloud va vérifier que Docker est bien installé, c'est bien le cas, étape suivante en cliquant sur Next:

Cette étape va installer la base de données, MongoDB, cliquez sur Connect:

Installation en cours:

Base de données correctement installée et connecté! Cliquez sur Next:

Ici, on va procéder par étape. En premier il faut renseigner: dans Hostname, votre domaine.
Si'il n'y a pas d'erreur vous aurez le cadre vert.
En dessous, choisir Use Let's Encrypt automatic HTTPS (recommended).

  • Dans la partie Let's Encrypt Email, indiquez le mail correspondant au mail de votre compte Cloudflare.
  • Dans la partie Pick a DNS provider (if you are using a DNS Challenge, oth..., sélectionnez Cloudflare dans la liste:

Cocher Use Wildcar Certificate for *.votredomaine et cliquez sur DNS Challenge setup:

  • Dans CLOUDLARE_EMAIL: vous indiquez à nouveau le mail avec lequel vous vous êtes inscrit sur Cloudflare
  • CLOUDFLARE_API_KEY: votre clé API de Cloudflare:

On valide en cliquant sur Update:

On arrive à la création du compte admin. Remplissez dans un premier temps:

  • Nickname => choisissez votre nom de compte.
  • Password => choisissez le mot de passe de votre nom de compte. Préférez un mot de passe fort, bien entendu.

On valide en cliquant sur Create:

Une fois que Cosmos Cloud a terminé de créer votre compte admin, il suffit de cliquez sur Apply and Restart:

Côté serveur Cosmos Cloud met tout en place, un peu de patience:

Et voilààààà, c'est installé et prêt à l'emploi, félicitations! 🎉

Entrez maintenant vos identifiants et cliquez sur Login.

Bienvenue sur Cosmos Cloud!


⚠️ Si vous installez Cosmos avec votre propre certificat SSL

Merci à sax_7 (Discord) pour sa contribution à cette partie.

Cosmos Cloud permet d'ajouter son propre certificat SSL, veillez lire ceci avant de suivre le tutoriel:

  • Générer un CSR.
  • On obtient un fichier CSR (à soumettre à l'organisme SSL) et une clé privée.
  • Après vérification par l'organisme que vous soyez bien le propriétaire légitime, vous recevez la clé publique.
  • Ajouter une entrée CNAME qui pointe sur l'IP de votre serveur, sur CloudFlare ou votre gestionnaire de DNS.
  • Installer Cosmos et choisir de soumettre ses propres clés.
  • Insérer ses clés et poursuivre l'installation normalement.

Pas besoin de faire le DNS challenge avec votre propre certificat SSL.

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.