> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baeum.ai.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# Langflow

**비주얼 AI 파이프라인 빌더**입니다. 드래그 앤 드롭 방식으로 LLM, RAG, AI Agent 파이프라인을 구성할 수 있습니다.

## 어디에 쓰이나요?

* **RAG 파이프라인**: 문서 로더 → 텍스트 분할 → 임베딩 → 벡터 DB → LLM 응답까지의 흐름을 시각적으로 구성
* **AI Agent**: 도구(Tool)와 LLM을 연결하여 자율적으로 작업을 수행하는 에이전트 구축
* **프로토타이핑**: 코드 작성 없이 다양한 LLM 조합과 파라미터를 실험
* **API 배포**: 구성한 파이프라인을 REST API로 바로 배포

LangChain 기반으로 동작하며, 각 컴포넌트(LLM, 벡터 DB, 도구 등)를 노드로 배치하고 연결선으로 데이터 흐름을 정의합니다. 완성된 플로우는 Python 코드로 내보낼 수도 있습니다.

## Docker Compose

```yaml docker-compose.yml theme={null}
services:
  langflow:
    image: langflowai/langflow:latest
    container_name: langflow
    restart: unless-stopped
    ports:
      - "7860:7860"
    environment:
      - LANGFLOW_DATABASE_URL=sqlite:///./langflow.db
      - LANGFLOW_AUTO_LOGIN=true
    volumes:
      - langflow_data:/app/langflow

volumes:
  langflow_data:
```

### PostgreSQL 연동 구성

데이터 영속성이 필요한 경우 PostgreSQL을 함께 사용합니다.

```yaml docker-compose.yml theme={null}
services:
  langflow:
    image: langflowai/langflow:latest
    container_name: langflow
    restart: unless-stopped
    ports:
      - "7860:7860"
    environment:
      - LANGFLOW_DATABASE_URL=postgresql://postgres:changeme@langflow-db:5432/langflow
      - LANGFLOW_AUTO_LOGIN=true
    depends_on:
      langflow-db:
        condition: service_healthy

  langflow-db:
    image: postgres:17-alpine
    container_name: langflow-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=changeme
      - POSTGRES_DB=langflow
    volumes:
      - langflow_db_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 3s
      timeout: 3s
      retries: 10

volumes:
  langflow_db_data:
```

## 실행

```bash theme={null}
docker compose up -d
```

## 접속 확인

브라우저에서 `http://localhost:7860`으로 접속합니다.

`LANGFLOW_AUTO_LOGIN=true`로 설정된 경우 자동 로그인됩니다.

## 기본 정보

| 항목        | 값           |
| --------- | ----------- |
| 웹 UI 포트   | 7860        |
| 기본 데이터베이스 | SQLite (내장) |

## 환경 변수

| 변수                            | 설명                      |
| ----------------------------- | ----------------------- |
| `LANGFLOW_DATABASE_URL`       | 데이터베이스 연결 문자열           |
| `LANGFLOW_AUTO_LOGIN`         | 자동 로그인 활성화 (true/false) |
| `LANGFLOW_SUPERUSER`          | 슈퍼유저 이름                 |
| `LANGFLOW_SUPERUSER_PASSWORD` | 슈퍼유저 비밀번호               |
| `LANGFLOW_CONFIG_DIR`         | 설정 디렉토리 경로              |

## 라이선스

| 구분     | 내용                       |
| ------ | ------------------------ |
| 라이선스   | MIT License              |
| 개인 사용  | 자유롭게 사용 가능               |
| 상업적 사용 | 자유롭게 사용 가능, 수정/재배포 제한 없음 |

## 참고

* [Langflow Docker 설치 가이드](https://docs.langflow.org/get-started-installation#docker)
* [Langflow GitHub](https://github.com/langflow-ai/langflow)

## 설치 점검 목록

* `docker compose up -d` 후 `docker compose ps`로 컨테이너 상태를 확인했습니다.
* 기본 포트/계정/비밀번호를 문서대로 점검했습니다.
* 운영용으로 사용할 때 기본 비밀번호/시크릿 값을 변경했습니다.
* 장애 분석을 위해 `docker compose logs -f` 확인 방법을 숙지했습니다.

## 문제 해결 가이드

* 컨테이너가 실행되지 않으면 `docker compose logs -f`로 오류 원인을 먼저 확인합니다.
* 포트 충돌이 나면 기존 프로세스를 종료하거나 포트 매핑 값을 변경합니다.
* 이미지 pull 실패 시 네트워크 연결 및 레지스트리 접근 권한을 확인합니다.
* 설정 변경 후 문제가 지속되면 `docker compose down` 후 다시 `up -d`로 재기동합니다.

## 관련 문서

<CardGroup cols={2}>
  <Card title="Setup 홈" icon="house" href="/setup/index">
    운영체제별 설치 흐름을 다시 확인합니다.
  </Card>

  <Card title="다음: Flowise" icon="arrow-right" href="/stacks/flowise">
    다음 설치 단계를 이어서 진행합니다.
  </Card>
</CardGroup>
