• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

북스택으로 홈서버 자체 위키 플랫폼 구축하기.(docker-compose)

달소 달소 2383

0

7

 

안녕하세요. 달소입니다~

 

이전에 홈서버에서 위키 플랫폼으로 추천드린 북스택을 Docker-compose를 통해 서버에쉽게 설치하는 방법입니다.

북스택에 대한 자세한 정보는 아래 글과 공식홈페이지를 참고해주시면 감사드리겠습니다.

 

북스택이란?

오픈소스 위키 플랫폼으로 위지윅 에디터를 지원하는 위키중 하나입니다.

많이 알려진 미디어위키, 도쿠위키, wiki.js도 있지만 북스택또한 깔끔하게 관리하기 좋은 위키로 꽤나 해외에서 유명합니다.

image.png.jpg

 

 

체험은 아래페이지에서 가능합니다.

 

 

 

설치환경

서버포럼에는 헤놀로 서버를 운영하시는분들도 많지만...

기본적으로 서버는 Ubuntu가 가장 운영하기 편하기 때문에 ㅎ... 우분투 기반과 헤놀기반 두가지버전으로 진행합니다.

 

OS : Ubuntu 22.04 LTS

Docker, Docker-compose

docker image

 

사전준비

북스택의 경우 희한하게도..멀티도메인을 지원하지않기때문에 미리 도메인을 생성해주시는게 혼란을 줄일수있습니다.

뻘짓의초심자님께서 꼼수를 알려주셨지만... 공식적으로 지원하는방법이 아니기때문에 가능하면 실제 운영 도메인으로 셋팅하시는게 편합니다.

나중에 도메인을 변경하게된다면 db에서 url을 한번에 업데이트 시켜주시면됩니다.

 

아무튼 사전준비할것은 

domin과 reverse proxy 정보입니다.

 

도메인의 경우 사용하시는 호스팅 업체에서 A레코드나 Cname으로 생성해주시면됩니다.

저같은 경우 클플로 요렇게

image.png.jpg

 

리버스프록시는 NPM에서 셋팅해줬습니다.

IP는 설치할 서버의 IP 포트는 기본포트 6875입니다

image.png.jpg

 

그럼 클라이언트에서 해당 도메인에 질의를했을때

 

client -> book.dalso.org -> 공유기 -> 내부 NPM -> 북스택 docker로 흐름이이어지게됩니다.

 

 

북스택 컨테이너 생성하기

먼저 서버에 ssh로 접속 후 북스택의 데이터를 저장할 디렉터리와 docker-compose.yml 파일도 생성해줍니다.

 

mkdir -p /data/bookstack
cd /data/bookstack
vi docker-compose.yml

image.png.jpg

그리고 아래 내용에서 몇가지를 수정하신 뒤 복붙해주세요.

수정할부분은 appurl부분과 dbpasswd쪽입니다.

일단은 appurl쪽에 ip로 설치를 진행하신뒤에 실제로 운영하실때에는 도메인을 넣어주시는걸 추천드립니다.

image.png.jpg

---
version: "2"
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=https://bookstack.domain.com
      - DB_HOST=bookstack_db
      - DB_PORT=3306
      - DB_USER=bookstack
      - DB_PASS=dbpassword
      - DB_DATABASE=bookstackapp
    volumes:
      - ./data:/config
    ports:
      - 6875:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
  bookstack_db:
    image: lscr.io/linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=dbpassword
      - TZ=Asia/Seoul
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=dbpassword
    volumes:
      - ./data:/config
    restart: unless-stopped

 

 그리고 docker-compose up -d 로 컨테이너를 실행해줍니다.

이미지가 없으면 아래처럼 이미지를 먼저받습니다.

 

image.png.jpg

image.png.jpg

위와같이 컨테이너가 정상적으로 실행되었으면 앞서 생성했던 도메인로 접속해주세요.

 

그럼 한방에 요렇게 됩니다.

기본 로그인 주소는 

admin@admin.com // password 입니다.

image.png.jpg

 

로그인하면 설정으로가서 반드시 패스워드를 변경해주세요.

 

image.png.jpg

 

기본설정은 크게 어려운게없습니다.

 

책장, 책, 문서 구조로 이뤄져있으며 사실상 목차와 같기때문에 유의하시면 될거같습니다.

 

image.png.jpg

신고공유스크랩
7
1등
참치 2022.12.26. 15:21

설치 시 한가지 팁을 드리자면 environment에서 APP_URL은 반드시 최종 URL로 지정되어야합니다.

 

다시 말씀드리자면 http로 접속했을 때 https로 리디렉션하여 bookstack이 작동하는 설정이라면 결과적으로는

APP_URL=https://bookstack.domain.com가 되어야 합니다.

 

리버스 프록시가 지정되어 있으니까 http로 작동한다고 생각하여 APP_URL=http://bookstack.domain.com 로 지정해버리면 겉으로는 잘 작동하는 것 처럼 보이나, 사진을 업로드 해보면 오류를 뿜뿜합니다.

 

마찬가지로 a.domain.com으로 접속했을 때 b.domain.com으로 리디렉션하여 bookstack이 작동하는 설정이라면

APP_URL=https://b.domain.com가 되어야 합니다.

profile image
달소 글쓴이 2022.12.26. 17:16
참치

