60 lines
1.4 KiB
Bash
60 lines
1.4 KiB
Bash
#!/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"
|