Skip to main content

Bản Dev

🇻🇳 (vi)

"Gcalls"

Hướng dẫn này được viết cho Ubuntu 20.04 LTS (Focal Fossa)

Yêu cầu:

  • RAM 8GB trở lên
  • CPU 6 Core trở lên
  • Dung lượng 2GB trở lên

Chuẩn bị:

(*) Có thể không cần code editor hay IDE => thao tác 100% trên giao diện Ubuntu và Ubuntu Terminal hoặc chỉ Ubuntu Terminal

I. Cài đặt phần mềm và tool cần thiết (bỏ qua bước này nếu đã cài mọi thứ trong danh sách chuẩn bị ở bước trên)

Thao tác qua Terminal của Ubuntu Trước tiên

```
sudo apt update
```

1. git

sudo apt install git-all
  • Kiểm tra git:
    git --version

2. curl và wget

sudo apt update
  • curl
    sudo apt install curl
  • wget
    sudo apt install software-properties-common apt-transport-https wget

3. nvm

Cài nvm bằng curl

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Hoặc cài nvm bằng wget

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Thêm vào bashrc

source ~/.bashrc
  • Kiểm tra nvm:
    nvm -v

4. node và npm

Cài đặt node v16

nvm install v16
  • Kiểm tra node và npm:
    node -v
    npm -v

5. VS Code (tùy chọn)

5.1 Cập nhật index package và cài dependencies cần thiết (software-properties-common apt-transport-https và wget):

sudo apt update
sudo apt install software-properties-common apt-transport-https wget

5.2 Nhập GPG key từ Microsoft:

wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -

5.3 Enable repository của VS Code:

sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"

5.4 Khi repo đã được enabled, tiến hành cài đặt VS Code:

sudo apt install code
  • Kiểm tra VS Code:
    code -v

6. pm2

  • Cài đặt pm2:
    npm install pm2@latest -g
  • Kiểm tra pm2:
    pm2 --version

7. Docker

  • Cập nhật package:
    sudo apt-get update
    sudo apt-get install
  • Thêm keyring và sourcelist:
    sudo mkdir -p /etc/apt/keyrings
    cd /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
  • Cài đặt Docker:
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • Kiểm tra Docker:
    docker -v

8. docker-compose

  • Cài đặt dependency cần thiết (curl):
    sudo apt install curl
  • Cài đặt docker-compose:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Cấp quyền executable cho docker-compose:
    sudo chmod +x /usr/local/bin/docker-compose
  • Kiểm tra docker-compose:
    docker-compose -v

II. Cài đặt source code

Có thể thao tác qua 1 trong các hướng sau:

  • Terminal
  • Giao diện và Terminal
  • Giao diện, Terminal và VS Code Terminal

Hướng dẫn dưới đây sẽ thao tác qua Ubuntu Terminal và VS Code Terminal

Mở terminal (Crl+Alt+T)

1. Chọn 1 thư mục để chứa source code (ví dụ: gcalls-community-version)

- Nếu có sử dụng VS Code:

  • Mở thư mục trong VS Code
    code .
  • Mở 1 Terminal mới trên VS Code

2. Tải repo về:

  • Initialize:
    git init
    git clone https://gitlab.com/gcalls-opensource/gcalls-community-version
  • Truy cập folder:
    cd gcalls-community-version
  • Cập nhật thông tin và kiểm tra branch:
    git fetch
    git branch
  • Chuyển branch:
    git checkout Development
  • Kiểm tra branch:
    git branch
  • Chuyển sang branch mới:
    git checkout -b <branch của bạn>

4. Cài đặt Gcalls Plus Webphone:

  • Tại root / của gcalls-community-version, truy cập sh/non-docker
    cd sh/non-docker
  • Lần lượt chạy script cài đặt project
    • Cài đặt MongoDB
      sh installMongo.sh
    • Cài đặt Redis
      sh installRedis.sh
    • Cài đặt Postgres
      sh install Postgres.sh
    • Cài đặt CouchDB
      sh installCouchDB.sh
    • Cài đặt Ngrok
      sh instalNgrok.sh
    • Cài đặt Gcalls Plus Webphone
      sh runallsh.sh
  • Lần lượt các service của Gcalls Plus Webphone sẽ chạy sau khi được cài
  • Lần sau khi cần khởi động Gcalls Plus Webphone, chạy script sau:
    sh runsh.sh
  • Kiểm tra Gcalls Plus Webphone
    • Kiểm tra tình trạng của các service
      pm2 status
    • Kiểm tra log của từng service
      pm2 log <số thứ tự của service xem theo pm2 status>

5. Cài đặt Keycloak (Quản lý tài khoản và xác thực) bản Docker và Logstash (Quản lý loggging)

Thoát ra khỏi non-docker và truy cập log-service/docker

cd ../../log-service/docker
  • Khởi tạo docker cho Logstash
    ```
    docker-compose up -f logstash
    ```
    Thoát ra khỏi docker và truy cập iam-service
