modules: docker engine+compose v2, angie web server
This commit is contained in:
parent
a9ba810bbc
commit
f89aa8505f
49
modules/20-docker.sh
Executable file
49
modules/20-docker.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
# 20-docker — Docker Engine + Compose v2 plugin. $USER added to docker group.
|
||||
|
||||
step_name="docker"
|
||||
step_desc="docker engine + compose v2, add \$USER to docker group"
|
||||
step_run="run_docker"
|
||||
|
||||
run_docker() {
|
||||
log "installing docker + compose v2"
|
||||
if command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then
|
||||
ok "docker + compose v2 already installed"
|
||||
else
|
||||
case "$DISTRO" in
|
||||
arch) sudo_ pacman -Sy --noconfirm --needed docker docker-compose ;;
|
||||
debian) _docker_debian ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# enable + start (best-effort; skip inside containers without systemd)
|
||||
if command -v systemctl >/dev/null 2>&1 && systemctl is-system-running >/dev/null 2>&1; then
|
||||
sudo_ systemctl enable --now docker.service containerd.service 2>/dev/null \
|
||||
|| warn "could not enable docker.service (no systemd?)"
|
||||
else
|
||||
warn "systemctl unavailable — start docker manually if needed"
|
||||
fi
|
||||
|
||||
# add current user to docker group
|
||||
if getent group docker >/dev/null 2>&1; then
|
||||
if id -nG "$USER" | grep -qw docker; then
|
||||
ok "$USER already in docker group"
|
||||
else
|
||||
sudo_ usermod -aG docker "$USER"
|
||||
ok "$USER added to docker group (log out/in or 'newgrp docker' to use it)"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_debian() {
|
||||
sudo_ install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg \
|
||||
| sudo_ gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
sudo_ chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
local codename; codename="$(. /etc/os-release; echo "$VERSION_CODENAME")"
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||
https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $codename stable" \
|
||||
| sudo_ tee /etc/apt/sources.list.d/docker.list >/dev/null
|
||||
sudo_ apt-get update -y
|
||||
sudo_ apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
}
|
||||
48
modules/25-angie.sh
Executable file
48
modules/25-angie.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
# 25-angie — Angie (nginx fork) web server.
|
||||
|
||||
step_name="angie"
|
||||
step_desc="angie web server (nginx fork), enable + open 80/443"
|
||||
step_run="run_angie"
|
||||
|
||||
run_angie() {
|
||||
log "installing angie"
|
||||
if command -v angie >/dev/null 2>&1; then
|
||||
ok "angie already installed"
|
||||
else
|
||||
case "$DISTRO" in
|
||||
arch) _angie_arch ;;
|
||||
debian) _angie_debian ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if command -v systemctl >/dev/null 2>&1 && systemctl is-system-running >/dev/null 2>&1; then
|
||||
sudo_ systemctl enable --now angie 2>/dev/null || warn "could not enable angie.service"
|
||||
else
|
||||
warn "systemctl unavailable — start angie manually if needed"
|
||||
fi
|
||||
|
||||
# firewall note: ufw rules for 80/443 are owned by the hardening step
|
||||
ok "angie installed. ufw 80/443 handled in the hardening step."
|
||||
}
|
||||
|
||||
_angie_arch() {
|
||||
if command -v yay >/dev/null 2>&1; then
|
||||
as_user yay -S --noconfirm angie 2>/dev/null \
|
||||
|| as_user yay -S --noconfirm aur/angie 2>/dev/null \
|
||||
|| warn "angie AUR build failed — try: yay -S angie"
|
||||
else
|
||||
warn "yay not available — install angie manually from AUR: yay -S angie"
|
||||
fi
|
||||
}
|
||||
|
||||
_angie_debian() {
|
||||
. /etc/os-release
|
||||
sudo_ install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://angie.software/keys/angie-signing.gpg \
|
||||
| sudo_ tee /etc/apt/keyrings/angie-signing.gpg >/dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/angie-signing.gpg] https://download.angie.software/angie/${ID}/ ${VERSION_CODENAME} main" \
|
||||
| sudo_ tee /etc/apt/sources.list.d/angie.list >/dev/null
|
||||
sudo_ apt-get update -y
|
||||
sudo_ apt-get install -y angie
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user