CentOS 7에서 Leanote 서버를 설정하는 방법

Leanote는 Golang으로 작성된 Evernote의 무료, 경량 및 오픈 소스 대안입니다. 사용자 경험을 염두에두고 Leanote는 크로스 플랫폼 지원, MarkDown 구문 작성, 공개 또는 비공개 블로그, 지식 수집 및 공유, 팀 협업 등의 실질적인 기능을 사용자에게 제공합니다.

이 기사에서는 CentOS 7 서버 인스턴스에서 Leanote 서버 설정을 안내합니다. 보안을 위해 HTTPS supportLet 's Encrypt SSL 인증서 및 Nginx를 사용하도록 설정 하는 방법도 다룹니다.

전제 조건

  • 새로 배포 된 Vultr CentOS 7 서버 인스턴스 IPv4 주소가 203.0.113.1입니다.
  • sudo는 사용자 의 이름 leanote.
  • 머신의 모든 소프트웨어 패키지는 EPEL YUM 저장소를 사용하여 최신 안정 상태로 업데이트되었습니다. 자세한 내용은 여기를 참조 하십시오 .
  • leanote.example.com위에서 언급 한 서버 인스턴스를 가리키는 도메인

1 단계 : 스왑 파일 생성

새로운 Vultr CentOS 7 서버 인스턴스를 시작할 때 시스템이 원활하게 실행되도록하려면 항상 스왑 파일을 설정하는 것이 좋습니다. 예를 들어, 2048MB 크기의 스왑 파일을 만드는 것은 2GB의 메모리가있는 머신에 적합합니다.

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

참고 : 다른 서버 크기를 사용하는 경우 스왑 파일의 크기를 수정해야 할 수도 있습니다.

2 단계 : Leanote 2.6.1 바이너리 파일 얻기

64 비트 Linux 시스템 용 최신 Leanote 최신 릴리스를 다운로드하여 추출하십시오.

cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz

3 단계 : MongoDB Community Edition 4.0 설치

Leanote에서 요구하는대로 Leanote 서버를 성공적으로 설정하려면 MongoDB NoSQL DBMS가 있어야합니다.

MongoDB 4.0 YUM 저장소 설정

다음과 같이 MongoDB 4.0 YUM 저장소를 작성하십시오.

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

YUM을 사용하여 MongoDB 4.0 패키지 설치

앞에서 만든 MongoDB 4.0 YUM 저장소를 사용하여 모든 MongoDB 구성 요소 및 도구를 설치하십시오.

sudo yum install -y mongodb-org

MongoDB 4.0 용 SELinux 구성

기본적으로 MongoDB는 27017작업시 포트를 사용하며 SELinux가 enforcingCentOS 7 시스템 의 모드에있는 경우 허용되지 않습니다 . 다음 명령을 사용하여 현재 SELinux 모드를 확인하십시오.

sudo getenforce

Vultr CentOS 7 서버 인스턴스에서 SELinux는 기본적으로 비활성화되어 있습니다. 따라서 위 명령의 출력은 다음과 같습니다.

Disabled

이 경우 SELinux 구성에 대한 다음 지시 사항을 건너 뛰고 계속 진행할 수 있습니다.

그러나 원래 CentOS 7 서버 인스턴스를 실행중인 경우 위 명령의 출력은 Enforcing입니다. 아래 세 가지 옵션 중 하나를 수행해야 하기 전에 당신이 시작하고 MongoDB의 서비스를 활성화 할 수 있습니다.

  • 옵션 1 : MongoDB가 27017포트 를 사용하도록 허용

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • 옵션 2 : SELinux 비활성화

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • 옵션 3 : SELinux를 permissive모드로 변경

    sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
    sudo shutdown -r now
    

MongoDB 서비스를 시작하고 시스템 재부팅 후에 시작하십시오.

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

4 단계 : 초기 Leanote 데이터를 MongoDB로 가져 오기

초기 Leanote 데이터를 MongoDB로 가져 오려면 아래 명령을 사용하십시오.

rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/

5 단계 : MongoDB 인증 사용

보안을 위해 MongoDB 서비스가 시작되고 실행 된 직후 MongoDB에 대한 액세스 제어를 활성화해야합니다. 이를 위해서는 최소한 두 개의 MongoDB 사용자 계정 (사용자 관리자 계정 및 데이터베이스 관리자 계정)을 만들어야합니다. MongoDB 구성도 수정해야합니다.

