#!/usr/bin/env bash set -e ### ===== 설정값 ===== GIT_REPO="git@git.siane.kr:firstgarden/caddyfile.git" CADDY_USER="caddy" HOME_DIR="/root" CADDY_HOME="${HOME_DIR}/caddy" CADDY_ETC="/etc/caddy" CONF_DIR="${CADDY_ETC}/conf.d" echo "== Caddy LXC bootstrap 시작 ==" ### 1. 필수 패키지 확인 echo "[1/6] 필수 패키지 설치" apt update apt install -y git curl ### 2. git clone if [ -d "${CADDY_HOME}" ]; then echo "⚠ ${CADDY_HOME} 이미 존재, clone 생략" else echo "[2/6] Caddy 설정 repo clone" git clone "${GIT_REPO}" "${CADDY_HOME}" fi ### 3. /etc/caddy 구조 준비 echo "[3/6] /etc/caddy 디렉터리 확인" mkdir -p "${CADDY_ETC}" mkdir -p "${CONF_DIR}" ### 4. 심볼릭 링크 설정 echo "[4/6] 심볼릭 링크 생성" # Caddyfile if [ ! -L "${CADDY_ETC}/Caddyfile" ]; then ln -s "${CADDY_HOME}/Caddyfile" "${CADDY_ETC}/Caddyfile" fi # conf.d if [ ! -L "${CONF_DIR}" ]; then rm -rf "${CONF_DIR}" ln -s "${CADDY_HOME}/conf.d" "${CONF_DIR}" fi ### 5. 권한 설정 echo "[5/6] 권한 정리" chown -R ${CADDY_USER}:${CADDY_USER} "${CADDY_ETC}" chown -R ${CADDY_USER}:${CADDY_USER} "${CADDY_HOME}" ### 6. Caddy 설정 검증 echo "[6/6] Caddy 설정 검증" caddy validate --config "${CADDY_ETC}/Caddyfile" || { echo "❌ Caddy 설정 검증 실패" exit 1 } echo "✅ bootstrap 완료" echo "👉 sudo systemctl reload caddy"