Prod deploy script
This commit is contained in:
parent
145cde1be1
commit
d8d558f7e3
59
deploy.sh
Normal file
59
deploy.sh
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# --- Farben ---
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||||
error() { echo -e "${RED}[ERROR]${NC} $1" >&2; }
|
||||
|
||||
# --- Konfiguration ---
|
||||
PROJECT_DIR="/srv/danielnagel-site"
|
||||
VENV_DIR="${PROJECT_DIR}/.venv"
|
||||
PUBLISH_CONF="publishconf.py"
|
||||
OUTPUT_DIR="${PROJECT_DIR}/output"
|
||||
|
||||
# --- Sicherheits-Check: richtiges Verzeichnis ---
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
if [ ! -f "$PUBLISH_CONF" ]; then
|
||||
error "publishconf.py nicht gefunden. Falsches Verzeichnis?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
error "venv fehlt. Bitte erst setup.sh ausführen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- 1. Git-Update ---
|
||||
info "Hole aktuellen Stand vom Repo..."
|
||||
git fetch --all --prune
|
||||
git reset --hard origin/main
|
||||
git submodule update --init --recursive --force
|
||||
|
||||
# --- 2. Dependencies refreshen ---
|
||||
info "Aktualisiere Python-Dependencies..."
|
||||
"${VENV_DIR}/bin/pip" install --quiet --upgrade pip
|
||||
"${VENV_DIR}/bin/pip" install --quiet -r requirements.txt
|
||||
|
||||
# --- 3. Pelican bauen ---
|
||||
info "Baue Site mit Pelican (Production-Config)..."
|
||||
"${VENV_DIR}/bin/pelican" content \
|
||||
-s "$PUBLISH_CONF" \
|
||||
--delete-output-directory
|
||||
|
||||
info "Build fertig. Output liegt in: ${OUTPUT_DIR}"
|
||||
|
||||
# --- 4. Sanity-Check ---
|
||||
if [ ! -f "${OUTPUT_DIR}/index.html" ]; then
|
||||
error "index.html fehlt im Output! Build evtl. fehlgeschlagen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- Done ---
|
||||
info "Deploy erfolgreich. Caddy serviert die neuen Files automatisch. 🚀"
|
||||
Loading…
Reference in New Issue
Block a user