# 환경설정 # SMTP 설정 사용자 생성 및 이후 원활한 사용을 위해서는 반드시 smtp 설정이 필요 합니다. 설치된 Docker와 Mapping된 아래 파일을 열어 ".env" 파일 (config/www/.env)을 수정해 줍니다.
\# Mail system to use \# Can be 'smtp' or 'sendmail' MAIL\_DRIVER=smtp
\# Mail sender details MAIL\_FROM\_NAME="**메일발송자**" MAIL\_FROM=**이메일주소**
\# SMTP mail options \# These settings can be checked using the "Send a Test Email" \# feature found in the "Settings > Maintenance" area of the system. MAIL\_HOST=**smtp.naver.com** MAIL\_PORT=**465** MAIL\_USERNAME=**smtp계정아이디** MAIL\_PASSWORD=**smtp계정비번** MAIL\_ENCRYPTION=**tls**
위 예제는 네이버 smtp 이며 사용자 환경에 맞게 수정해 주시면 됩니다. # 언어설정 기본언어를 한국어로 설정하는 방법입니다. 설치된 Docker와 Mapping된 아래 파일을 열어 ".env" 파일 (config/www/.env)을 추가해 줍니다.\# Sets application language to Korean APP\_LANG=ko APP\_AUTO\_LANG\_PUBLIC=false
# Redis 설정 먼저 Redis가 설치되어 있다고 가정합니다. ([Redis 설치](https://wiki.dhcloud.me/books/redis "Redis") 문서를 참고 하세요) Redis의 Network와 bookstack의 네트워크를 같은 네트워크로 연결해 줍니다. 아래 예제는 "home\_network"라는 곳에 연결해 주었습니다. \["home\_network" 생성\] ```shell docker network create home_network ``` \["home\_network"와 "bookstack" 네트워크 연결\] ```shell docker network connect home_network bookstack ``` 설치된 Docker와 Mapping된 아래 파일을 열어 ".env" 파일 (config/www/.env)을 추가해 줍니다.\# Set both the cache and session to use Redis CACHE\_DRIVER=redis SESSION\_DRIVER=redis \# Example of using a single local Redis server REDIS\_SERVERS=**Redis\_IP**:6379:0
**Redis\_IP**는 Portainer의 Network에서 확인 가능합니다. Redis가 사용 중인 IP 값 또는 **IP가 변동될 시 "Host Name"**을 넣어주시면 됩니다.REDIS\_SERVERS=**redis**:6379:0
[](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/MAaYdmrcm3rpB2z6-redis-hostname.png) # 목록 형태 Grid 형식과 List 형식 두 가지중 아래와 같이 선택 가능합니다. 설치된 Docker와 Mapping된 아래 파일을 열어 ".env" 파일 (config/www/.env)을 추가해 줍니다. **\[그리드 형식\]**APP\_VIEWS\_BOOKS=grid
**\[리스트 형식\]**APP\_VIEWS\_BOOKS=list
# PDF 변환 한글 지원 먼저 Bookstack "설정 > 맞춤 > 헤드 작성"에 아래 코드를 넣어 줍니다. (Google 한글 웹폰트를 사용하기 위함) ```html ``` Portainer를 통해 Bookstack 콘솔로 진입하시던가 아니면 아래와 같이 ssh로 Bookstack 콘솔로 진입 합니다. ```shell sudo docker exec -it bookstack bash ``` Font 디렉토리로 이동 합니다. ```shell cd /usr/share/fonts ``` notosanskr 디렉토리를 생성하고 이동합니다. ```shell mkdir notosanskr cd notosanskr ``` Google "Noto Sans KR" 폰트를 다운받습니다. ```shell curl -o Noto_Sans_KR.zip https://fonts.google.com/download?family=Noto%20Sans%20KR (동작 X) wget https://gqm.trigem.com/Share/font/Noto_Sans_KR.zip ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/Hm4lG5D6fskh4KOb-bookstack-font1.png) 압축을 해제하기 위해 unzip을 설치해 줍니다. ```shell apk add --no-cache unzip ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/PbNyywoav6RE70cq-bookstack-font2.png) 압축을 해제하고 원본 zip파일을 삭제합니다. ```shell unzip Noto_Sans_KR.zip -d /usr/share/fonts/notosanskr/ rm Noto_Sans_KR.zip ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/pUrsxxIr6ZcBVfzr-bookstack-font3.png) 폰트를 설치 합니다. ```shell fc-cache -fv ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/eIjvFTwYI28KDfQv-bookstack-font4.png) 폰트 설치를 확인합니다. ```shell fc-list | grep noto ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/6V8ECtTHsAbkvkyt-bookstack-font5.png) "bookstack/config/www/" 밑에 있는 ".env" 파일을 열어 아래 내용을 추가해 줍니다.EXPORT\_PDF\_COMMAND="weasyprint {input\_html\_path} {output\_pdf\_path}"
"production.ERROR: PDF Export via command failed due to timeout at 15 second(s)"라는 오류가 발생시 아래 timeout 시간을 추가해 줍니다.EXPORT\_PDF\_COMMAND\_TIMEOUT=120
weasyprint 사용을 위해서는 weasyprint apk 설치가 필요 합니다. 기본적으로 docker 콘솔에 접속해 apk를 설치해 주면 되는데 docker image가 업데이트 될 경우 설치된 apk가 삭제 됩니다. ```shell sudo docker exec -it bookstack bash ``` ```shell apk add --no-cache weasyprint ``` docker 컨테이너가 시작될 때 weasyprint apk 설치 유무를 확인 후 없을 시 자동으로 설치를 진행하는 절차를 성명 드립니다. "/volume1/docker/bookstack/config/weasyprint\_apk.sh"에 아래 sh스크립트를 작성 합니다. ```bash #!/bin/sh # Check if weasyprint is installed if ! apk info | grep -q weasyprint; then echo "WeasyPrint is not installed. Installing now..." # Install weasyprint without cache apk add --no-cache weasyprint else echo "WeasyPrint is already installed." fi # Keep the container running tail -f /dev/null ``` docker 콘솔에 접속하여 작성된 sh에 대한 권한을 부여해 줍니다. ```shell sudo docker exec -it bookstack bash ``` ```shell chmod +x /config/weasyprint_apk.sh ``` docker 컨테이터의 cmd에 "/config/weasyprint.sh"를 입력해 주고, "Deploy the container"를 실행 합니다. [](https://wiki.dhcloud.me/uploads/images/gallery/2024-11/Dagfr8dUjXRArPc2-docker-cmd.jpg) \---------------------------------------------------------------------------------------------------- 추가 문자 폰트 설치 (옵션) \---------------------------------------------------------------------------------------------------- **1. 이모지 폰트 설치** 아래 github ([https://github.com/adobe-fonts/emojione-color](https://github.com/adobe-fonts/emojione-color))에서 폰트를 로컬에 다운로드 합니다.[https://github.com/adobe-fonts/emojione-color/archive/refs/heads/master.zip](https://github.com/adobe-fonts/emojione-color/archive/refs/heads/master.zip)
다운로드 받은 zip 파일을 bookstack의 "config" 디렉토리에 업로드 합니다. [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/hOY0rBhqPtnb0Kcr-bookstack-font6.png) Bookstack 콜솔로 진입합니다. ```shell sudo docker exec -it bookstack bash ``` "config"로 이동 합니다. ```shell cd /config/ ``` 업로드한 zip 파일을 폰트 디렉토리로 이동합니다. ``` mv emojione-color-master.zip /usr/share/fonts ``` 폰트 디렉토리로 이동합니다. ``` cd /usr/share/fonts ``` 압축을 해제 합니다. ``` unzip -d emojionecolor emojione-color-master.zip ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/zkDdPLtdwozHiuDO-bookstack-font7.png) 폰트를 설치 합니다. ```shell fc-cache -fv ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/H5PtnJcukZihvB6r-bookstack-font8.png) 설치를 확인 합니다. ``` fc-list | grep emojione ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/AOc4eJotBkqyveCV-bookstack-font9.png) Bookstack 콜솔에 접속 중이라면 아래 명령어로 빠져나갑니다. ```shell exit ``` **2. MS 폰트 설치** Bookstack 콘솔로 진입합니다. ```shell sudo docker exec -it bookstack bash ``` "config"로 이동 합니다. ```shell cd /config/www ``` MS 폰트를 설치해 줍니다. (Option 사항 입니다.) ```shell apk add --no-cache --virtual .build-deps msttcorefonts-installer update-ms-fonts fc-cache -f rm -rf /tmp/* apk del .build-deps ``` 마지막으로 폰트 리스트를 업데이해 해줍니다. ``` fc-cache -fv ``` [](https://wiki.dhcloud.me/uploads/images/gallery/2023-07/7pTWPYXEOGT1qhX1-bookstack-font14.png) Bookstack 컨테이너를 재실행해 줍니다.**\[주의\]** 1. 도커 이미지가 업데이트 되면 위 설정은 모두 **초기화** 됩니다. **Watchtower**를 이용 중이라면 **예외 Lable 처리**를 하셔야 합니다. ([https://wiki.dhcloud.me/books/docker-updater-watchtower/page/94f6d](https://wiki.dhcloud.me/books/docker-updater-watchtower/page/94f6d)) 2. Watchtower를 통한 자동 이미지 업데이트를 사용하신다면 위 본문에 설명명 **"weasyprint\_apk.sh" CMD**를 설정해 주시기 바랍니다.