#!/usr/bin/env bash set -euo pipefail step() { echo echo "==================================================" echo " 👉 $1" echo "==================================================" } require_root() { if [ "$(id -u)" -ne 0 ]; then echo "Este script debe ejecutarse como root (o con sudo)." exit 1 fi } require_root step "Instalando Docker, docker compose plugin y certbot" apt-get update -y # Dependencias para repositorio Docker apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release # Clave GPG de Docker if [ ! -f /etc/apt/keyrings/docker.gpg ]; then install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ gpg --dearmor -o /etc/apt/keyrings/docker.gpg fi # Repo Docker estable if [ ! -f /etc/apt/sources.list.d/docker.list ]; then 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 fi apt-get update -y apt-get install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin \ git systemctl enable docker systemctl start docker # Abrimos puertos en ufw si está activo if command -v ufw >/dev/null 2>&1; then if ufw status | grep -q "Status: active"; then step "Configurando firewall (ufw) para permitir 80 y 443" ufw allow 80/tcp || true ufw allow 443/tcp || true fi fi # Creamos carpeta del proxy con docker compose. mkdir -p /opt/beyondcx/traefik cat > /opt/beyondcx/traefik/docker-compose.yaml < /dev/null 2>&1; then echo "red de traefik existe" else docker network create $PROXY_NETWORK fi docker compose up -d step "Levantado traefik " docker compose ps docker compose logs step "Recuerda, tienes que crear el DO_AUTH_TOKEN en el .env"