setup.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. echo "=== PhotoPlaces — установка сервера ==="
  4. # 1. Docker
  5. if ! command -v docker &>/dev/null; then
  6. echo ">>> Устанавливаю Docker..."
  7. curl -fsSL https://get.docker.com | sh
  8. sudo usermod -aG docker "$USER"
  9. echo "!!! Перезайди в SSH (exit, затем снова ssh), чтобы применить группу docker"
  10. else
  11. echo "✓ Docker уже установлен"
  12. fi
  13. # 2. Docker Compose plugin
  14. if ! docker compose version &>/dev/null; then
  15. echo ">>> Устанавливаю Docker Compose..."
  16. sudo apt-get update
  17. sudo apt-get install -y docker-compose-plugin
  18. else
  19. echo "✓ Docker Compose уже установлен"
  20. fi
  21. # 3. Системные пакеты
  22. echo ">>> Устанавливаю системные пакеты..."
  23. sudo apt-get update
  24. sudo apt-get install -y git curl ufw
  25. # 4. Firewall (только внутренние порты + SSH)
  26. echo ">>> Настраиваю firewall..."
  27. sudo ufw allow 22/tcp
  28. sudo ufw allow from 192.168.0.0/16 to any port 8080
  29. sudo ufw allow from 192.168.0.0/16 to any port 3000
  30. sudo ufw --force enable
  31. echo "=== Установка завершена ==="
  32. echo "Далее:"
  33. echo " 1. Скопируй проект на сервер: rsync -avz ./ photoplaces@server:~/photoplaces"
  34. echo " 2. Заполни deploy/env.prod"
  35. echo " 3. Запусти: cd ~/photoplaces && bash deploy/deploy.sh"