Compare commits

...

3 Commits

6 changed files with 162 additions and 21 deletions

43
ansible/playbook.yml Normal file
View File

@@ -0,0 +1,43 @@
---
- hosts: dev
become: yes
become_method: sudo
roles:
- docker
tasks:
- name: Enable 22 port ufw
ufw:
rule: allow
port: "22"
proto: tcp
state: enabled
- name: Enable 80 port ufw
ufw:
rule: allow
port: "80"
proto: tcp
state: enabled
- name: Copy repository to server
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
loop:
- {
src: "{{ playbook_dir }}/../infra",
dest: "/home/{{ ansible_user }}/call-review-platform/infra",
}
- {
src: "{{ playbook_dir }}/../services",
dest: "/home/{{ ansible_user }}/call-review-platform/services",
}
- name: "Deploy infra"
tags: deploy_infra
community.docker.docker_compose_v2:
project_src: "/home/{{ ansible_user }}/call-review-platform/infra/infra"
state: present
- name: "Deploy ingest service"
tags: deploy_ingest
community.docker.docker_compose_v2:
project_src: "/home/{{ ansible_user }}/call-review-platform/services/services/ingest-service"
state: present

View File

@@ -0,0 +1,31 @@
---
- name: Install required packages
apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gnupg
state: present
update_cache: yes
- name: Add Docker GPG key
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Add Docker repository
apt_repository:
repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
state: present
- name: Install Docker and Compose plugin
apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: present
update_cache: yes

View File

@@ -1,6 +1,15 @@
version: "3.8"
services: services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d:ro
depends_on:
- minio
networks:
- call-review-network
postgres: postgres:
image: postgres:15-alpine image: postgres:15-alpine
container_name: ingest-postgres container_name: ingest-postgres
@@ -8,8 +17,6 @@ services:
POSTGRES_DB: ingest_db POSTGRES_DB: ingest_db
POSTGRES_USER: postgres POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
volumes: volumes:
- postgres_data:/var/lib/postgresql/data - postgres_data:/var/lib/postgresql/data
healthcheck: healthcheck:
@@ -19,9 +26,20 @@ services:
retries: 5 retries: 5
networks: networks:
- call-review-network - call-review-network
minio:
image: minio/minio
container_name: minio
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: password123
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
networks:
- call-review-network
volumes: volumes:
postgres_data: postgres_data:
minio_data:
networks: networks:
call-review-network: call-review-network:

View File

@@ -0,0 +1,12 @@
server {
listen 80;
server_name crs-ingest-service.petrovskiy.ru;
location / {
proxy_pass http://ingest-service:8000;
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;
}
}

View File

@@ -0,0 +1,25 @@
server {
listen 80;
server_name s3.bikmeefftest.ru;
location / {
proxy_pass http://minio:9000;
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;
}
}
server {
listen 80;
server_name crs-minio.petrovskiy.ru;
location / {
proxy_pass http://minio:9001;
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;
}
}

View File

@@ -40,38 +40,50 @@ ingest-service/
### 1. Запуск через Docker Compose (рекомендуется) ### 1. Запуск через Docker Compose (рекомендуется)
> ⚠️ **ВАЖНО**: Необходимо сначала запустить инфраструктуру (PostgreSQL), которая создаст общую сеть `call-review-network`, а затем микросервис.
**Шаг 1: Запустить инфраструктуру (PostgreSQL)** **Шаг 1: Запустить инфраструктуру (PostgreSQL)**
```bash ```bash
# Из корня проекта # Из корня проекта
cd infra docker-compose -f infra/docker-compose.yaml up -d
docker-compose up -d
# Проверить, что PostgreSQL запущен # Проверить, что PostgreSQL запущен и сеть создана
docker-compose ps docker network ls | grep call-review
docker ps --filter "name=ingest-postgres"
``` ```
**Шаг 2: Запустить микросервис ingest-service** **Шаг 2: Запустить микросервис ingest-service**
```bash ```bash
# Из папки микросервиса # Из корня проекта
cd ../services/ingest-service docker-compose -f services/ingest-service/docker-compose.yaml up -d
docker-compose up -d
# Проверить логи # Проверить логи (увидите применение миграций и старт сервиса)
docker-compose logs -f docker-compose -f services/ingest-service/docker-compose.yaml logs -f
# Проверить статус # Проверить статус
docker-compose ps docker ps --filter "name=ingest"
```
**Проверка работы:**
```bash
# Health check
curl http://localhost:8000/health
# Swagger UI
open http://localhost:8000/docs
``` ```
**Остановка сервисов:** **Остановка сервисов:**
```bash ```bash
# Остановить микросервис # Остановить микросервис (из корня проекта)
cd services/ingest-service docker-compose -f services/ingest-service/docker-compose.yaml down
docker-compose down
# Остановить инфраструктуру # Остановить инфраструктуру (ВНИМАНИЕ: остановит PostgreSQL!)
cd ../../infra docker-compose -f infra/docker-compose.yaml down
docker-compose down
# Или остановить всё сразу
docker-compose -f services/ingest-service/docker-compose.yaml down && \
docker-compose -f infra/docker-compose.yaml down
``` ```
Приложение будет доступно по адресу: http://localhost:8000 Приложение будет доступно по адресу: http://localhost:8000