Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
60 lines
1.8 KiB
Bash
Executable File
60 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Eseguire UNA VOLTA sul server con sudo (da console SSH o: sudo bash server_bootstrap.sh)
|
|
set -euo pipefail
|
|
|
|
if [[ "${EUID}" -ne 0 ]]; then
|
|
if sudo -n true 2>/dev/null; then
|
|
exec sudo -n bash "$0" "$@"
|
|
else
|
|
echo "ERRORE: eseguire come root o con sudo senza password:"
|
|
echo " sudo bash $0"
|
|
echo ""
|
|
echo "Per abilitare NOPASSWD per eminux (opzionale):"
|
|
echo " echo 'eminux ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/eminux-nopasswd"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
apt-get update -qq
|
|
apt-get install -y -qq ca-certificates curl git ufw rsync
|
|
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
|
chmod a+r /etc/apt/keyrings/docker.asc
|
|
|
|
. /etc/os-release
|
|
CODENAME="${VERSION_CODENAME:-bookworm}"
|
|
if [[ "$CODENAME" == "trixie" ]]; then
|
|
CODENAME="bookworm"
|
|
fi
|
|
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian ${CODENAME} stable" \
|
|
> /etc/apt/sources.list.d/docker.list
|
|
|
|
apt-get update -qq
|
|
apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
fi
|
|
|
|
usermod -aG docker eminux 2>/dev/null || true
|
|
systemctl enable --now docker
|
|
|
|
mkdir -p /opt/matchlivetv
|
|
chown -R eminux:eminux /opt/matchlivetv
|
|
|
|
# UFW base
|
|
ufw --force reset || true
|
|
ufw default deny incoming
|
|
ufw default allow outgoing
|
|
ufw allow 22/tcp comment 'SSH'
|
|
ufw allow 1935/tcp comment 'RTMP MediaMTX'
|
|
ufw allow 8888/tcp comment 'HLS MediaMTX optional'
|
|
ufw allow from 192.168.0.0/16 to any port 3000 proto tcp comment 'Rails LAN NPM'
|
|
ufw --force enable
|
|
|
|
docker --version
|
|
docker compose version
|
|
echo "Bootstrap completato. Riavvia sessione SSH di eminux per gruppo docker."
|