#!/bin/bash set -euo pipefail if [[ "${EUID}" -ne 0 ]]; then echo "Please run with sudo." exit 1 fi export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y ca-certificates curl gnupg rsync if ! command -v node >/dev/null 2>&1; then mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \ | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" \ >/etc/apt/sources.list.d/nodesource.list apt-get update apt-get install -y nodejs fi if ! command -v caddy >/dev/null 2>&1; then apt-get install -y debian-keyring debian-archive-keyring apt-transport-https curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key \ | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt \ >/etc/apt/sources.list.d/caddy-stable.list apt-get update apt-get install -y caddy fi mkdir -p /opt/boss chown -R ubuntu:ubuntu /opt/boss if [[ -f /opt/boss/deployment/systemd/boss-web.service ]]; then cp /opt/boss/deployment/systemd/boss-web.service /etc/systemd/system/boss-web.service fi if [[ -f /opt/boss/deployment/Caddyfile ]]; then cp /opt/boss/deployment/Caddyfile /etc/caddy/Caddyfile fi systemctl daemon-reload systemctl enable boss-web || true systemctl enable caddy || true echo "bootstrap-server.sh completed"