Files
caddy/bootstrap.sh
2025-12-22 14:35:46 +09:00

60 lines
1.4 KiB
Bash
Executable File

#!/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"