LLM 애플리케이션 개발 플랫폼입니다. 코드 없이 웹 UI에서 챗봇, RAG, AI Agent, 워크플로우 등을 구성할 수 있습니다.
어디에 쓰이나요?
- RAG 챗봇: PDF, 웹페이지 등의 문서를 업로드하고 문서 기반 질의응답 챗봇 구축
- AI Agent: 외부 도구(검색, 계산기, API 호출 등)를 활용하는 자율형 AI 에이전트 구성
- 워크플로우: 여러 LLM 호출과 조건 분기를 연결하여 복잡한 AI 파이프라인 설계
- 프롬프트 관리: 프롬프트 버전 관리, A/B 테스트, 성능 모니터링
OpenAI, Anthropic, Ollama 등 다양한 LLM 제공자를 연결할 수 있으며, 완성된 애플리케이션은 API 또는 공유 링크로 배포할 수 있습니다.
Docker Compose
Dify는 공식 저장소의 Docker Compose 파일을 사용합니다.
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
.env 파일에서 필요한 설정을 수정합니다.
# .env 파일 주요 설정
SECRET_KEY=sk-your-secret-key-here
INIT_PASSWORD=changeme
초기 실행 시 여러 컨테이너(api, worker, web, db, redis, nginx 등)가 함께 시작됩니다. 전체 기동까지 1~2분 정도 소요될 수 있습니다.
접속 확인
브라우저에서 http://localhost/install로 접속하여 관리자 계정을 생성합니다.
설정 완료 후 http://localhost에서 로그인합니다.
기본 정보
| 항목 | 값 |
|---|
| 웹 UI 포트 | 80 |
| API 포트 | 5001 |
| 기본 관리자 비밀번호 | .env의 INIT_PASSWORD |
포함된 서비스
Dify는 다음 서비스들을 함께 실행합니다.
| 서비스 | 역할 |
|---|
| api | 백엔드 API 서버 |
| worker | 비동기 작업 처리 (Celery) |
| web | 프론트엔드 (Next.js) |
| db | PostgreSQL 데이터베이스 |
| redis | 캐시 및 메시지 큐 |
| nginx | 리버스 프록시 |
| sandbox | 코드 실행 샌드박스 |
| weaviate/qdrant | 벡터 데이터베이스 (선택) |
주요 환경 변수 (.env)
| 변수 | 설명 |
|---|
SECRET_KEY | 애플리케이션 시크릿 키 |
INIT_PASSWORD | 초기 관리자 비밀번호 |
LOG_LEVEL | 로그 레벨 (DEBUG, INFO, WARNING, ERROR) |
VECTOR_STORE | 벡터 DB 종류 (weaviate, qdrant, milvus 등) |
OPENAI_API_KEY | OpenAI API 키 (모델 사용 시) |
업데이트
cd dify/docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d
라이선스
| 구분 | 내용 |
|---|
| 라이선스 | Apache License 2.0 (Community), 상용 라이선스 (Enterprise) |
| 개인 사용 | 자유롭게 사용 가능 |
| 상업적 사용 | Community 에디션은 자유롭게 사용 가능. 로고/브랜드 제거 시 상업적 라이선스 필요. Enterprise는 SSO, 감사 로그 등 추가 기능 포함 |
설치 점검 목록
docker compose up -d 후 docker compose ps로 컨테이너 상태를 확인했습니다.
- 기본 포트/계정/비밀번호를 문서대로 점검했습니다.
- 운영용으로 사용할 때 기본 비밀번호/시크릿 값을 변경했습니다.
- 장애 분석을 위해
docker compose logs -f 확인 방법을 숙지했습니다.
문제 해결 가이드
- 컨테이너가 실행되지 않으면
docker compose logs -f로 오류 원인을 먼저 확인합니다.
- 포트 충돌이 나면 기존 프로세스를 종료하거나 포트 매핑 값을 변경합니다.
- 이미지 pull 실패 시 네트워크 연결 및 레지스트리 접근 권한을 확인합니다.
- 설정 변경 후 문제가 지속되면
docker compose down 후 다시 up -d로 재기동합니다.
관련 문서
Setup 홈
운영체제별 설치 흐름을 다시 확인합니다.
다음: Open WebUI
다음 설치 단계를 이어서 진행합니다.