Debian 9에 Wiki.js - NodeJS 기반 Wiki 소프트웨어를 설치하는 방법
이 페이지에서
- 요구 사항\n
- 전제 조건
- 초기 단계
- 1단계 - Node.js 및 npm 설치
- 2단계 - MongoDB 데이터베이스 설치
- 3단계 -
acme.sh
클라이언트를 설치하고 Let">을 얻습니다.\n - 4단계 - NGINX 설치 및 구성
- 5단계 - Wiki.js 설치 및 설정
- 6단계 - PM2 프로세스 관리자 설정\n
- 링크
Wiki.js는 Node.js, Git 및 Markdown을 기반으로 하는 오픈 소스의 현대적이고 강력한 wiki 앱입니다. Wiki.js는 매우 빠른 Node.js 엔진에서 실행되며 CPU 리소스를 절약하도록 최적화되어 있습니다. 언급할 가치가 있는 일부 Wiki.js 기능은 다음과 같습니다.
- Git 지원 마크다운 편집
- 가벼우면서도 강력한 성능\n
- 최신 웹용으로 아름답게 디자인됨
- 통합 액세스 제어\n
- 직관적인 자산 관리
- 내장 검색 엔진
이 튜토리얼에서는 NGINX를 역방향 프록시 서버로, MongoDB를 데이터베이스 서버로, PM2를 프로세스 관리자로 사용하여 Debian 9 운영 체제에서 Wiki.js 버전 1 설치 프로세스를 안내하고 선택적으로 전송 계층을 보호할 수 있습니다. acme.sh
클라이언트 및 Lets Encrypt 인증 기관을 사용하여 SSL 지원을 추가합니다.
요구 사항
Wiki.js를 실행하기 위한 요구 사항은 다음과 같습니다.
- Node.js
6.11.1
에서10.x
로 변경해야 합니다.\n - MongoDB 버전
3.2
이상. - Git 버전
2.7.4
이상. - NGINX, Apache, Caddy, H2O와 같은 웹 서버 소프트웨어...\n
- 빈 Git 저장소(선택사항).\n
- 최소 512MB RAM. 1GB의 RAM이 권장됩니다.
- 약 300MB의 디스크 공간.
- A/AAAA DNS 레코드가 설정된 도메인 이름.
전제 조건
- Debian 9 운영 체제.
sudo
권한이 있는 루트가 아닌 사용자.\n
초기 단계
Debian 시스템 버전 확인:
lsb_release -ds
# Debian GNU/Linux 9.8 (stretch)
시간대 설정:
dpkg-reconfigure tzdata
운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 중요한 첫 번째 단계입니다.
apt update && apt upgrade -y
Debian 운영 체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.
apt install -y curl wget vim git unzip socat sudo bash-completion apt-transport-https build-essential dirmngr
1단계 - Node.js 및 npm 설치
Wiki.js는 Node.js를 기반으로 합니다. 이 글을 쓰는 시점에 버전 10인 Wiki.js의 최신 권장 버전을 설치할 예정입니다. Linux에는 Linux 바이너리(x86/x64), 소스 코드 또는 패키지 관리자를 통한 몇 가지 Node.js 설치 옵션이 있습니다. Node.js를 쉽게 설치하고 업데이트할 수 있는 패키지 관리 옵션을 사용할 것입니다.
NodeSource 저장소에서 Node.js의 최신 권장 버전을 다운로드하여 설치합니다.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
참고: npm은 Node.js와 함께 배포됩니다. 즉, Node.js를 다운로드하면 자동으로 시스템에 npm이 설치됩니다.
Node.js 및 npm 버전 확인:
node -v && npm -v
# v10.15.1
# 6.4.1
Npm은 Node.js와 별개의 프로젝트이며 더 자주 업데이트되는 경향이 있습니다. 결과적으로 방금 Node.js(따라서 npm)를 다운로드했더라도 npm을 업데이트해야 할 것입니다. 운 좋게도 npm은 스스로 업데이트하는 방법을 알고 있습니다! npm을 업데이트하려면 터미널에 다음을 입력하세요.
sudo npm install -g
이 명령은 npm을 최신 안정 버전으로 업데이트합니다.
다음을 사용하여 npm 버전을 다시 확인합니다.
npm -v
# 6.8.0
그리고 최신 버전 번호를 반환해야 합니다.
2단계 - MongoDB 데이터베이스 설치
Wiki.js는 데이터를 저장하기 위한 데이터베이스가 필요하며 Wiki.js의 현재 안정 버전은 MongoDB 데이터베이스 엔진만 지원합니다. 이에 따라 MongoDB 데이터베이스를 설치해야 합니다.
MongoDB 데이터베이스 다운로드 및 설치:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
MongoDB 버전을 확인합니다.
mongo --version | head -n 1 && mongod --version | head -n 1
MongoDB 서비스를 시작하고 활성화합니다(재부팅 시 시작하도록 설정). 아직 시작하고 활성화하지 않은 경우:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
3단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 받기(선택사항)
HTTPS로 웹 사이트를 보호할 필요는 없지만 사이트 트래픽을 보호하는 것이 좋습니다. Lets Encrypt에서 SSL 인증서를 얻기 위해 acme.sh
클라이언트를 사용합니다. Acme.sh
는 종속성이 없는 Lets Encrypt에서 SSL 인증서를 얻기 위한 순수 UNIX 셸 소프트웨어입니다.
acme.sh
다운로드 및 설치:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~
acme.sh
버전 확인:
acme.sh --version
# v2.8.1
도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서를 얻습니다.
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
테스트를 위해 가짜 인증서를 원하는 경우 위 명령에 --staging
플래그를 추가할 수 있습니다.
발급된 인증서를 나열하려면 다음을 실행할 수 있습니다.
acme.sh --list
인증서를 저장할 폴더를 만듭니다. /etc/letsencrypt
를 사용하지만 SSL 인증서를 저장하는 데 선호하는 모든 것이 될 수 있습니다.
mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc
인증서를 /etc/letsencrypt 디렉터리에 설치/복사합니다.
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
위 명령어를 실행하면 인증서 및 키가 다음 위치에 있게 됩니다.
- RSA의 경우: /etc/letsencrypt
/example.com
디렉토리. - ECC/ECDSA의 경우: /etc/letsencrypt
/example.com_ecc
디렉토리.
모든 인증서는 60일마다 자동으로 갱신됩니다.
인증서를 얻은 후 루트 사용자를 종료하고 일반 sudo 사용자로 돌아갑니다.
exit
4단계 - NGINX 설치 및 구성
Wiki.js(또는 모든 HTTP Node.js 앱)는 실제 웹 서버(예: NGINX 또는 Apache) 없이 실행할 수 있습니다. 그러나 Wiki.js 앞에 표준 웹 서버를 배치하는 것이 좋습니다. 이렇게 하면 SSL, 여러 웹사이트, 캐싱 등과 같은 기능을 사용할 수 있습니다. 이 자습서에서는 NGINX를 사용하지만 다른 서버도 가능하므로 적절하게 구성하기만 하면 됩니다.
다음 명령을 실행하여 공식 NGINX 저장소에서 NGINX를 다운로드하고 설치합니다.
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx
NGINX 버전 확인:
sudo nginx -v
# nginx version: nginx/1.15.8
NGINX 서비스 활성화 및 시작:
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
sudo vim /etc/nginx/conf.d/wiki.js.conf
를 실행하고 NGINX를 HTTPS 역방향 프록시로 구성합니다.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
charset utf-8;
client_max_body_size 50M;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
위 구성에서 변경해야 하는 유일한 것은 server_name
지시어이며, 3000
포트 이외의 다른 포트를 구성하기로 결정한 경우 잠재적으로 proxy_pass
지시어입니다. . Wiki.js는 기본적으로 포트 3000
을 사용합니다.
NGINX 구성을 확인합니다.
sudo nginx -t
마지막으로 변경사항을 적용하려면 NGINX를 다시 로드해야 합니다.
sudo systemctl reload nginx.service
5단계 - Wiki.js 설치 및 설정
Wiki.js가 상주해야 하는 문서 루트 디렉터리를 만듭니다.
sudo mkdir -p /var/www/wiki.js
문서 루트 디렉토리로 이동합니다.
cd /var/www/wiki.js
/var/www/wiki.js
디렉토리의 소유권을 your_user로 변경합니다.
sudo chown -R [your_user]:[your_user] /var/www/wiki.js
참고: 위 명령에서 your_user를 이 자습서의 전제 조건으로 생성했어야 하는 루트가 아닌 사용자로 바꾸십시오.
/var/www/wiki.js
디렉토리에서 다음 명령을 실행하여 최신 Wiki.js 애플리케이션을 가져와 설치합니다.
curl -sSo- https://wiki.js.org/install.sh | bash
설치가 완료되면 현재 설치된 Wiki.js 버전을 보기 위해 다음 명령을 실행할 수 있습니다.
node wiki --version
# 1.0.117
설치가 완료되면 구성 마법사를 시작하라는 메시지가 표시됩니다.
따라서 다음을 실행하여 구성 마법사를 시작합니다.
node wiki configure
웹 브라우저를 사용하여 http://example.com
으로 이동하고 화면의 안내를 따릅니다. 구성 마법사 중에 입력한 모든 설정은 config.yml
파일에 저장됩니다. 구성 마법사가 자동으로 Wiki.js를 시작합니다.
먼저 환영 메시지가 표시됩니다. "시작" 버튼을 클릭합니다:

