1장. 설치하기

APP 등록 및 연동

다보리 SSO

다보리 sso는 다보리가 제공하는 다보리 계정으로 로그인할 수 있도록 지원하는 OAuth 2.0 기반의 인증 서비스입니다.

app 등록하기

다보리 api를 사용하려면 app이 필요합니다. app은 다보리 api에 등록한 서비스 정보입니다. 각 app은 다보리 api 요청 허가(Authorization) 여부를 판단하는 데 사용하는 정보인 Client ID와 Client Secret을 갖습니다.

1. 다보리SSO에 서비스 정보를 app으로 등록합니다.

2. 앱등록을 위해서 My App 메뉴를 클릭합니다.

image.png

3. 좌측 메뉴에서 App Manager를 클릭합니다.

image.png

4. 우측 상단의 List 옆 화살표 버튼을 클릭 -> 레코드 추가 버튼을 클릭합니다.

image.png

5. 아래 설명을 참고하여 a~h까지 차례대로 입력합니다.

image.png

 App info and Single-Sign-On

App Type : app의 type을 선택합니다.

App Name : 등록할 app의 name을 작성합니다.

Redirect URI : 등록할 app의 Redirect_URI (account server에서 사용자 인증         이후 callback)

Client ID, Client Secret : app별로 생성되는 고유 key 값입니다.

 API/DB connection info - generate .env.dabory and Dabory Keypair

API Host : 연동할 main api 서버의 host 선택

DB Host : 연동할 db 서버의 host

DB User, DB Name : 연동할 db 서버의 username과 db name

DB Password : 연동할 db server의 password

Key Pair : key pair는 어떤걸 선택해도 무방합니다.

6. save 버튼을 클릭하면 아래와 같이 설정파일이 생성됩니다.

image.png

7. 편집기를 통해 생성된 파일이 열어 내용을 확인합니다.

생성된 변수들은 다음과 같습니다.

MAIN_API_URL=''
MAIN_API_CLIENT_ID=''
MAIN_API_CLIENT_SECRET=''
MAIN_API_BEFORE_BASE64=''

8. FRONTEND에서 config 파일에 위 변수들과 값을 그대로 추가합니다.

그 이후의 과정