cd ../../iam-service
  • Khởi tạo docker cho Keycloak và Postgres
    docker-compose up -d
    UsernamePassword
    Postgreskeycloakkeycloak@2022
    Keycloakadmingadmin@2022
  • Kiểm tra Keycloak và Postgres:
    docker logs -f keycloak --tail 1000
    Nếu thấy dòng chữ Http management interface listening on http://127.0.0.1:9990/management hoặc Admin console listening on http://127.0.0.1:9990 ở dưới cùng nghĩa là chạy thành công. Bấm Crl + C
    docker exec -it iam-service_postgres psql -U keycloak
    Nếu vào được nghĩa là thành công. Thoát ra khỏi container
    exit
    docker logs logstash -f
    Logstash đã được khởi tạo thành công nếu thông điệp "Successfully started Logstash API endpoint {:port=>9600}" hiện ra

6. Database

Thoát khỏi iam-service và truy cập non-docker

cd ../sh/non-docker

6.1 Cài đặt

  • Tại gcalls-community-version/sh/non-docker, chạy các script sau
    • Cài đặt MongoDB
      sh installMongo.sh
    • Cài đặt Redis
      ```
      sh installRedis.sh
      ```
    • Cài đặt CouchDB
      sh installCouchDB.sh
  • Kiểm tra Database
    • MongoDB
      sudo service mongod status
    • Redis
      ```
      sudo service redis status
      ```
    • CouchDB
      sudo service couchdb status

6.2 Backup Database (Tùy chọn)

6.2.1 MongoDB

Chỉ thao tác qua giao diện và Ubuntu Terminal:

  • Tạo 1 thư mục mới (ví dụ gcalls-example-db):
    mkdir gcalls-example-db
  • Truy cập thư mục:
    cd gcalls-example-db
  • Tải dữ liệu db về:
    wget -O  gcalls-example-db.zip --no-check-certificate "https://gstatics.sgp1.digitaloceanspaces.com/contributer-setup-data/myMongoDB.zip"
  • Kiểm tra file tải về:
    ls
  • Unzip file:
    unzip gcalls-example-db.zip
    • Nếu chưa có unzip thì cài đặt unzip
      sudo apt install unzip
  • Nhập dữ liệu vào MongoDB:
    mongorestore --db <database name> myMongoDB/<đường dẫn tới thư mục chứa db cần nhập>
    mongorestore --db access-service myMongoDB/access-service
    mongorestore --db customer-service myMongoDB/customer-service
    mongorestore --db integration-manager myMongoDB/integration-manager
    mongorestore --db record-service myMongoDB/record-service
    mongorestore --db third-party-service myMongoDB/third-party-service
    mongorestore --db user-service myMongoDB/user-service
6.2.2 Postgres

Chỉ thao tác qua giao diện và Ubuntu Terminal. Lưu ý dữ liệu của database keycloak trong Postgres phải hoàn toàn trống mới có thể nhập đầy đủ được nhưng khi khởi tạo bằng docker, database keycloak đã được thêm nhiều dữ liệu config sẵn.

  • Tạm dừng keycloak lại:
    docker stop keycloak
  • Truy cập vào docker của Postgres:
    docker exec -it iam-service_postgres_1 sh
  • Tạo 1 user mới:
    createuser -U keycloak --interactive
  • Điền tên và chọn y cho superuser:
    Enter name of role to add: postgres
    Shall the new role be a superuser? (y/n) y
  • Truy cập vào database mới bằng user mới:
    psql -U postgres
  • Xóa database keycloak
    drop database keycloak
  • Tạo lại database keycloak
    create database keycloak
  • Thoát ra khỏi psql và docker
    exit
    \q
  • Tạo 1 thư mục mới và truy cập vào nó:
    mkdir postgres
    cd postgres
  • Tải dữ liệu về
    wget -O dumpfile "https://gstatics.sgp1.digitaloceanspaces.com/contributer-setup-data/postgresBackup"
  • Unzip file:
    unzip dumpfile.tar.gz
  • Nhập vào Postgres
    cat dumpfile | docker exec -i iam-service_postgres_1 psql -U keycloak

III. Sử dụng Gcalls Plus Webphone

  • Truy cập vào localhost:4004 (frontend của Gcalls Plus Webphone) để sử dụng Gcalls Plus Webphone
  • Truy cập localhost:8080 (frontend của Keycloak) để quản lý tài khoản/ credential ở các callcenter | username | password | |----------|-------------| | admin | gadmin@2022 |

1. Nếu chưa nhập dữ liệu vào MongoDB và Postgres

2. Nếu đã nhập dữ liệu vào database

  • Dùng tài khoản dưới để đăng nhập: | email | password | callcenter | |----------|-------------|-------------| |gcalls.test@gmail.com| 12345678 | gcallstest |