MongoDB 쉘을 입력하십시오.

mongo --host 127.0.0.1:27017

admin데이터베이스로 전환하십시오 .

use admin

useradmin비밀번호를 사용하는 이름의 사용자 관리자를 작성하십시오 useradminpassword.

db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

참고 : 사용자 관리자 useradmin는 모든 MongoDB 사용자를 관리해야하므로 강력한 암호를 선택하는 것이 좋습니다. 물론 더 안전한 팁은 useradmin추측하기 어려운 사용자 이름 으로 바꾸는 것 입니다.

leanote데이터베이스로 전환하십시오 .

use leanote

leanoteadmin비밀번호를 사용하는 이름의 데이터베이스 관리자를 작성하십시오 leanoteadminpassword.

db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })

참고 : 다시 알려진 사용자 이름과 추측하기 어려운 암호를 선택하는 것이 좋습니다.

MongoDB 사용자가 작성되면 결과를 확인할 수 있습니다.

use admin
db.auth("useradmin", "useradminpassword")

데이터베이스 관리자를 확인하십시오.

use leanote
db.auth("leanoteadmin", "leanoteadminpassword")

둘 다 1확인으로 출력 됩니다.

MongoDB 쉘을 종료하십시오.

exit

MongoDB에 대한 액세스 제어를 사용하려면 /etc/mongod.conf다음과 같이 MongoDB 구성 파일에 두 줄을 추가해야 합니다.

sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo '  authorization: enabled' >> /etc/mongod.conf"

수정 사항을 적용하려면 MongoDB 서비스를 다시 시작하십시오.

sudo systemctl restart mongod.service

이제부터는 useradmin모든 MongoDB 사용자 leanoteadmin를 관리하고 leanote데이터베이스 만 관리하기 위해 두 개의 사용자 계정 만 사용하여 MongoDB에 액세스하고 관리 할 수 있습니다.

6 단계 : Leanote 구성

Leanote 구성 파일을 백업하십시오 /home/leanote/leanote/conf/app.conf.

cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak

사용 viLeanote 설정 파일을 열 편집기를 :

vi app.conf

다음 줄을 하나씩 찾으십시오.

site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y

아래와 같이 각각 교체하십시오.

site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA

참고 : 보안을 위해 app.secret매개 변수 의 값은 원래의 것과 다른 64 비트 임의 문자열이어야합니다. 값 E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA을 고유 한 64 비트 임의 값 으로 바꾸십시오 .

저장하고 종료하십시오 :

:wq!

7 단계 : Leanote 시작

포트에서 인바운드 TCP 트래픽을 허용하도록 방화벽 규칙을 수정하십시오 9000.

sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service

공식 스크립트를 사용하여 Leanote를 시작하십시오.

cd /home/leanote/leanote/bin
bash run.sh

이 표시되면 Listening on.. 0.0.0.0:9000즐겨 찾는 웹 브라우저가 http://leanote.example.com:9000Leanote 사이트를 사용하도록 시작하십시오.

기본 Leanote 관리자 계정을 사용하여 로그인하십시오.

  • 사용자 이름: admin
  • 암호: abc123

보안을 위해 로그인 한 직후 기본 비밀번호를 변경해야합니다.

8 단계 : HTTPS액세스 활성화

현재 보안 수준이 낮은 프로토콜 인 HTTP 프로토콜을 사용하여 Leanote 서버에 액세스 할 수 있습니다. 시스템 보안을 향상시키기 위해 HTTPSLet 's Encrypt SSL 인증서와 Nginx 리버스 프록시를 모두 머신에 배치하여 사용할 수 있습니다.

호스트 이름과 FQDN (정규화 된 도메인 이름)을 올바르게 설정

Let 's Encrypt SSL 인증서를 얻으려면 시스템에서 호스트 이름과 FQDN을 올바르게 설정해야합니다.

먼저 CTRL+ C를 눌러 Leanote 스크립트를 중지하십시오 run.sh.

다음으로 호스트 이름과 FQDN을 다음과 같이 설정하십시오.

sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF

결과도 확인할 수 있습니다.

hostname
hostname -f

방화벽 규칙 수정

