Liste des déploiements
1. Configuration "Web" (Docker, Compose, Nginx, UFW, Fail2Ban)
#cloud-config
package_update: true
package_upgrade: true
packages:
- curl
- gnupg
- ufw
- fail2ban
- nginx
runcmd:
# Installation Docker Engine & Compose Plugin
- install -m 0755 -d /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- chmod a+r /etc/apt/keyrings/docker.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
- apt-get update
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Sécurité
- ufw allow 22/tcp
- ufw allow 80/tcp
- ufw allow 443/tcp
- ufw --force enable
- systemctl enable fail2ban
- systemctl start fail2ban
final_message: "Instance WEB prête avec docker compose (plugin)."
2. Configuration "Mail" (Stalwart SSH/SMTP/IMAP)
Pour Stalwart, on se base sur leur méthode d'installation automatisée pour Linux. On retire Nginx pour éviter les conflits sur les ports 80/443 que Stalwart utilise pour son interface d'administration et ACME (Let's Encrypt).
#cloud-config
package_update: true
package_upgrade: true
packages:
- curl
- ufw
- fail2ban
runcmd:
# Pare-feu spécifique aux mails (SMTP, Submission, IMAP, Admin)
- ufw allow 22/tcp
- ufw allow 25/tcp
- ufw allow 465/tcp
- ufw allow 587/tcp
- ufw allow 993/tcp
- ufw allow 8080/tcp
- ufw allow 443/tcp
- ufw --force enable
# Installation Stalwart Mail Server (Script officiel)
# -s permet une installation silencieuse avec les réglages par défaut
- curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/stalwartlabs/mail-server/main/install.sh | sh -s -- --url https://github.com/stalwartlabs/mail-server/releases/latest/download/stalwart-mail-x86_64-unknown-linux-gnu.tar.gz
- systemctl enable stalwart-mail
- systemctl start stalwart-mail
final_message: "Instance MAIL prête avec Stalwart. Accédez à l'admin sur le port 80/443."
Ce qu'il faut savoir sur Stalwart :
- Ports : Stalwart gère lui-même ses certificats TLS. C'est pour cela qu'on laisse les ports 80/443 ouverts dans UFW, mais sans installer Nginx pour ne pas bloquer le service.
- Architecture : Contrairement à une pile Docker, l'installation via le script Linux installe Stalwart comme un service système natif (Systemd).
Pack Présence (Exemple : Ghost + Nginx Reverse Proxy)
Ce pack nécessite Docker pour faire tourner le CMS et Nginx en frontal pour gérer le SSL.
#cloud-config
package_update: true
package_upgrade: true
packages:
- curl
- gnupg
- ufw
- fail2ban
- nginx
- htop
- vim
- net-tools
- git
runcmd:
# Install Docker & Compose Plugin
- install -m 0755 -d /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- chmod a+r /etc/apt/keyrings/docker.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
- apt-get update
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Firewall
- ufw allow 22/tcp
- ufw allow 80/tcp
- ufw allow 443/tcp
- ufw --force enable
# Préparation du répertoire de déploiement
- mkdir -p /opt/presence-pack
- |
cat <<EOF > /opt/presence-pack/docker-compose.yml
services:
ghost:
image: ghost:5-alpine
restart: always
ports:
- "2368:2368"
environment:
url: http://localhost
EOF
- cd /opt/presence-pack && docker compose up -d
final_message: "PACK PRÉSENCE : Ghost est déployé sur le port 2368."
2. Pack Bureau (Nextcloud + OnlyOffice + Chatwoot)
Ce pack est plus gourmand. Il nécessite souvent une base de données PostgreSQL ou MariaDB (gérée via Docker Compose).
#cloud-config
package_update: true
package_upgrade: true
packages:
- curl
- ufw
- fail2ban
- htop
- net-tools
runcmd:
# Install Docker (standard procedure)
- install -m 0755 -d /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- chmod a+r /etc/apt/keyrings/docker.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
- apt-get update
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Firewall : Ports Web + Nextcloud Talk (STUN/TURN si nécessaire)
- ufw allow 22,80,443/tcp
- ufw --force enable
# Création d'un dossier pour Nextcloud
- mkdir -p /opt/nextcloud-office
# (Ici tu placerais ton docker-compose.yml complexe incluant Nextcloud + Redis + Postgres + OnlyOffice)
final_message: "PACK BUREAU : Système prêt pour Nextcloud & OnlyOffice."
Pack Entreprise (Odoo + Stalwart Mail)
Pour Odoo, on utilise Docker. Pour Stalwart, comme vu précédemment, l'installation native est souvent préférable pour éviter la complexité réseau du mail dans Docker.
#cloud-config
package_update: true
package_upgrade: true
packages:
- curl
- ufw
- fail2ban
- htop
- net-tools
- postgresql-client # Utile pour tester la connexion Odoo -> DB
runcmd:
# 1. Docker pour Odoo
- install -m 0755 -d /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- chmod a+r /etc/apt/keyrings/docker.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
- apt-get update
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 2. Stalwart Mail (Installation Native)
- |
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/stalwartlabs/mail-server/main/install.sh | \
sh -s -- --url https://github.com/stalwartlabs/mail-server/releases/latest/download/stalwart-mail-x86_64-unknown-linux-gnu.tar.gz
- systemctl enable stalwart-mail && systemctl start stalwart-mail
# 3. Sécurité (Ports Mail + Odoo 8069)
- ufw allow 22,25,465,587,993,80,443/tcp
- ufw allow 8069/tcp
- ufw --force enable
final_message: "PACK ENTREPRISE : Odoo (Docker) et Stalwart (Natif) opérationnels."