다음 \시스템 검사\ 페이지가 나타납니다. 모든 요구사항이 충족되면 "계속" 버튼을 클릭하세요.

위키에 대한 일반 정보를 입력하고 "계속" 버튼을 클릭하십시오:

다음 단계를 위해 "중요 고려 사항" 알림을 읽고 "계속"을 클릭하십시오.

다음으로 데이터베이스에 연결하고 계속합니다.

Wiki.js가 데이터베이스에 성공적으로 연결되었다는 메시지가 표시되어야 합니다. "계속" 버튼을 클릭합니다:

경로 설정 및 계속:

이 단계를 원하거나 건너뛰려면 원격 Git 저장소를 설정하십시오. 이 단계는 선택 사항이지만 적극 권장됩니다.

그런 다음 "계속" 버튼을 클릭합니다.

관리자 계정을 만들고 "계속" 버튼을 클릭합니다.

마지막으로 Wiki.js를 시작합니다.

30초 정도 기다리면 Wiki.js 홈페이지로 리디렉션됩니다.

설치가 완료되었습니다. 환영 페이지를 위키해야 합니다:

6단계 - PM2 프로세스 관리자 설정
기본적으로 Wiki.js는 시스템 재부팅 후 자동으로 시작되지 않습니다. 부팅 시 시작되도록 하려면 PM2 프로세스 관리자를 설정해야 합니다. PM2는 로컬 npm 모듈로 Wiki.js와 함께 번들로 제공되므로 PM2를 전체적으로 설치할 필요가 없습니다.
다음을 실행하여 PM2에게 자신을 시작 서비스로 구성하도록 지시합니다.
/var/www/wiki.js/node_modules/pm2/bin/pm2 startup
마지막으로 다음 명령을 실행하여 현재 PM2 구성을 저장합니다.
/var/www/wiki.js/node_modules/pm2/bin/pm2 save
Wiki.js는 이제 PM2를 프로세스 관리자로 사용하여 백그라운드 프로세스로 실행됩니다.
연결
- https://wiki.js.org/
- https://github.com/Requarks/wiki-v1
- https://github.com/Requarks/wiki