Installation de debian, docker et caddy-docker-proxy
Dans Serveur
Etiquettes: Debian Docker Caddy self-hosting Intelligence humaine
Debian est mon système d'exploitation préféré pour les environnements serveurs et beaucoup de prestataires fournissent des VPS à bas cout avec cet environnement.
J'utilise pour l'instant les serveurs Hetzner situés en Allemagne, mais tout autre prestataire européen fera l'affaire. Vous pouvez même héberger votre serveur chez vous si votre fournisseur de lien internet ne vous met pas trop d'obstacles. Ce sera la prochaine étape pour mes services.
Le serveur hébergeant ce site a 2 coeurs, 4 Go de mémoire et 40 Go de disque, largement sufisant pour beaucoup de services dockers.
Une fois que votre prestataire vous aura livré votre précieux, il faudra l'actualiser et y installer un certain nombre de paquets pour qu'il soit fonctionnel pour héberger vos différents services.
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release debian-keyring debian-archive-keyring
Installation de Docker et Docker Compose
Tous mes services (ce blog, mon tableau de bord, le monitoring…) sont dans des dockers pilotés avec un proxy Caddy.
J'ai d'abord installé Docker et Docker Compose sur le nouveau serveur Debian.
# Ajout du dépôt GPG officiel de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Ajout du dépôt Docker aux sources APT
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Mise à jour de l'index des paquets APT avec le nouveau dépôt
sudo apt update
# Installation de Docker Engine, containerd et Docker Compose
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Vérification de l'installation de Docker
sudo docker run hello-world
# (Optionnel mais recommandé) Ajouter votre utilisateur au groupe docker pour éviter d'utiliser sudo à chaque fois
# Remplacez <votre_utilisateur> par votre nom d'utilisateur
# sudo usermod -aG docker <votre_utilisateur>
# Puis déconnectez-vous et reconnectez-vous pour que les changements prennent effet.
Installation et configuration de Caddy-Docker-Proxy
J'utilise Caddy-Docker-Proxy pour me simplifier la tâche lors de la mise en ligne de mes services. Sur mon serveur, après les étapes précédentes, je lance les commandes suivantes :
# Créez un répertoire pour les configurations Caddy
mkdir -p ~/caddy-docker-proxy && cd ~/caddy-docker-proxy
# Créez un fichier docker-compose.yml pour Caddy-Docker-Proxy
nano docker-compose.yml
le docker compose est très simple :
services:
cdp:
image: lucaslorentz/caddy-docker-proxy:ci-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
environment:
# Optionnel : spécifiez votre email pour Let's Encrypt
# CADDY_EMAIL: votre_email@example.com
CADDY_GLOBAL_OPTIONS: "--adapter caddyfile"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- cdp_data:/data
- cdp_config:/config
networks:
- webproxy-net
volumes:
cdp_data:
cdp_config:
networks:
webproxy-net:
external: true
-
ports: - "80:80" - "443:443": Expose les ports HTTP (80) et HTTPS (443) pour Caddy.
-
volumes:: Monte le socket Docker pour que Caddy puisse détecter les conteneurs et les volumes pour stocker les données de Caddy (certificats, etc.).
-
CADDY_EMAIL (optionnel): Il est recommandé de spécifier une adresse e-mail pour Let's Encrypt en cas de problèmes avec la délivrance des certificats.
-
CADDY_GLOBAL_OPTIONS: "--adapter caddyfile": Important pour que Caddy-Docker-Proxy puisse interpréter les labels Docker.
Nous créons maintenant notre réseau webproxy-net qui sera utilisé par tous les services pour communiquer entre eux.
docker network create webproxy-net
et je lance le docker
docker compose up -d
un petit "docker ps" me confirme que le cdp est bien lancé.
Maintenant, mon serveur est prêt à héberger tous mes services. Le premier service sera glance, une sorte de méga page d'accueil web où je centralise tous les sites que je suit régulièrement.
à bientôt
Blog d'Albâtre - Serveur