웹사이트 검색

Fedora 29에 NodeJS 기반 Wiki.js를 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 초기 단계
  4. 1단계 - Node.js 및 npm 설치
  5. 2단계 - MongoDB 데이터베이스 설치
  6. 3단계 - acme.sh 클라이언트 설치 및 Let\>)
  7. 4단계 - NGINX 설치 및 구성
  8. 5단계 - Wiki.js 설치 및 설정
  9. 6단계 - PM2 프로세스 관리자 설정\n
  10. 링크

Wiki.js는 Node.js, Git 및 Markdown을 기반으로 하는 오픈 소스의 현대적이고 강력한 wiki 앱입니다. Wiki.js는 엄청나게 빠른 Node.js 엔진에서 실행되며 CPU 리소스를 절약하도록 최적화되어 있습니다. 언급할 가치가 있는 일부 Wiki.js 기능은 다음과 같습니다.

  • Git 지원 마크다운 편집
  • 가벼우면서도 강력한 성능\n
  • 최신 웹용으로 아름답게 디자인됨
  • 통합 액세스 제어\n
  • 직관적인 자산 관리
  • 내장 검색 엔진

이 튜토리얼에서는 NGINX를 역방향 프록시 서버로, MongoDB를 데이터베이스 서버로, PM2를 프로세스 관리자로 사용하여 Fedora 29 운영 체제에서 Wiki.js 버전 1 설치 프로세스를 안내하고 선택적으로 전송 계층을 보호할 수 있습니다. acme.sh 클라이언트 및 Lets Encrypt 인증 기관을 사용하여 SSL 지원을 추가합니다.

요구 사항

Wiki.js를 실행하기 위한 요구 사항은 다음과 같습니다.

  • Node.js 6.11.1에서 10.x로
  • MongoDB 버전 3.2 이상.
  • Git 버전 2.7.4 이상.
  • NGINX, Apache, Caddy, H2O와 같은 웹 서버 소프트웨어...\n
  • 빈 Git 저장소(선택 사항).\n
  • 최소 512MB RAM. 1GB의 RAM이 권장됩니다.
  • 약 300MB의 디스크 공간.
  • A/AAAA DNS 레코드가 설정된 도메인 이름.

전제 조건

  • Fedora 29 운영 체제.
  • sudo 권한이 있는 루트가 아닌 사용자.\n

초기 단계

Fedora 버전 확인:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

시간대 설정:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 중요한 첫 번째 단계입니다.

sudo dnf check-upgrade || sudo dnf upgrade -y

Fedora 운영체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.

sudo dnf install -y curl wget vim git unzip socat bash-completion

1단계 - Node.js 및 npm 설치

Wiki.js는 Node.js를 기반으로 합니다. 이 글을 쓰는 시점에 버전 10 인 Wiki.js의 최신 권장 버전을 설치할 것입니다. Linux에는 Linux 바이너리(x86/x64), 소스 코드 또는 패키지 관리자를 통한 몇 가지 Node.js 설치 옵션이 있습니다. Node.js를 쉽게 설치하고 업데이트할 수 있는 패키지 관리 옵션을 사용할 것입니다.

Fedora 저장소에서 Node.js의 최신 장기 지원(LTS) 릴리스를 다운로드하여 설치합니다.

sudo dnf -y install nodejs

npm에서 기본 애드온을 컴파일하고 설치하려면 빌드 도구를 설치해야 할 수도 있습니다.

sudo dnf install -y gcc-c++ make
# or
# sudo dnf groupinstall -y 'Development Tools'

참고: npm은 Node.js와 함께 배포됩니다. 즉, Node.js를 다운로드하면 자동으로 시스템에 npm이 설치됩니다.

Node.js 및 npm 버전을 확인합니다.

node -v && npm -v
# v10.15.0
# 6.4.1

Npm은 Node.js와 별개의 프로젝트이며 더 자주 업데이트되는 경향이 있습니다. 결과적으로 방금 Node.js(따라서 npm)를 다운로드했더라도 npm을 업데이트해야 할 것입니다. 운 좋게도 npm은 스스로 업데이트하는 방법을 알고 있습니다! npm을 업데이트하려면 터미널에 다음을 입력하세요.

sudo npm install -g 

이 명령은 npm을 최신 안정 버전으로 업데이트합니다.

다음을 사용하여 npm 버전을 다시 확인합니다.

npm -v
# 6.7.0

그리고 최신 버전 번호를 반환해야 합니다.

2단계 - MongoDB 데이터베이스 설치

Wiki.js는 데이터를 저장하기 위한 데이터베이스가 필요하며 Wiki.js의 현재 안정 버전은 MongoDB 데이터베이스 엔진만 지원합니다. 이에 따라 MongoDB 데이터베이스를 설치해야 합니다.

MongoDB 데이터베이스 다운로드 및 설치:

sudo dnf install -y mongodb mongodb-server

MongoDB 버전을 확인합니다.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.1
# db version v4.0.1

MongoDB 서비스를 시작하고 활성화합니다(재부팅 시 시작하도록 설정). 아직 시작하고 활성화하지 않은 경우:

sudo systemctl start mongodb.service
sudo systemctl enable mongodb.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 패키지를 설치합니다.

sudo dnf install -y nginx

설치 후 다음을 실행하여 Nginx 버전을 확인할 수 있습니다.

nginx -v
# 1.14.1

Nginx 서비스 시작 및 사용 설정(재부팅 시 시작되도록 설정):

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

sudo vim /etc/nginx/conf.d/wiki.js.conf 실행

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 지시어, ssl 파일 경로의 도메인 이름 및 잠재적으로 proxy_pass 지시어(다음 이외의 것을 구성하기로 결정한 경우)입니다. 3000 포트. 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

wikijs용 사용자 만들기

sudo useradd -d /var/www/wiki.js wikijs

/var/www/wiki.js 디렉토리의 소유권을 wikijs 사용자로 변경합니다.

sudo chown -R wikijs:wikijs /var/www/wiki.js

/var/www/wiki.js 디렉토리에서 다음 명령어를 실행하여 최신 Wiki.js 애플리케이션을 가져와 설치합니다.

cd /var/www/wiki.js
sudo su wikijs
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