ERPNext Docker 설치 가이드: 오픈소스 ERP 시스템 자체 호스팅




기업 자원 관리(ERP) 시스템은 비즈니스 운영의 핵심입니다. ERPNext는 회계, 재고, CRM, HR, 제조, 프로젝트 관리까지 모든 비즈니스 기능을 통합한 완전한 오픈소스 ERP 솔루션입니다. Frappe Framework 기반으로 구축되어 확장성이 뛰어나며, SAP나 Oracle ERP의 강력한 대안으로 전 세계 수백만 사용자가 활용하고 있습니다.

ERPNext 주요 특징

ERPNext는 단순한 ERP를 넘어 비즈니스 운영 전체를 아우르는 통합 플랫폼입니다.

통합 모듈 구성

  • 회계 및 재무: 복식부기, 다중 통화, 자동 분개, 재무제표 생성
  • 재고 관리: 창고별 재고 추적, 배치/시리얼 번호 관리, 바코드 지원
  • 영업 및 CRM: 리드 관리, 기회 추적, 견적서, 판매 주문 자동화
  • 구매 관리: 공급업체 관리, 구매 요청, 발주서, 입고 처리
  • 제조: BOM 관리, 작업 지시, 생산 계획, 품질 검사
  • HR 및 급여: 직원 관리, 근태, 휴가, 급여 계산, 경비 정산
  • 프로젝트 관리: 작업 추적, 타임시트, 간트 차트
  • 웹사이트/E-commerce: 내장 웹사이트 빌더, 온라인 상점

기술적 장점

  • Python/JavaScript 기반 Frappe Framework
  • MariaDB/PostgreSQL 데이터베이스
  • REST API 완벽 지원
  • 커스텀 앱 개발 가능
  • 모바일 반응형 UI
  • 100+ 국가 현지화 지원

사전 요구 사항

  • Docker 및 Docker Compose 설치
  • 최소 4GB RAM (권장 8GB 이상)
  • 20GB 이상 저장 공간
  • 도메인 (프로덕션 환경)

Docker Compose로 ERPNext 설치

기본 설치 (개발/테스트용)

공식 Frappe Docker 저장소를 활용한 빠른 설치입니다:

# docker-compose.yml
services:
  backend:
    image: frappe/erpnext:latest
    restart: unless-stopped
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    depends_on:
      - db
      - redis-cache
      - redis-queue

  db:
    image: mariadb:10.6
    restart: unless-stopped
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --skip-character-set-client-handshake
      - --skip-innodb-read-only-compressed
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-admin}
      MYSQL_DATABASE: erpnext
      MYSQL_USER: erpnext
      MYSQL_PASSWORD: ${DB_PASSWORD:-erpnext}
    volumes:
      - db-data:/var/lib/mysql

  redis-cache:
    image: redis:alpine
    restart: unless-stopped
    volumes:
      - redis-cache-data:/data

  redis-queue:
    image: redis:alpine
    restart: unless-stopped
    volumes:
      - redis-queue-data:/data

  frontend:
    image: frappe/erpnext:latest
    restart: unless-stopped
    command:
      - nginx-entrypoint.sh
    environment:
      BACKEND: backend:8000
      SOCKETIO: websocket:9000
      FRAPPE_SITE_NAME_HEADER: ${SITE_NAME:-erpnext.localhost}
    volumes:
      - sites:/home/frappe/frappe-bench/sites
    ports:
      - "8080:8080"
    depends_on:
      - backend
      - websocket

  websocket:
    image: frappe/erpnext:latest
    restart: unless-stopped
    command:
      - node
      - /home/frappe/frappe-bench/apps/frappe/socketio.js
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    depends_on:
      - backend

  queue-short:
    image: frappe/erpnext:latest
    restart: unless-stopped
    command: bench worker --queue short
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    depends_on:
      - backend

  queue-long:
    image: frappe/erpnext:latest
    restart: unless-stopped
    command: bench worker --queue long
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    depends_on:
      - backend

  scheduler:
    image: frappe/erpnext:latest
    restart: unless-stopped
    command: bench schedule
    volumes:
      - sites:/home/frappe/frappe-bench/sites
      - logs:/home/frappe/frappe-bench/logs
    depends_on:
      - backend

