Fait
On peut profiter des avantages de l’autohébergement de nos services à la maison sans toutefois disposer d'un Raspberry Pi. La solution consiste en l'installation d'un système d'exploitation serveur sur un ordinateur personnel (portable ou un poste de table -une tour-), dont le processeur permet la virtualisation), de l'ajout de Docker et d'y installer ensuite les services désirés.
D'abord, vous devez vous assurer que le processeur de votre ordinateur (portable ou tour) supporte la virtualisation. L'idée est d'aller vérifier sur le site du constructeur de votre processeur si le processeur de l'ordinateur à installer supporte la virtualisation.
Si vous ne savez pas le type de processeur, cherchez-le sur le site de votre fabricant.
Quand vous savez le modèle de votre processeur et son constructeur, vérifiez.
Exemple: Vous avez une tour HP Pavilion MediaCenter m8187c achetée en 2007 qui ne demande qu'à se rendre utile à nouveau.
Hé oui, je suis de la vieille école qui n'utilise pas encore les clés USB pour graver ses images.
Vous avez maintenant une base solide pour votre serveur. Vous pouvez maintenant installer n'importe quel logiciel désiré sur votre serveur.
Docker est une application qui simplifie et accélère l'exécution des processus applicatifs dans des conteneurs, qui sont comme des machines virtuelles, seulement plus portables, plus respectueux des ressources et plus dépendants du système d'exploitation hôte. Pour une introduction détaillée aux différents composants d'un conteneur Docker, consultez The Docker Ecosystem : An Introduction to Common Components (L'écosystème Docker : une introduction aux composants communs).
Connectez-vous à votre serveur (via son adresse IP) avec un compte utilisateur administrateur par SSH à partir d'un ordinateur connecté au même réseau que votre serveur, par exemple :
$ ssh mon_compte@192.168.10.103
S'assurer que les paquets d'Ubuntu sont à jour sur votre serveur :
sudo apt update && sudo apt upgrade
S'assurer d'avoir configuré votre routeur afin de rediriger les ports 443, 22 (et 80 si possible) vers l'adresse que votre routeur a attribuée à votre serveur :
Name | Protocol | LAN Server |
---|---|---|
Virtual Server HTTP | TCP 80/80 | 192.168.10.103 |
Virtual Server HTTPS | TCP 443/443 | 192.168.10.103 |
SSH | TCP 22/22 | 192.168.10.103 |
J'exécute ce script qui initialise Dockerswarm, lance la pile de Portainer (incluant le client agent et le Traefik correspondant) avec ces commandes :
$ wget https://framagit.org/linuq/easy-pi-hosting/raw/master/install.sh
Message : “Enregistre : “install.sh”
$ wget https://framagit.org/linuq/easy-pi-hosting/raw/master/docker-compose.yml
Message : “«docker-compose.yml» enregistré” Avant d'aller plus loin, vous devez connaître la réponse à ces 6 questions que vous devrez saisir dans le script qui suivra: 1- “Host name for Portainer service: ” adresse pour rejoindre l'administration de Portainer (ex: rpi01.votredomaine.ca) 2- “Host name for Traefik service: ” adresse pour rejoindre l'interface de visualisation de Traefix (interface entre le web et tous les Dockers) (ex: traefik01.votredomaine.ca) 3- “Email for Lets'Encrypt recovery: ” votre adresse courriel (ex: joe_bloe@gmail.com) (si vous vous faites pirter votre certificat, vous utiliserez cette adresse pour l'annuler) 4- “Email for your Cloudflare account: ” adresse utilisée quand vous avez créé votre compte chez Cloudflare (ex: joe_bloe@gmail.com) 5- “Cloudflare Global API Key: ” (la clé copiée tantôt au bas de la page Création d'un compte chez Cloudflare) 6- “Domaine name for the Docker network: ” (votredomaine)
Permettre l'exécution du script :
chmod +x install.sh
Lancer le script :
$ ./install.sh
Message :
Automated installation of Portainer/Traefik stack To be able to complete this installation, you must have before installed Hypriot on your Raspberry-pi (3 or better recommanded). You must also have registered an internet domaine name and open an account at Cloudflare and transfer your DNS server (FREE) there. Did you get your internet domain name and your Cloudflare account info? ([y]es or [n]o):
Répondre “y” (enter) Répondre aux 6 questions tel que décrit ci-dessus.
Réponse du script :
Did you get your internet domain name and your Cloudflare account info? ([y]es or [n]o): y Host name for Portainer service: rpi01 Host name for Traefic service: traefik01 Email for Lets'Encrypt recovery: joe_bloe@gmail.com Email for your Cloudflare account: joe_bloe@gmail.com Cloudflare Global API Key: 59766315cdd5d7793e08e438e7d5b88945176 Domaine name for the Docker network: (votredomaine) Swarm initialized: current node (z42z6cirp03hz579z4cn9xtbu) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0pfq9zijgzbb4t56eqo1q18c5q6r5prlhhr9u02chv8vfed8v4-60i4kvi1wpxcdnqst1l7nj7ii 192.168.10.109:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. w00380tla27fc74kjqx7gtck4 Creating network maestro_agent_network Creating service maestro_proxy Creating service maestro_agent Creating service maestro_portainer Installation complete, take a coffee and then navigate to your server URL : HTTPS:// Create you administrative user and then enjoy free hosting your life yourself Any bugs can be reported here : https://framagit.org/linuq/easy-pi-hosting/issues French documentation of the projet is here : https://linuq.org/projets/auto-hebergement_maison
Lister les services disponibles :
$ docker service ls
$ docker service ls ID NAME MODE REPLICAS IMAGE PORTS slahlcbtosav maestro_agent global 1/1 portainer/agent:latest 7zpp5m2khdc9 maestro_portainer replicated 1/1 portainer/portainer:latest *:30001->9000/tcp dl76rp129dqv maestro_proxy replicated 1/1 traefik:latest *:80->80/tcp, *:443->443/tcp, *:30000->8080/tcp
Et voilà, Portainer est lancé!
Notez le port alloué à Portainer est 3000130000.
Maintenant, toujours d'un ordinateur dans le même réseau, ouvrez votre navigateur et donnez-lui votre adresse et le port 30000 :
http://192.168.10.103:30000
Portainer devrait vous assister dans la création de votre compte administrateur…
https://linuq.org/_media/projets/linuq2.png
Remplacer l'URL du template par défaut (attention différente du Pi car contient .pc.json) :
https://raw.githubusercontent.com/portainer/templates/master/templates.json
par celle-ci :
https://framagit.org/linuq/easy-pi-hosting-template/raw/master/templates.pc.json
(à changer dans sa forme finale) dans le champs URL.
* Voir la section Les images d'intérêt - CouchPotato
(section interrompue ici)