Weiter
This commit is contained in:
1 parent
c2063fe1ed
commit
07ef8ef025
10 files changed
+1624
-93
No files matched your search
Executable
+88
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
NODE_MAJOR_REQUIRED=22
|
||||
NODESOURCE_SETUP_URL="https://deb.nodesource.com/setup_${NODE_MAJOR_REQUIRED}.x"
|
||||
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
if [[ ! -f "${REPO_ROOT}/package.json" ]]; then
|
||||
echo "Repo-Root nicht gefunden. Erwartet: ${REPO_ROOT}/package.json"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v apt-get >/dev/null 2>&1; then
|
||||
echo "Dieses Setup-Script unterstuetzt aktuell Debian/Ubuntu mit apt-get."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SUDO=()
|
||||
if [[ "${EUID}" -ne 0 ]]; then
|
||||
if ! command -v sudo >/dev/null 2>&1; then
|
||||
echo "Bitte als root ausfuehren oder sudo installieren."
|
||||
exit 1
|
||||
fi
|
||||
SUDO=(sudo)
|
||||
fi
|
||||
|
||||
run_apt() {
|
||||
if [[ "${#SUDO[@]}" -gt 0 ]]; then
|
||||
"${SUDO[@]}" env DEBIAN_FRONTEND=noninteractive apt-get "$@"
|
||||
else
|
||||
DEBIAN_FRONTEND=noninteractive apt-get "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
run_as_root_preserve_env() {
|
||||
if [[ "${#SUDO[@]}" -gt 0 ]]; then
|
||||
"${SUDO[@]}" -E "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
node_major() {
|
||||
node -p 'Number(process.versions.node.split(".")[0])' 2>/dev/null || echo 0
|
||||
}
|
||||
|
||||
echo "Installiere Basiswerkzeuge fuer die lokale Webapp..."
|
||||
run_apt update
|
||||
run_apt install -y ca-certificates curl gnupg git bash build-essential
|
||||
|
||||
CURRENT_NODE_MAJOR="$(node_major)"
|
||||
if [[ "${CURRENT_NODE_MAJOR}" -lt "${NODE_MAJOR_REQUIRED}" ]]; then
|
||||
echo "Installiere Node.js ${NODE_MAJOR_REQUIRED}.x ueber NodeSource..."
|
||||
TMP_SETUP="$(mktemp)"
|
||||
curl -fsSL "${NODESOURCE_SETUP_URL}" -o "${TMP_SETUP}"
|
||||
run_as_root_preserve_env bash "${TMP_SETUP}"
|
||||
rm -f "${TMP_SETUP}"
|
||||
run_apt install -y nodejs
|
||||
else
|
||||
echo "Node.js $(node --version) ist bereits kompatibel."
|
||||
fi
|
||||
|
||||
CURRENT_NODE_MAJOR="$(node_major)"
|
||||
if [[ "${CURRENT_NODE_MAJOR}" -lt "${NODE_MAJOR_REQUIRED}" ]]; then
|
||||
echo "Node.js >= ${NODE_MAJOR_REQUIRED} wird benoetigt, aktiv ist aber: $(node --version 2>/dev/null || echo nicht installiert)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v npm >/dev/null 2>&1; then
|
||||
echo "npm wurde nicht gefunden. Bitte Node.js/npm Installation pruefen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installiere npm-Abhaengigkeiten im Repo..."
|
||||
cd "${REPO_ROOT}"
|
||||
if [[ -f package-lock.json ]]; then
|
||||
npm ci --include=dev
|
||||
else
|
||||
npm install --include=dev
|
||||
fi
|
||||
|
||||
chmod +x "${REPO_ROOT}/scripts/start-local.sh"
|
||||
|
||||
echo
|
||||
echo "Fertig. Zum Starten noch DATABASE_URL setzen und dann ausfuehren:"
|
||||
echo " npm run serve:local"
|
||||
@@ -6,9 +6,9 @@ BACKEND_PORT="${BACKEND_PORT:-3001}"
|
||||
export API_PROXY_TARGET="${API_PROXY_TARGET:-http://127.0.0.1:${BACKEND_PORT}}"
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
|
||||
if [[ -f ".env" ]]; then
|
||||
if [[ -f ".env_dev" ]]; then
|
||||
set -a
|
||||
source .env
|
||||
source .env_dev
|
||||
set +a
|
||||
fi
|
||||
|
||||
|
||||
Reference in new issue
Block a user