오.. 본문에 추가해야겠습니다 ㅎㅎ 깔끔하게 잘정리해주셨네요!

 

2등
예승아빠 2023.04.20. 18:08
안녕하세요. 서버포럼의 좋은 정보로 네이티브 헤놀로지 설치하였습니다. 감사 인사 먼저 드립니다.
(DSM 7.1.1 DS 918+)
북스택 설치 관련하여 문의드립니다.
해당 가이드와 동일하게 설치 진행하였습니다만, 아래와 같은 에러로 접속이 되지 않습니다.
DB 접속 권한문제 인거 같은데...
서버나 이런쪽의 지식이 전혀 없어 따라하기로 구축하다 보니 대처가 되지 않네요.
어떤 부분이 잘못되었을까요? 조언 부탁 드립니다.

>>bookstack log
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: skipped
[migrations] done
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 1000
User GID: 1000
───────────────────────────────────────
using keys found in /config/keys
App Key found - setting variable for seds
Running config - DB_HOST set
Waiting for DB to be available
Illuminate\Database\QueryException
SQLSTATE[HY000] [1045] Access denied for user 'root'@'bookstack.bookstack_default' (using password: YES) (SQL: select * from information_schema.tables where table_schema = bookstackapp and table_name = migrations and table_type = 'BASE TABLE')
at /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:760
756▕ // If an exception occurs when attempting to run a query, we'll format the error
757▕ // message to include the bindings with SQL, which will make this exception a
758▕ // lot more helpful to the developer instead of just the database's errors.
759▕ catch (Exception $e) {
➜ 760▕ throw new QueryException(
761▕ $query, $this->prepareBindings($bindings), $e
762▕ );
763▕ }
764▕ }
+36 vendor frames
37 /app/www/artisan:37
Illuminate\Foundation\Console\Kernel::handle()
[custom-init] No custom files found, skipping...
[ls.io-init] done.

>>bookstack_db log
[migrations] started
[migrations] no migrations found
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 1000
User GID: 1000
───────────────────────────────────────
[custom-init] No custom files found, skipping...
230420 08:33:43 mysqld_safe Logging to '/config/databases/2caab8c12d15.err'.
230420 08:33:43 mysqld_safe Starting mariadbd daemon with databases from /config/databases
[ls.io-init] done.
profile image
달소 글쓴이 2023.04.21. 00:19
예승아빠
SQLSTATE[HY000] [1045] Access denied for user 'root'@'bookstack.bookstack_default' (using password: YES) (SQL: select * from information_schema.tables where table_schema = bookstackapp and table_name = migrations and table_type = 'BASE TABLE')
db관련 커넥션에러로 보입니다.
별도의 게시글에 설정값들을 함꼐 공유해주시면 다른분들도 도움을 드릴 수 있을것같네요
3등
똥쓰똥쓰 2023.06.20. 17:45
사용자 생성 시 smtp설정이 안되면 에러가 나네요....

config > www > .env 파일을 열어 아래 smtp 정보를 넣으니 잘 되네요.....

# Mail system to use
# Can be 'smtp' or 'sendmail'
MAIL_DRIVER=smtp #smtp 경우 입니다.

# Mail sender details
MAIL_FROM_NAME="보낸이 이름"
MAIL_FROM=aaa@bbb.com

# 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 #smtp서버 주소입니다.
MAIL_PORT=465 #smtp서버 포트입니다.
MAIL_USERNAME=아이디
MAIL_PASSWORD=비번
MAIL_ENCRYPTION=tls #tls나 ssl 등 접속하시는 보안 방식 넣어주시면 됩니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
정보 서버포럼 가입인사겸 저의 홈서버를 소개합니다!! 9 툭툭이 10시간 전11:14 328 +7
잡담 가지고 놀기 좋은걸 찾았습니다. 8 주차장 2일 전17:47 455 +1
잡담 (DDClient docker) 변경 될 수 있는 유동 IP / cloudflare 자동 적용하기 5 purndal 24.03.16.15:15 219 +1
3776 정보
image
Razorbacks 4시간 전18:06 49 +1
3775 질문
normal
맛밥 6시간 전15:34 117 0
3774 정보
image
툭툭이 10시간 전11:14 328 +7
3773 질문
normal
유니파트 1일 전22:09 191 0
3772 질문
image
반투검스 1일 전12:46 65 0
3771 질문
normal
니즛 1일 전00:37 329 0
3770 잡담
image
주차장 2일 전17:47 455 +1
3769 질문
image
양미 2일 전11:16 214 0
3768 질문
normal
주차장 2일 전23:44 170 0
3767 질문
image
surno 3일 전00:56 119 0
3766 질문
image
TANG 4일 전19:14 395 0
3765 질문
image
게르노 4일 전23:55 458 0
3764 질문
normal
very 5일 전09:57 209 0
3763 질문
normal
ljr10 5일 전09:11 85 0
3762 질문
normal
very 6일 전18:04 240 0
3761 가이드
normal
minis 6일 전14:20 155 0
3760 잡담
normal
아나나나나다 24.03.21.12:58 371 0
3759 질문
normal
하핳 24.03.20.14:19 205 0
3758 질문
normal
세종나스 24.03.20.14:10 70 0
3757 잡담
image
빨간물약 24.03.20.14:09 283 0