−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS

BookStack용 VPS: 셀프 호스팅 팀 위키

VPS에서 BookStack을 팀 문서 위키로 운영하세요. MariaDB와 Docker 설치, 내 도메인의 HTTPS, 첫 로그인, 백업, 실제로 필요한 사양.

팀 문서는 보통 둘 중 하나로 죽습니다. 아무도 검색할 수 없는 채팅 스레드에 흩어지거나, 너무 불편해서 아무도 갱신하지 않는 위키에 묻히거나. BookStack은 사람들이 실제로 쓰는 드문 셀프 호스팅 위키입니다. 내용은 책장, 책, 장, 페이지에 정리되고, 누구나 교육 없이 이해하는 구조입니다. 게다가 서버도 거의 필요 없습니다.

왜 BookStack인가

모든 일에 맞는 도구는 아닙니다. 코드와 함께 바뀌어야 하는 개발 문서는 위키가 아니라 저장소에 둬야 합니다.

필요한 사양

BookStack은 가볍습니다. 대부분의 팀에는 Micro-IP — 1 vCPU, 2 GB, 월 $10 — 로 충분하고도 남습니다. 동료들이 내 도메인에 HTTPS로 접속할 수 있게 해 주는 게 전용 IP입니다. 디스크는 페이지 수가 아니라 업로드한 스크린숏과 PDF 때문에 늘어납니다.

Docker Compose로 설치하기

널리 쓰이는 LinuxServer.io 이미지를 사용합니다. 먼저 애플리케이션 키를 생성하세요.

docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey

출력된 base64:... 값을 복사한 뒤 docker-compose.yml을 만드세요.

services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=https://wiki.example.com
      - APP_KEY=base64:paste-your-key-here
      - DB_HOST=db
      - DB_PORT=3306
      - DB_DATABASE=bookstack
      - DB_USERNAME=bookstack
      - DB_PASSWORD=change-me
    volumes:
      - ./bookstack:/config
    ports:
      - 127.0.0.1:6875:80
    depends_on:
      - db
    restart: unless-stopped
  db:
    image: lscr.io/linuxserver/mariadb:latest
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=change-me-too
      - MYSQL_DATABASE=bookstack
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=change-me
    volumes:
      - ./db:/config
    restart: unless-stopped
docker compose up -d
docker compose logs -f bookstack

APP_URL은 https://까지 포함해 사람들이 쓸 주소와 일치해야 합니다. 틀리면 이미지와 링크가 이상하게 깨집니다. Compose에 대해서는 스택 배포 가이드에 더 있습니다.

HTTPS와 첫 로그인

서브도메인을 서버로 연결하고(방법), 127.0.0.1:6875 앞에 nginx를 두고, certbot으로 인증서를 추가하세요. 리버스 프록시 가이드가 단계별로 안내합니다.

그다음 기본 계정 admin@admin.com / password로 로그인하세요. 링크를 공유하기 전에 이메일과 비밀번호를 바로 바꾸세요. 나머지 사람들은 각자 계정을 받거나 ID 공급자를 통해 로그인합니다.

백업

지켜야 할 건 두 가지, 데이터베이스와 ./bookstack 안의 업로드입니다. 이런 야간 작업이면 데이터베이스는 챙길 수 있습니다.

docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql

그다음 /var/backups와 compose 폴더를 서버 밖으로 백업하세요. restic 가이드가 정확히 그 일을 합니다. 여기에 Managed Backups로 서버 전체의 일일 복원 지점을 더할 수 있습니다.

운영

업데이트는 docker compose pull && docker compose up -d면 됩니다. BookStack은 시작할 때 데이터베이스 마이그레이션을 실행합니다. 메이저 버전 전에는 릴리스 노트를 읽으세요. 짧고 명확합니다.

팀에 티켓과 코드를 둘 곳도 필요하다면, 같은 종류의 요금제에 셀프 호스팅 Git 서버를 나란히 두면 잘 어울립니다.

배포할 준비가 되셨나요? 암호화폐로 결제, KYC 없음 — 약 1분 만에 온라인.

지금 배포 →

FAQ

BookStack에는 서버가 얼마나 필요한가요?

아주 조금입니다. BookStack은 MariaDB를 쓰는 PHP 앱으로, 수십 명 규모의 팀이 1 vCPU와 2 GB 메모리로 편하게 씁니다. 디스크는 주로 업로드한 이미지와 첨부 파일에 쓰입니다.

기본 로그인 정보는 무엇인가요?

admin@admin.com과 비밀번호 'password'입니다. 로그인해서 둘 다 바로 바꾸세요. URL을 누구와 공유하기 전에요.

회사 로그인을 쓸 수 있나요?

네. BookStack은 LDAP, SAML2, OpenID Connect를 지원하므로 모두가 이미 쓰는 ID 공급자로 로그인할 수 있습니다.

전용 IP가 필요한가요?

팀이 쓴다면 필요합니다. 동료들이 브라우저에서 HTTPS로 여니 내 IP로 443번 포트의 인바운드 트래픽을 받아야 합니다. 개인 메모장이라면 NAT 요금제의 SSH 터널로도 충분합니다.

백업은 어떻게 하나요?

데이터베이스를 덤프하고, 마운트한 설정 볼륨 안의 업로드 폴더를 복사하세요. restic 가이드에서 둘 다 암호화된 외부 스냅샷으로 자동화하는 방법을 소개합니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.