Bookstack app
책장, 책, 장, 페이지로 구분되는 컨셉이 흥미로와서 설치를 해봤다. 설치해보고 나니 내 용도와는 잘 맞지는 않는다.
Docker를 사용하여 설치하기
Marius 블로그의 step by step을 따라가면 쉽게 설치할 수 있다.
https://mariushosting.com/how-to-install-bookstack-on-your-synology-nas/
참고로 DSM 6.x인 경우 Step 18의 Reverse Proxy 설정은 Control Panel / Application Portal 페이지의 Reverse Proxy 탭에 있다.
직접 설치하기
Marius Package Center에서 설치할 항목
- MariaDB 10
- /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysql
- bookstack에서 사용할 계정과 DB를 생성한다.
- DB encoding은
utf8mb4_general_ci
- PHP 7.4
- Web Station
- DSM 메뉴에서 Web Station을 실행하고 PHP Settings 탭에서 PHP 7.4 설정을 생성한다.
- Git Server
Terminal을 통해 설치할 항목
sudo su - cd /usr/local/bin sudo curl -s http://getcomposer.org/installer | sudo php74 exit
cd /volume1/ git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch cd BookStack cp .env.example .env php74 /usr/local/bin/composer.phar install --no-dev php74 artisan key:generate
.env 파일을 열어서 APP_URL
과 DB_
로 시작하는 database 관련 설정을 기입한다. DB_PASSWORD
는 특수 문자등이 사용되는 경우 따옴표로 묶어줘야한다.
APP_URL=https://my-nas.synology.me DB_HOST=127.0.0.1 DB_DATABASE=데이터베이스 DB_USERNAME=계정 DB_PASSWORD="비밀번호"
Web Station 설정
웹서버가 PHP 7.4를 사용하도록 설정되었는지 확인 후 웹 서비스 루트를 /volume1/BookStack/public
으로 지정한다. 하위 패스에 설정하는 경우 ln -s /volume1/BookStack/public /volume1/web/bookstack
등과 같이 원하는 패스로 symbolic link를 생성하거나 Subdirectory Setup 문서를 참고하여 설정한다.
웹 브라우저에서 APP_URL
에 기입한 주소를 입력하여 접속이 되는지 확인한다. 처음 설치 후 계정명 admin@admin.com
과 비밀번호 password
를 사용하여 로그인할 수 있다. 로그인 후 바로 Edit Profile 메뉴로 이동하여 로그인 이름과 비밀번호를 변경한다.
다른 설정과 관련된 정보는 BookStack Admin Documentation을 참고하여 설정하면 된다.
한글 폰트 설정하기
https://fonts.google.com/specimen/Nanum+Gothic에서 Regular 400과 Bold 700을 추가한 다음 스크립트를 복사하여 Bookstack의 Settings 화면의 Customization
그룹의 Custom HTML Head Content
상자에 입력한다.
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap" rel="stylesheet"
설정을 저장후 새로 고침하면 웹페이지가 나눔고딕 폰트로 표시될 것이다. 임의 Page를 연 다음 Export PDF를 실행한다.
PDF 내보내기에서 한글 폰트를 적용하기 위한 작업
cd /volume1/BookStack/vendor/dompdf/dompdf php74 /usr/local/bin/composer.phar install --no-dev curl -o load_font.php https://raw.githubusercontent.com/dompdf/utils/master/load_font.php curl -o nanum.zip https://fonts.google.com/download?family=Nanum%20Gothic 7z x nanum.zip rm nanum.zip php74 load_font.php 'nanum gothic' NanumGothic-Regular.ttf NanumGothic-Bold.ttf rm NanumGothic-*.ttf OFL.txt
/volume1/BookStack/storage/fonts
경로에 dompdf_font_family_cache.php
파일을 생성한 다음 다음과 같이 입력한다.
<?php $distFontDir = $rootDir . '/lib/fonts'; return [ 'nanum gothic' => [ 'bold' => $distFontDir . '/NanumGothic-Bold', 'bold_italic' => $distFontDir . '/NanumGothic-Bold', 'italic' => $distFontDir . '/NanumGothic-Regular', 'normal' => $distFontDir . '/NanumGothic-Regular' ], ]; ?>
이제 한글로 작성된 Page를 PDF로 내보낼 수 있지만 이탤릭 속성은 적용되지 않는다. dompdf에서 Regular 또는 Bold로 부터 Italic style을 생성하는 방법을 모르겠다. dompdf에 포함된 영문 adobe font는 regular, italic, bold, 그리고 bold-italic 이 별도로 존재한다.
다음은 한글로 작성한 Page와 PDF로 출력된 화면이다. dompdf 설정에서 italic과 bold-italic 폰트를 regular와 bold로 지정했기 때문에 PDF로 출력되면서 Italic 속성이 적용되지 않는다.
BookStack app을 업데이트 할 때 git pull 후 composer 재설치시 dompdf 내부로 copy 해두었던 글꼴 설정이 모두 사라니 업데이트 후에는 다시 한 번 설정해줘야 한다.