54 lines
1.5 KiB
Bash
54 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
APP_NAME="n8n"
|
|
APP_DIR="/opt/apps/${APP_NAME}"
|
|
|
|
# ВАЖНО: RAW_BASE должен указывать на ЭТОТ репозиторий n8n
|
|
RAW_BASE="https://git.yalu.pro/evgeny/n8n/raw/branch/main"
|
|
|
|
need() { command -v "$1" >/dev/null 2>&1; }
|
|
|
|
echo "==> Installing ${APP_NAME} into ${APP_DIR}"
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "ERROR: run as root"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$APP_DIR"
|
|
cd "$APP_DIR"
|
|
|
|
# Install Docker if missing (Debian/Ubuntu)
|
|
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" \
|
|
> /etc/apt/sources.list.d/docker.list
|
|
|
|
apt-get update
|
|
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
fi
|
|
|
|
echo "==> Fetching docker-compose.yml and .env"
|
|
curl -fsSL "${RAW_BASE}/docker-compose.yml" -o docker-compose.yml
|
|
|
|
if [[ ! -f .env ]]; then
|
|
curl -fsSL "${RAW_BASE}/.env" -o .env
|
|
echo "==> Created .env from repo (edit it if needed): ${APP_DIR}/.env"
|
|
else
|
|
echo "==> .env already exists, keeping it: ${APP_DIR}/.env"
|
|
fi
|
|
|
|
echo "==> Starting ${APP_NAME}"
|
|
docker compose up -d
|
|
|
|
echo "✅ Done."
|
|
docker compose ps |