Skip to main content
이 가이드는 LangSmith UI 또는 제어 플레인 없이 **독립형 **를 배포하는 방법을 보여줍니다. 이는 하나 또는 몇 개의 에이전트를 독립 서비스로 실행하는 데 이상적인 가장 가벼운 자체 호스팅 옵션입니다.
이 페이지는 LangSmith 플랫폼 없이 LangGraph 서버를 직접 배포하기 위한 설정 페이지입니다.다음을 이해하기 위해 자체 호스팅 옵션을 검토하세요:계속하기 전에 독립형 서버 개요를 검토하세요.

사전 요구 사항

  1. LangGraph CLI를 사용하여 애플리케이션을 로컬에서 테스트합니다.
  2. LangGraph CLI를 사용하여 Docker 이미지를 빌드합니다(예: langgraph build).
  3. 데이터 플레인 배포에는 다음 환경 변수가 필요합니다.
  4. REDIS_URI: Redis 인스턴스 연결 정보입니다. Redis는 백그라운드 실행에서 실시간 출력 스트리밍을 가능하게 하는 pub-sub 브로커로 사용됩니다. REDIS_URI 값은 유효한 Redis 연결 URI여야 합니다.
    공유 Redis 인스턴스 여러 자체 호스팅 배포에서 동일한 Redis 인스턴스를 공유할 수 있습니다. 예를 들어, 배포 A의 경우 REDIS_URIredis://<hostname_1>:<port>/1로 설정하고 배포 B의 경우 REDIS_URIredis://<hostname_1>:<port>/2로 설정할 수 있습니다.12는 동일한 인스턴스 내의 서로 다른 데이터베이스 번호이지만 <hostname_1>은 공유됩니다. 동일한 데이터베이스 번호를 별도의 배포에 사용할 수 없습니다.
  5. DATABASE_URI: Postgres 연결 정보입니다. Postgres는 어시스턴트, 스레드, 실행을 저장하고, 스레드 상태와 장기 메모리를 유지하며, ‘exactly once’ 시맨틱으로 백그라운드 작업 큐의 상태를 관리하는 데 사용됩니다. DATABASE_URI 값은 유효한 Postgres 연결 URI여야 합니다.
    공유 Postgres 인스턴스 여러 자체 호스팅 배포에서 동일한 Postgres 인스턴스를 공유할 수 있습니다. 예를 들어, 배포 A의 경우 DATABASE_URIpostgres://<user>:<password>@/<database_name_1>?host=<hostname_1>로 설정하고 배포 B의 경우 DATABASE_URIpostgres://<user>:<password>@/<database_name_2>?host=<hostname_1>로 설정할 수 있습니다.<database_name_1>database_name_2는 동일한 인스턴스 내의 서로 다른 데이터베이스이지만 <hostname_1>은 공유됩니다. 동일한 데이터베이스를 별도의 배포에 사용할 수 없습니다.
  6. LANGSMITH_API_KEY: LangSmith API 키입니다.
  7. LANGGRAPH_CLOUD_LICENSE_KEY: LangSmith 라이선스 키입니다. 이는 서버 시작 시 한 번 인증하는 데 사용됩니다.
  8. LANGSMITH_ENDPOINT: 자체 호스팅 LangSmith 인스턴스로 트레이스를 보내려면 LANGSMITH_ENDPOINT를 자체 호스팅 LangSmith 인스턴스의 호스트 이름으로 설정합니다.
  9. 네트워크에서 https://beacon.langchain.com으로의 아웃바운드 접근이 필요합니다. 이는 에어갭 모드에서 실행하지 않는 경우 라이선스 확인 및 사용량 보고에 필요합니다. 자세한 내용은 아웃바운드 접근 문서를 참조하세요.

Kubernetes

Helm 차트를 사용하여 Kubernetes 클러스터에 LangGraph 서버를 배포합니다.

Docker

다음 docker 명령을 실행합니다:
docker run \
    --env-file .env \
    -p 8123:8000 \
    -e REDIS_URI="foo" \
    -e DATABASE_URI="bar" \
    -e LANGSMITH_API_KEY="baz" \
    my-image
  • 사전 요구 사항 단계(langgraph build에서)에서 빌드한 이미지의 이름으로 my-image를 교체해야 하며,
REDIS_URI, DATABASE_URI, LANGSMITH_API_KEY에 적절한 값을 제공해야 합니다.
  • 애플리케이션에 추가 환경 변수가 필요한 경우 유사한 방식으로 전달할 수 있습니다.

Docker Compose

Docker Compose YAML 파일:
volumes:
    langgraph-data:
        driver: local
services:
    langgraph-redis:
        image: redis:6
        healthcheck:
            test: redis-cli ping
            interval: 5s
            timeout: 1s
            retries: 5
    langgraph-postgres:
        image: postgres:16
        ports:
            - "5432:5432"
        environment:
            POSTGRES_DB: postgres
            POSTGRES_USER: postgres
            POSTGRES_PASSWORD: postgres
        volumes:
            - langgraph-data:/var/lib/postgresql/data
        healthcheck:
            test: pg_isready -U postgres
            start_period: 10s
            timeout: 1s
            retries: 5
            interval: 5s
    langgraph-api:
        image: ${IMAGE_NAME}
        ports:
            - "8123:8000"
        depends_on:
            langgraph-redis:
                condition: service_healthy
            langgraph-postgres:
                condition: service_healthy
        env_file:
            - .env
        environment:
            REDIS_URI: redis://langgraph-redis:6379
            LANGSMITH_API_KEY: ${LANGSMITH_API_KEY}
            DATABASE_URI: postgres://postgres:postgres@langgraph-postgres:5432/postgres?sslmode=disable
동일한 폴더에 이 Docker Compose 파일이 있는 상태에서 docker compose up 명령을 실행할 수 있습니다. 이렇게 하면 포트 8123에서 LangGraph 서버가 시작됩니다(변경하려면 langgraph-api 볼륨의 포트를 변경하면 됩니다). 다음을 실행하여 애플리케이션이 정상적으로 실행되는지 테스트할 수 있습니다:
curl --request GET --url 0.0.0.0:8123/ok
모든 것이 정상적으로 실행되고 있다면 다음과 같은 응답이 표시됩니다:
{"ok":true}

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I