diff --git a/deploy/nginx-host.conf b/deploy/nginx-host.conf new file mode 100644 index 0000000..380f5fd --- /dev/null +++ b/deploy/nginx-host.conf @@ -0,0 +1,28 @@ +server { + listen 80; + server_name irinaintegra.ru www.irinaintegra.ru; + + location / { + proxy_pass http://127.0.0.1:8080; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + } + + location /api/ { + proxy_pass http://127.0.0.1:3001/api/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + } +} diff --git a/deploy/setup.sh b/deploy/setup.sh new file mode 100644 index 0000000..f4f0a0f --- /dev/null +++ b/deploy/setup.sh @@ -0,0 +1,57 @@ +#!/bin/bash +set -e + +PROJECT_DIR="/opt/psychologist" +GITEA_URL="https://gitea-ask48448w4k0g0g8c004g8wk.dedroud.ru/admin/psychologist.git" + +echo "==> Установка Docker (если не установлен)" +if ! command -v docker &> /dev/null; then + curl -fsSL https://get.docker.com | sh + sudo usermod -aG docker $USER + echo "Docker установлен. Перелогиньтесь или выполните: newgrp docker" +fi + +echo "==> Создание директории проекта" +sudo mkdir -p $PROJECT_DIR +sudo chown $USER:$USER $PROJECT_DIR +cd $PROJECT_DIR + +echo "==> Клонирование/обновление репозитория" +if [ -d ".git" ]; then + git pull +else + git clone $GITEA_URL . +fi + +echo "==> Создание .env файла" +cat > .env << 'EOF' +PORT=3001 +SMTP_HOST=smtp.yandex.ru +SMTP_PORT=465 +SMTP_SECURE=true +SMTP_USER=Aspirinchekya@yandex.ru +SMTP_PASS=tvbspeqpkqimopei +RECIPIENT_EMAIL=Aspirinchekya@yandex.ru +SITE_NAME=Ирина — Практикующий психолог +FRONTEND_URL=https://irinaintegra.ru +EOF + +echo "==> Сборка и запуск контейнеров" +docker compose down 2>/dev/null || true +docker compose up -d --build + +echo "==> Установка nginx и certbot" +sudo apt-get update +sudo apt-get install -y nginx certbot python3-certbot-nginx + +echo "==> Настройка nginx" +sudo cp deploy/nginx-host.conf /etc/nginx/sites-available/psychologist +sudo rm -f /etc/nginx/sites-enabled/default +sudo ln -sf /etc/nginx/sites-available/psychologist /etc/nginx/sites-enabled/psychologist +sudo nginx -t +sudo systemctl restart nginx + +echo "==> Получение SSL сертификата" +sudo certbot --nginx -d irinaintegra.ru --non-interactive --agree-tos -m Aspirinchekya@yandex.ru + +echo "==> Готово! Сайт должен быть доступен по https://irinaintegra.ru" diff --git a/docker-compose.yml b/docker-compose.yml index 0d44dad..cdde12b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,8 @@ services: backend: build: ./backend - expose: - - 3001 + ports: + - "127.0.0.1:3001:3001" env_file: - .env environment: @@ -14,8 +14,8 @@ services: context: ./frontend args: - VITE_API_URL=/api - expose: - - 80 + ports: + - "127.0.0.1:8080:80" depends_on: - backend restart: unless-stopped diff --git a/frontend/nginx.conf b/frontend/nginx.conf index e6d92d7..2d96d15 100644 --- a/frontend/nginx.conf +++ b/frontend/nginx.conf @@ -7,13 +7,4 @@ server { location / { try_files $uri $uri/ /index.html; } - - location /api/ { - proxy_pass http://backend:3001/api/; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - } }