Add install.sh

This commit is contained in:
2026-02-22 03:49:47 +00:00
commit 62d9c0899b

59
install.sh Normal file
View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
set -euo pipefail
APP_NAME="n8n" # <<< поменяй под приложение
APP_DIR="/opt/apps/${APP_NAME}"
# <<< поменяй на свой raw base URL
# пример: https://git.yalu.pro/evgeny/n8n-docker/raw/branch/main
RAW_BASE="https://git.yalu.pro/evgeny/n8n-docker/raw/branch/main"
need() { command -v "$1" >/dev/null 2>&1; }
echo "==> Installing ${APP_NAME} into ${APP_DIR}"
# 1) Preflight
if [[ $EUID -ne 0 ]]; then
echo "ERROR: run as root"
exit 1
fi
mkdir -p "$APP_DIR"
cd "$APP_DIR"
# 2) Install Docker if missing
if ! need docker; then
echo "==> Docker not found. Installing Docker..."
apt-get update
apt-get install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
. /etc/os-release
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/${ID} \
${VERSION_CODENAME} stable" | tee /etc/apt/sources.list.d/docker.list >/dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
fi
# 3) Fetch compose + env example from repo
echo "==> Fetching docker-compose.yml and .env.example"
curl -fsSL "${RAW_BASE}/docker-compose.yml" -o docker-compose.yml
curl -fsSL "${RAW_BASE}/.env.example" -o .env.example
# 4) Create .env if missing
if [[ ! -f .env ]]; then
cp .env.example .env
echo "==> Created .env from .env.example (edit it if needed)"
fi
# 5) Start app
echo "==> Starting ${APP_NAME}"
docker compose up -d
echo "✅ Done."
docker compose ps