* 로그인 버튼 클릭시 백엔드에서 account url의 파라미터 url 생성 (
ex : https://accounts.dabory.com/o/oauth2/authorize?client_id=ysTHfKT4noL-xaJkbc&redirect_uri=https://visionnote.eyerecord.co.kr/wp-login.php&response_type=code&scope=all&state=tUhPBnu5RFOpCPm8lRBMayCSe5FKBRuG) 하여 요청

* app 등록시 app_manager에 등록했던 Redirect_URI에서 callback 함수 구현

* 위 변수들을 통해 MAIN_API_URL에 등록된 dabory main_api server에서  token을 발급(token 발급받는 함수 구현)

* 발급받은 token은 인증이 필요한 모든 request의 header에 포함됩니다.

Owner key 사용하기

Owner key란?

다보리앱은 main app과 guest app이 존재합니다.

owner key 발행시 main app과 guest app은 owner key를 통해 서로 api를 공유할 수 있습니다.

Owner Key 사용 예시

main app : 본점 A

guest app : 지점 B

지점 B는 본점 A의 api를 사용할 수 있습니다. 

1. 지점 B에서 회원리스트 조회시 본점 A의 회원리스트를 조회합니다.

2. 지점 B에서 신규회원 회원가입시 본점 A의 회원리스트로 추가됩니다. (회원리스트를 본점 A의 DB로만 사용할 경우)

3. 본점 A에서 새로운 상품추가시 본점 B의 삼품리스트에 추가됩니다. (상품리스트를 본점 A의 DB로만 사용할 경우)

Owner Key 사용방법

Owner key를 사용하기 위해서는 guest app을 따로 등록하여 Owner key를 발급받아야 합니다.

1. main app을 등록한 dabory 계정으로 로그인합니다.

2. guest app 등록을 위해서 My App 메뉴를 클릭합니다.

image.png

3. 좌측 메뉴에서 App Manager를 클릭합니다.

image.png

4. 등록한 app중 Owner key를 공유할 app을 클릭합니다.

image.png

5. GuestApp 탭을 클릭합니다.

image.png

6. a부터 c까지 입력 및 선택합니다.

image.png

ⓐ Guest App Name : Owner Key의 이름

ⓑ OwnerCode : Owner Key의 제한방식

ⓒ AppType : guest app의 type

7. Download .owner-key 버튼을 클릭하여 Owner key를 download 합니다.

8. MainApp 탭을 누른뒤 save 버튼을눌러 저장합니다. 

9. 생성된 .owner-key를 확인하고 frontend 소스코드를 open합니다.

10. .env 파일에 MAIN_API_OWENER_KEY 변수를 추가하고 생성된 owner key의 값을 넣어줍니다.

Window 사용자의 경우

설치 방법에 앞서 윈도우 환경에서 작업하는 경우 주의사항에 대해 말씀드립니다.

1. 공통사항

1. 현재 설정 확인하기

Windows 환경에서 Git의 기본 설정인 core.autocrlftrue로 설정되어 있습니다.

이 설정이 true일 경우, Git 서버에서 소스를 받아올 때 CRLF 형식으로 자동 변환됩니다.

아래 명령어를 입력하여 core.autocrlf 설정을 확인하세요:

git config --get core.autocrlf

2. 설정 변경하기

만약 core.autocrlftrue로 설정되어 있다면, 다음 명령어를 통해 설정을 변경합니다:

git config --global core.autocrlf input

이 설정은 Git 서버에 Push할 때 LF를 CRLF로 자동 변환하지 않도록 합니다.

3. Push 전 설정 확인

Push하기 전에 반드시 위 설정을 확인하고 진행해야 합니다.

dabory git repository에 push할 때 window 환경에서는 git 설정에 core.autocrlf의 기본값이 true로 설정되어 있습니다.

만약 true로 되어 있다면 git server에서 소스를 받아왔을 때 CRLF로 자동 변환됐을 겁니다.

git config --get core.autocrlf

위 명령어를 통해 설정을 확인하고 core.autocrlf가 true로 설정되어 있다면 다음 명령어를 통해 설정을 변경해줍니다.

git config --global core.autocrlf input

위 설정은 git server에 push할때 LF -> CRLF로 자동변환하지 않도록 해줍니다.

push 하기 전 반드시 위 설정을 확인하고 push 해야 합니다.

env.dabory의 이해

env.dabory

env.dabory는 Laravel의 설정파일인 env 파일을 확장하여 API 서버와 db 연동을 위해 추가적으로 사용되는 연동용 설

정파일입니다.

 2. 서버와 db 연동과정

Frontend에서 백엔드 서버에 API를 요청할 때 env.dabory 파일을 참조합니다. 여기에서 api url은 요청을 보낼 API 서버를 결정하며, 특정 API를 호출하기 위해서는 해당 API 서버에서 발급한 GateToken이 필요합니다.

GateToken을 발급받기 위해서는 ClientId, ClientSecret, BeforeBase64의 값이 다보리 SSO에 등록된 DB 접속 정보와 일치해야 합니다. 즉, DB와의 연동이 인증되지 않으면 GateToken을 발급받을 수 없습니다. 이러한 변수들을 활용하여 지정된 API 서버에 요청하면, 해당 서버로부터 GateToken을 반환받아 이후 API 호출에 사용할 수 있습니다.

이처럼 GateToken을 중심으로 한 인증 절차를 통해 다보리 앱에서 main app과  guest app 간의 보안성을 유지하면서도 원활한 데이터 연동과 API 호출이 가능합니다.

 3. env.dabory의 주요 변수 설명
MAIN_API_URL :  연동할 API 서버의 URL과 포트 번호.
MAIN_API_CLIENT_ID : app별 고유한 API 클라이언트 ID.
MAIN_API_CLIENT_SECRET : app별 고유한 API 클라이언트 seceret키.
MAIN_API_BEFORE_BASE64 : app별 고유한 API 키 쌍을 Base64로 인코딩한 값.

다보리 DB API 와 DB 연결 방법

해당사항은 먼저 2장 Restfull api의 구성 1번 메뉴얼을 숙지하시고 확인해주시기 바랍니다.

2장 1번 메뉴얼에서 언급한바와 같이 clientId와 beforebase64가 담긴 json type의 데이터를 통해 API 서버를 호출하게되면 api 서버에서 response로 gate token을 생성하여 반환합니다.

이 gate token은 .env.dabory 파일 생성시 입력된 db 접속정보가 암호화되어 있기 때문에 .env.dabory 파일에 설정이 되어 있고 App Manger에 등록되어 있다면 반환받은 gate-token을 통해 연동된 db api에 연결이 가능합니다.

프론트엔드 설치 가이드 (Docker)

아래 단계에 따라 DC 프론트엔드 설치를 진행하세요:

1. DC 프론트엔드 설치본(Docker)을 다운로드하려면 제공된 다운로드 링크를 클릭하여 dc-demo-frontend-docker.tar.gz 파일을 다운로드합니다.

image.png

2. 다운로드가 완료되면 dc-demo-frontend-docker.tar.gz 파일을 DC를 설치할 디렉토리로 이동합니다. 예를 들어, 설치할 디렉토리를 /path/to/install로 정했다면, 다음 명령어를 사용해 파일을 이동할 수 있습니다.

mv ~/Downloads/dc-demo-frontend-docker.tar.gz /path/to/install

3.  설치 디렉토리로 이동한 후, tar 명령어를 사용해 압축을 해제합니다:

cd /path/to/install
tar -xzvf dc-demo-frontend-docker.tar.gz

압축 해제가 완료되면 demo 디렉토리가 생성됩니다.

image.png

4. 생성된 demo 디렉토리로 이동합니다:

cd demo

5. demo 디렉토리에는 다음과 같은 파일과 디렉토리가 포함되어 있습니다:

dbrerp : DC의 표준 ERP 소스 디렉토리입니다. ERP와 관련된 코드 및 리소스가 포함되어 있습니다.

docker-compose.yml : DC의 Docker 컨테이너 설정 파일입니다. 이 파일에는 컨테이너 구성, 포트 매핑, 볼륨 설정 등이 정의되어 있습니다.

php-docker : PHP 버전별 설정 및 Dockerfile이 포함된 디렉토리입니다. 프로젝트에서 사용할 PHP 환경을 설정하는 데 사용됩니다.

image.png

5. 설치가 완료되면 docker-compose.yml 파일을 사용해 Docker 컨테이너를 실행하여 DC 프론트엔드를 배포합니다. 실행 명령어는 다음과 같습니다:

docker-compose up -d

6. Docker 컨테이너가 실행되면, docker-compose.yml에 설정된 포트로 웹 브라우저를 통해 접속할 수 있습니다. 기본적으로 아래 주소를 사용합니다:

이제 DC 프론트엔드가 정상적으로 실행되며, 사용자 페이지와 관리자 페이지를 사용할 수 있습니다.

웹서버/웹호스팅에 설치하는 방법

설치전 준비사항

0. dabory git server에 사용자를 등록합니다. (다보리 git server 바로가기)

image.png

1. .env  파일

2. .env.dabory 파일

3. php와 mariadb의 설치 

참고자료


웹서버/웹호스팅을 통한 설치방법

1. ssh을 통해 웹서버에 접근합니다.

2. 설치할 디렉토리를 생성하고 해당 디렉토리로 이동합니다.

3. 예제에서는 eyemsg 라는 테마폴더를 설치할 것이기 때문에 설치 경로에 아래와 같이 디렉토리를 구성하겠습니다.

각 디렉토리에 대한 설명은 아래에서 진행하겠습니다

4. 다보리 git 서버에서 mybin 레포지토리로 접속합니다. (mybin 바로가기)

5. HTTP url을 복사합니다.

image.png

6. 설치경로에서 git clone을 통해 mybin을 받아옵니다.

git clone http://git.daboryhost.com:10880/dabory/mybin

이제 다음과 같이 디렉토리들이 구성되었습니다.

image.png

5. eyemsg.daboryhost.com 디렉토리로 이동합니다.

cd eyemsg.daboryhost.com


6. 다보리 깃서버에 dbrerp 레포지토리로 접속합니다.

7. HTTP url을 복사해줍니다.

image.png

8. git clone 명령어를 통해 dbrerp 소스를 가져옵니다.

git clone http://git.daboryhost.com:10880/dabory/dbrerp.git

9. 아래 명령어를 통해 dbrerp의 하위 경로에 있는 모든 파일들을 eyemsg.daboryhost.com의 하위 경로로 이동시킵니다

mv dbrerp/* .


10. 사전에 준비해두었던 .env 파일과 .env.dabory 파일을 생성한뒤 내용을 붙여넣어줍니다.

이 부분이 숙지가 안되었다면 위 참고자료를 통해 env와 env.dabory 파일을 세팅해주세요.

vi .env
vi .env.dabory

11. dabory 디렉토리로 이동합니다.

cd dabory

12. 아래 링크를 클릭하여 theme 폴더를 설치한뒤 13번부터 진행해주시기 바랍니다.

테마폴더 설치하기

13. 다보리 git 서버의 vendor 레포지토리로 접속합니다.

14. git clone을 통해 vendor 소스를 가져옵니다.

git cloen http://git.daboryhost.com:10880/dabory/vendor.git

15. storage 관련 Update 예정

storage 누릭시 에러.png

16. eyemsg.daboryhost.com으로 접근하면 다음과 같이 설치가 완료되었습니다.

image.png


 참고자료

더미테마(Dummy-Theme)설치 방법

.env 항목에서 DBR_THEME 변수에 erponly를 넣어줍니다. erponly는 테마는 /pro로 들어오는 경로로 들어오는 모든 트래픽을 user page로 redirection시켜주는 테마입니다.

/dabory/themes 디렉토리로 이동한뒤 git clone erponly url 명령어를 통해 theme 소스코드를 가져옵니다. 반드시 변수의 이름과 테마 폴더 이름을 변수 값으로 동기화해야 합니다. 디렉토리 관련해서는composer 디렉토리에 autoload_psr4 파일에 각 디렉토리들을 namespace로 구성하여 관리되고 있으니 참고하시기 바랍니다.

운영테마(Production-Theme)설치방법

.env파일에서 ERP_THEME, PRO_THEME 변수를 찾아 확인합니다. 변수의 이름과 테마 폴더 이름을 변수 값으로 동기화해야 합니다. /themes/pro 폴더 임폴트 (수정 예정)

Dabory Linux 서버 SSH를 통한 로그인 방법

사전준비

1. .ussh 파일 (ssh를 통해 편리하게 접근하기 위한 셸 스크립트 파일입니다.) 

2. dbr_list.txt 파일 (개발자가 직접 생성합니다.)

2-1. 아래 내용을 입력합니다. 

#서버코드                           #IP                            #설치지역
dbr02=13.124.2.254           #erics-and-kloxo

* dbr02서버는 예시입니다. 서버가 다를 수 있기 때문에 미리 확인하시고 진행하시기 바랍니다.

2-2. ussh 파일이 있는 디렉토리에서 dbr_list.txt 라는 이름으로 텍스트 파일을 생성하고 2-1의 내용을 붙여넣어줍니다.


ussh를 통한 서버 접근방법

1. ussh 파일이 준비되었다면 해당위치로 이동합니다.

2. 아래 명령어를 통해 서버에 접근합니다.

./ussh dbr02 eyemsg
# ./ussh 서버이름 계정명

xampp를 통한 설치방법

설치전 준비사항

1. xampp 링크를 통해 xampp를 다운로드합니다.

2. More Downloads 클릭

image.png

3. 자신의 OS에 맞는 버전을 선택합니다. 예제는 window 버전으로 설치하겠습니다.

image.png

4. 7.3 ~8.0 까지의 php 버전을 호환하는 버전을 설치합니다. 예제는 7.3.33버전을 설치하겠습니다.

image.png

5. 포터블 버전이 아닌 일반 버전의 installer.exe를 클릭하여 설치합니다.

image.png

6. 다운로드된 설치파일을 클릭하여 설치를 진행합니다.

image.png

7. env/env.dabory 파일 세팅


xampp를 통한 설치방법

window 기준으로 설치를 진행한 예제입니다.

1. XAMPP Control Pannel을 관리자권한으로 실행합니다.

2. xampp는 기본 80포트 / 443 포트로 실행됩니다. 포트 충돌이 일어난다면 httpd.conf / httpd-ssl.conf / Config에서 포트를 변경해줍니다.

image.png

image.png

image.png

3. Apache 서버를 실행합니다. 만약 실행이 안된다면 아래와 같이 화살표버튼을 클릭하여 Apache를 재설치합니다.

image.png

4. 서버가 실행되었다면 터미널을 열어줍니다.

image.png5. 

5. 아래 명령어를 통해  다보리 컴포터블의 dbrerp를 받아옵니다.

cd htdocs
git clone http://git.daboryhost.com:10880/dabory/dbrerp.git

6. 아래 명령어를 통해 필요한 파일들을 받아옵니다.

# vendor
cd dbrerp
git clone http://git.daboryhost.com:10880/dabory/vendor.git

# erponly
cd dabory
mkdir themes
git clone http://git.daboryhost.com:10880/dbrerp-themes/erponly.git

7. 이제 localhost:port번호로 접근합니다.

8. 만약 특정 에러가 발생한다면 

- env 혹은 env.dabory 파일 확인

- vendor 혹은 storage 파일 확인

- xampp apache 서버의 설정파일 확인 (public 경로설정)

- 테마폴더의 존재 및 위치 확인

위 사항들을 체크해보시기 바랍니다.

[window] WSL 사용시 주의사항

준비사항

git clone시 주의사항

 

wsl에서 git clone 혹은 git push 명령어를 실행했을 경우 파일권한 issue가 있습니다.

이경우 다음과 같은 방법으로 설정을 추가해주시기 바랍니다.

 

1. wsl 배포판의 루트경로에서 아래 명령어로 wsl.conf 파일로 진입합니다.

sudo nano /etc/wsl.conf

2. 아래 설정을 추가합니다.

[automount]

options = "metadata"

3. 아래 명령어로 wsl을 종료후 restart 합니다.

wsl --shoutdown 

4. git clone을 통해 원격저장소의 소스를 가져옵니다.

5. 파일권한을 확인합니다.

ls -l

일반적으로 wsl을 이용하여 git clone 혹은 git push시 모든 디렉토리 및 파일 premission이 777로 변경됩니다.

git clone후 파일권한이 변경되는지 확실히 체크후 변경되지 않을 경우 git clone / push 명령어를 사용해주시기 바랍니다.