volumes:
  db-data:
  redis-cache-data:
  redis-queue-data:
  sites:
  logs:

환경 변수 설정

# .env
DB_ROOT_PASSWORD=your_secure_root_password
DB_PASSWORD=your_secure_db_password
SITE_NAME=erp.yourdomain.com

설치 및 실행

# 디렉토리 생성 및 이동
mkdir erpnext && cd erpnext

# docker-compose.yml 및 .env 파일 생성
# (위 내용 붙여넣기)

# 컨테이너 실행
docker compose up -d

# 사이트 생성 (첫 실행 시)
docker compose exec backend bench new-site erp.yourdomain.com \
  --mariadb-root-password your_secure_root_password \
  --admin-password admin123

# ERPNext 앱 설치
docker compose exec backend bench --site erp.yourdomain.com install-app erpnext

# 로그 확인
docker compose logs -f

간편 설치 (pwd.yml 활용)

개발/테스트 환경을 위한 더 간단한 방법:

# 공식 저장소 클론
git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker

# pwd.yml로 빠른 시작
docker compose -f pwd.yml up -d

# 사이트 생성 완료 대기 (약 2-3분)
# 브라우저에서 http://localhost:8080 접속
# 기본 로그인: Administrator / admin

추가 앱 설치

ERPNext는 HRMS, Payments 등 추가 앱을 설치할 수 있습니다:

# HRMS (인사관리) 앱 다운로드 및 설치
docker compose exec backend bench get-app hrms
docker compose exec backend bench --site erp.yourdomain.com install-app hrms

# Payments 앱 설치
docker compose exec backend bench get-app payments
docker compose exec backend bench --site erp.yourdomain.com install-app payments

프로덕션 환경 설정

Traefik 리버스 프록시 연동

# docker-compose.prod.yml (frontend 서비스 수정)
services:
  frontend:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.erpnext.rule=Host(`erp.yourdomain.com`)"
      - "traefik.http.routers.erpnext.entrypoints=websecure"
      - "traefik.http.routers.erpnext.tls.certresolver=letsencrypt"
      - "traefik.http.services.erpnext.loadbalancer.server.port=8080"
    networks:
      - traefik-public
      - default

networks:
  traefik-public:
    external: true

백업 설정

# 데이터베이스 백업
docker compose exec backend bench --site erp.yourdomain.com backup

# 백업 파일 위치
# sites/erp.yourdomain.com/private/backups/

관리 명령어

# 사이트 마이그레이션 (업데이트 후)
docker compose exec backend bench --site erp.yourdomain.com migrate

# 캐시 클리어
docker compose exec backend bench --site erp.yourdomain.com clear-cache

# 스케줄러 상태 확인
docker compose exec backend bench --site erp.yourdomain.com show-pending-jobs

# 사용자 비밀번호 재설정
docker compose exec backend bench --site erp.yourdomain.com set-admin-password newpassword

# 컨테이너 재시작
docker compose restart

초기 설정 가이드

  1. 회사 정보 설정: Setup Wizard에서 회사명, 국가, 통화, 회계연도 설정
  2. 사용자 추가: HR 모듈에서 직원 등록 및 시스템 사용자 생성
  3. 계정과목 설정: 회계 모듈에서 계정과목 체계 커스터마이징
  4. 품목 마스터: 재고 모듈에서 판매/구매 품목 등록
  5. 고객/공급업체: CRM에서 거래처 정보 등록

마무리

ERPNext는 SAP, Oracle ERP와 견줄 수 있는 기능을 제공하면서도 완전 무료 오픈소스입니다. Docker를 통해 쉽게 배포하고, 비즈니스 성장에 따라 확장할 수 있습니다. 제조업, 유통업, 서비스업 등 다양한 산업에 맞춤 설정이 가능하며, 활발한 커뮤니티가 지속적인 개선을 이끌고 있습니다.


참고 링크

  • 공식 사이트: https://erpnext.com
  • GitHub: https://github.com/frappe/erpnext
  • Docker 저장소: https://github.com/frappe/frappe_docker
  • 문서: https://docs.erpnext.com



댓글 남기기