/opt/canhelp/scripts
NameSizeModeActions
backup.sh31320755editdlrm
deploy-no-install.sh41300755editdlrm
deploy.sh49480755editdlrm
health-check.sh28050755editdlrm
install.sh26500755editdlrm
restart.sh14780755editdlrm
submit-sitemap.mjs18540644editdlrm
Edit: /opt/canhelp/scripts/install.sh (2650B)
#!/usr/bin/env bash # ============================================================================= # install.sh — первичная установка всех зависимостей на сервере Ubuntu 22/24 # Запускать ОДИН РАЗ от имени пользователя с sudo-правами # ============================================================================= set -euo pipefail APP_DIR="/opt/canhelp" APP_USER="${SUDO_USER:-ubuntu}" echo "==> [1/8] Обновление системы" sudo apt-get update -qq && sudo apt-get upgrade -y -qq echo "==> [2/8] Базовые пакеты" sudo apt-get install -y -qq \ git curl wget build-essential \ apache2 certbot python3-certbot-apache \ ca-certificates gnupg lsb-release echo "==> [3/8] Node.js 22" if ! command -v node &>/dev/null || [[ "$(node -v)" != v22* ]]; then curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs fi echo " node $(node -v) npm $(npm -v)" echo "==> [4/8] PM2" sudo npm install -g pm2 2>/dev/null echo " pm2 $(pm2 -v)" echo "==> [5/8] Docker + Docker Compose" if ! command -v docker &>/dev/null; then sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update -qq sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable --now docker sudo usermod -aG docker "$APP_USER" echo " ВАЖНО: перелогиньтесь чтобы применить группу docker" fi echo " docker $(docker -v)" echo "==> [6/8] Apache модули" sudo a2enmod proxy proxy_http proxy_wstunnel rewrite headers ssl 2>/dev/null || true sudo systemctl enable apache2 echo "==> [7/8] Директория приложения" sudo mkdir -p "$APP_DIR" sudo chown -R "$APP_USER":"$APP_USER" "$APP_DIR" mkdir -p "$APP_DIR/apps/api/uploads" mkdir -p "$APP_DIR/backups" echo "==> [8/8] Firewall (UFW)" if command -v ufw &>/dev/null; then sudo ufw allow OpenSSH sudo ufw allow 'Apache Full' sudo ufw --force enable fi echo "" echo "✓ Установка завершена." echo " Следующий шаг: скопируйте .env в $APP_DIR/ и запустите scripts/deploy.sh"