Skip to content

인프라 구성

Workhub의 핵심 인프라 컴포넌트 설정 가이드입니다.

아키텍처 개요

[Client Browser]

   [Nginx / Reverse Proxy]

   ┌───┴───┐
   │       │
[Frontend] [Backend API]

         ┌─────┼─────┐
         │     │     │
    [PostgreSQL] [NATS] [Zitadel]

PostgreSQL

설정 권장사항

설정권장값설명
max_connections100최대 연결 수
shared_buffersRAM의 25%공유 메모리 버퍼
work_mem4MB쿼리 작업 메모리
wal_levelreplicaWAL 복제 수준

데이터 디렉토리

Docker 볼륨으로 데이터를 영속화합니다:

yaml
volumes:
  - postgres_data:/var/lib/postgresql/data

NATS JetStream

Workhub는 실시간 메시지 전달을 위해 NATS JetStream을 사용합니다.

설정

yaml
nats:
  image: nats:2.10
  command: ["--jetstream", "--store_dir", "/data"]
  volumes:
    - nats_data:/data

스트림 구성

백엔드 서버가 시작할 때 필요한 스트림을 자동으로 생성합니다.

리버스 프록시 (Nginx)

SSL 설정 예시

nginx
server {
    listen 443 ssl http2;
    server_name workhub.example.com;

    ssl_certificate /etc/ssl/certs/workhub.crt;
    ssl_certificate_key /etc/ssl/private/workhub.key;

    # Frontend
    location / {
        proxy_pass http://frontend:80;
    }

    # Backend API
    location /api/ {
        proxy_pass http://backend:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # WebSocket
    location /ws {
        proxy_pass http://backend:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Zitadel (인증 서버)

Zitadel은 OIDC 인증 서버로, 별도의 인스턴스로 운영합니다.

초기 설정

  1. Zitadel 관리 콘솔에 접속합니다.
  2. 프로젝트를 생성합니다.
  3. Application을 추가하고 OIDC 설정을 합니다.
  4. Redirect URI에 Workhub의 콜백 URL을 등록합니다: https://workhub.example.com/auth/callback

Workhub 업무협업 플랫폼