Add bootstrap.sh
This commit is contained in:
59
bootstrap.sh
Normal file
59
bootstrap.sh
Normal file
@ -0,0 +1,59 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user