#!/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