포트의 인바운드 트래픽을 차단 9000하고 포트 HTTPHTTPS서비스의 인바운드 트래픽을 허용하십시오 .

sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

Let 's Encrypt SSL 인증서 신청

Certbot 유틸리티를 설치하십시오.

sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot

도메인의 SSL 암호화 인증서를 신청하십시오 leanote.example.com.

sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d leanote.example.com

인증서와 체인은 다음과 같이 저장됩니다.

/etc/letsencrypt/live/leanote.example.com/fullchain.pem

개인 키 파일은 다음과 같이 저장됩니다.

/etc/letsencrypt/live/leanote.example.com/privkey.pem

기본적으로 SSL 암호화하자 인증서는 3 개월 후에 만료됩니다. 아래와 같이 Cron 작업을 설정하여 Let 's Encrypt 인증서를 자동 갱신 할 수 있습니다.

sudo crontab -e

를 눌러 모드 I로 들어간 insert후 다음 줄을 입력하십시오.

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

저장하고 종료하십시오 :

:wq!

이 크론 작업은 매일 정오에 Let 's Encrypt 인증서를 갱신하려고 시도합니다.

리버스 프록시로 Nginx 설치

EPEL YUM 저장소를 사용하여 Nginx를 설치하십시오.

sudo yum install -y nginx

Leanote에 대한 구성 파일을 작성하십시오.

cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name leanote.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  leanote.example.com;
    ssl_certificate      /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/leanote.example.com/privkey.pem;

    # Proxy to the Leanote server
    location / {
        proxy_set_header X-Real-IP         \$remote_addr;
        proxy_set_header X-Forwarded-For   \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:9000;
        proxy_redirect                     http:// https://;
    }
}
EOF

수정 사항을 적용하려면 Nginx를 다시 시작하십시오.

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

site.urlLeanote 구성 파일에서 설정을 수정 하십시오.

cd /home/leanote/leanote/conf/
vi app.conf

다음 줄을 찾으십시오.

site.url=http://leanote.example.com:9000

교체하십시오 :

site.url=https://leanote.example.com

저장하고 종료하십시오 :

:wq!

Leanote 스크립트를 다시 실행하십시오.

cd /home/leanote/leanote/bin
bash run.sh

지금까지 즐겨 찾는 웹 브라우저를 http://leanote.example.com/, 당신은 발견 할 것이다 HTTPS프로토콜이 자동으로 활성화됩니다. admin이전에 설정 한 새 비밀번호로 사용자 로 로그인 하거나 팀 협업을 위해 새 사용자 계정을 등록하십시오.

다시 CTRL+ C를 누르면 Leanote 스크립트가 중지됩니다. 이 스크립트는 나중에 데몬 화합니다.

9 단계 : wkhtmltopdf프로그램 설치

Leanote는이 wkhtmltopdf프로그램 을 사용하여 HTML 페이��를 PDF 파일로 내보내 도록 선택 합니다. 설치 wkhtmltopdf:

cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf

Leanote가 시작되고 다시 실행될 때 Leanote 웹 관리 대시 보드 의 섹션에서 wkhtmltopdf이진 경로 를 제출하는 것을 잊지 마십시오 ./usr/local/bin/wkhtmltopdfExport PDF

참고 : 내 보낸 PDF 파일에서 읽을 수없는 문자가 있으면 필요한 글꼴 파일을 /usr/share/fonts/디렉토리 에 추가하여 문제를 해결해보십시오 .

10 단계 : 관리자를 사용하여 Leanote 스크립트를 계속 실행

Leanote 사이트를 온라인 상태로 유지하기 위해 Supervisor 유틸리티를 사용하여 Leanote 스크립트가 충돌하는 경우 자동으로 시작할 수 있습니다.

YUM을 사용하여 Supervisor를 설치하십시오.

sudo yum install -y supervisor

.iniLeanote에 대한 간단한 Supervisor 파일을 작성하십시오 .

cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF

Leanote 서비스와 함께 Supervisor 서비스를 시작하십시오.

sudo supervisord -c /etc/supervisord.conf

Leanote 서비스 상태를 확인하십시오.

sudo supervisorctl status leanote

출력은 다음과 유사합니다.

leanote                          RUNNING   pid 3707, uptime 0:02:36


Leave a Comment

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구