/
guselnikov
/
inst
Обзор
Документация
Войти
/
guselnikov
/
inst
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/server/bootstrap.sh
51 строка
2 KB
Viktor Guselnikov
first_commit
07 июл 2026, 11:54
07 июл 2026, 11:54
098126a
Код
Авторство
О чём код?
#!/usr/bin/env bash # Первичная настройка сервера Ubuntu (postgres, redis, rabbitmq, node, pm2, nginx) set -euo pipefail export DEBIAN_FRONTEND=noninteractive DB_PASS="${DB_PASS:-InstDb_x7Kp2026}" MQ_PASS="${MQ_PASS:-InstMq_x7Kp2026}" APP_DIR="/var/www/inst" echo "==> apt packages" apt-get update -qq apt-get install -y -qq curl git nginx postgresql postgresql-contrib redis-server rabbitmq-server \ ca-certificates gnupg build-essential echo "==> Node.js 22" if ! command -v node >/dev/null 2>&1; then curl -fsSL https://deb.nodesource.com/setup_22.x | bash - apt-get install -y -qq nodejs fi node -v npm -v echo "==> pm2" npm install -g pm2 pm2 startup systemd -u root --hp /root || true echo "==> PostgreSQL" systemctl enable --now postgresql sudo -u postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname='inst'" | grep -q 1 || \ sudo -u postgres psql -c "CREATE USER inst WITH PASSWORD '${DB_PASS}';" sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='inst'" | grep -q 1 || \ sudo -u postgres psql -c "CREATE DATABASE inst OWNER inst;" echo "==> Redis" systemctl enable --now redis-server echo "==> RabbitMQ" systemctl enable --now rabbitmq-server rabbitmqctl await_startup 2>/dev/null || sleep 5 rabbitmqctl add_user inst "${MQ_PASS}" 2>/dev/null || rabbitmqctl change_password inst "${MQ_PASS}" rabbitmqctl set_user_tags inst administrator rabbitmqctl set_permissions -p / inst ".*" ".*" ".*" echo "==> app dir" mkdir -p "$APP_DIR/storage" echo "==> nginx base" systemctl enable nginx echo "[OK] Bootstrap done. Clone repo to $APP_DIR and run scripts/deploy.sh"