Files
n8n/install.sh
2026-02-22 04:08:21 +00:00

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