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