서버 설치 · 8 min read · Nov 02, 2025

AlmaLinux 9에 Etherpad 설치하는 방법

Etherpad는 Google Docs 및 Zoho Writer와 같은 서비스에 대한 무료 오픈 소스 대안입니다. Etherpad는 팀을 위한 협업 및 실시간 텍스트 편집기로, 웹 기반 텍스트 편집기이기 때문에 언제 어디서나 접근할 수 있습니다.

Etherpad에서의 모든 변경 사항은 실시간으로 발생하며, 버전 관리 및 팀을 위한 내장 형식을 지원합니다. Etherpad는 다양한 플러그인을 지원하는 매우 사용자 정의 가능한 편집기입니다. 또한 doc, pdf, odt, markdown 등과 같은 현대 문서 형식을 지원합니다.

이 튜토리얼에서는 MariaDB 데이터베이스 서버와 Nginx 웹 서버가 있는 AlmaLinux 9 서버에 Etherpad를 설치하는 방법을 보여줍니다. 또한 SSL 인증서를 통해 Etherpad를 안전하게 액세스할 수 있도록 설정합니다.

전제 조건

이 튜토리얼을 완료하려면 다음을 준비해야 합니다:

  • AlmaLinux 9 서버 - 이 데모는 호스트 이름이 almalinux9인 AlmaLinux를 사용합니다.
  • sudo 권한이 있는 비루트 사용자.
  • 서버 IP 주소를 가리키는 도메인 이름.
  • Letsecnrypt 및 Certbot을 통해 생성된 SSL 인증서.

종속성 설치

Etherpad를 설치하기 전에 Etherpad에 필요한 몇 가지 종속성을 설치해야 합니다:

  • 개발 도구
  • Node.js 및 NPM (Node 패키지 관리자)
  • MariaDB 데이터베이스 서버
  • Nginx 웹 서버

Etherpad 종속성을 설치하려면 다음 단계를 완료하십시오.

개발 도구 설치

먼저 AlmaLinux 서버에 “ 개발 도구 “를 설치해야 합니다. 다음 dnf 명령을 입력하여 “ 개발 도구 “를 설치하고, y를 입력한 후 ENTER를 눌러 진행합니다.

sudo dnf group install "Development Tools"

다음으로, 추가 종속성을 설치하기 위해 다음 명령을 실행합니다. 프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다.

sudo dnf install gzip git curl python3-devel openssl-devel pkg-config

install dependencies

Node.js 및 NPM 설치

Etherpad는 주로 Node.js로 작성된 웹 기반 협업 및 실시간 편집기입니다. 이를 설치하려면 Node.js JavaScript 런타임과 NPM (Node 패키지 관리자)을 설치해야 합니다.

이 글을 작성할 당시 Etherpad는 최소한 Node.js v16을 요구하며, 이는 AlmaLinux 앱 스트림 리포지토리에서 기본적으로 제공되며 DNF를 통해 설치할 수 있습니다.

다음 dnf 명령을 실행하여 Node.js 및 NPM을 설치합니다. 설치를 확인하기 위해 y를 입력하고 ENTER를 누릅니다.

sudo dnf install nodejs npm

Node.js가 설치되면, 다음 명령을 실행하여 /usr/local/bin 디렉토리를 PATH 환경 변수에 추가합니다. 이렇게 하면 NPM을 통해 설치된 일부 바이너리 파일을 서버에서 실행할 수 있습니다.

echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc  
source ~/.bashrc

다음으로, Node.js와 NPM의 바이너리 파일을 찾기 위해 다음 명령을 실행합니다.

which node  
which npm

그런 다음, 아래 명령을 사용하여 Node.js 및 NPM 버전을 확인합니다.

node --version  
npm --version

표시된 출력은 Node.js v16NPM 8.x가 설치되었으며, 두 바이너리 파일이 /bin 디렉토리에 위치하고 있음을 확인합니다.

checking node.js and npm

MariaDB 서버 설치

기본적으로 설치된 Etherpad는 SQLite를 데이터베이스로 사용합니다. 대규모 배포를 위해 Etherpad 설치에 MariaDB/MySQL을 데이터베이스로 사용할 수 있습니다.

다음 dnf 명령을 실행하여 MariaDB 서버를 설치합니다. 프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다.

sudo dnf install mariadb-server

install mariadb

MariaDB가 설치되면, 다음 명령을 실행하여 MariaDB 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

그런 다음, 아래 명령을 사용하여 MariaDB 서비스 상태를 확인합니다.

sudo systemctl status mariadb

MariaDB 서버가 실행 중이면 출력은 다음과 같이 표시되어야 합니다:

start enable mariadb

Nginx 웹 서버 설치

MariaDB 서버를 설치한 후, Etherpad의 리버스 프록시로 사용될 Nginx 웹 서버를 설치합니다. 따라서 진행하기 전에 서버 IP 주소를 가리키는 도메인 이름과 Letsencrypt 및 Certbot을 통해 생성된 SSL 인증서가 있는지 확인하십시오.

다음 dnf 명령을 실행하여 Nginx 웹 서버를 설치합니다. 프롬프트가 표시되면 확인을 위해 y를 입력하고 ENTER를 누릅니다.

sudo dnf install nginx

install nginx

이제 다음 명령을 실행하여 Nginx 서비스를 시작하고 활성화합니다.

sudo systemctl start nginx  
sudo systemctl enable nginx

그 후, 다음 명령을 입력하여 Nginx 서비스가 실행 중인지 확인합니다.

sudo systemctl status nginx

Nginx 서비스가 실행 중이면 다음과 같은 출력이 표시됩니다:

start enable verify nginx

다음으로, 서버에서 HTTP 및 HTTPS 포트를 열기 위해 다음 명령을 실행합니다.

sudo firewall-cmd --add-service={http,https} --permanent  
sudo firewall-cmd --reload

다음 명령을 사용하여 열린 포트 및 서비스 목록을 확인합니다. firewalld에서 HTTP 및 HTTPS가 모두 활성화되어 있는지 확인해야 합니다.

sudo firewall-cmd --list-all

configure firewalld

MariaDB 서버 구성

이 섹션에서는 mariadb-secure-installation 유틸리티를 사용하여 MariaDB 서버를 보호한 다음, Etherpad에 사용할 새 데이터베이스와 사용자를 생성합니다.

다음 명령을 실행하여 MariaDB 서버 보안을 시작합니다.

sudo mariadb-secure-installation

명령이 실행된 후, 다음 구성에 대해 질문을 받게 됩니다:

  • MariaDB 루트 사용자의 인증 방법을 unix_socket으로 변경합니다. n을 입력하여 아니오로 설정합니다.
    MariaDB 루트 비밀번호를 설정합니다. y를 입력하여 확인하고 새 MariaDB 루트 비밀번호를 입력한 후 반복합니다.
    MariaDB 루트 사용자의 원격 로그인을 비활성화합니다. y를 입력하여 확인합니다.
    MariaDB의 기본 데이터베이스 테스트를 제거합니다. y를 입력하여 확인합니다.
    MariaDB에서 익명 사용자를 제거합니다. y를 입력하여 확인합니다.
    마지막으로, 변경 사항을 적용하기 위해 테이블 권한을 다시 로드하기 위해 y를 입력합니다.

MariaDB 서버가 보호되면, 다음으로 새 MariaDB 데이터베이스와 사용자를 생성합니다.

다음 mariadb 명령을 사용하여 MariaDB 서버에 로그인합니다.

sudo mariadb -u root -p

다음 쿼리를 실행하여 Etherpad용 새 MariaDB 데이터베이스와 사용자를 생성합니다. 이 예에서는 새 데이터베이스 etherpad_lite_db와 사용자 etherpaduser를 비밀번호 StrongPasswordEtherpadDB로 생성합니다.

CREATE DATABASE etherpad_lite_db CHARACTER SET utf8mb4;  
CREATE USER etherpaduser@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';  
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to etherpaduser@localhost;  
FLUSH PRIVILEGES;

create new database and user

이제 다음 쿼리를 실행하여 MariaDB 사용자 etherpaduser의 권한을 확인합니다.

SHOW GRANTS FOR etherpaduser@localhost;  
quit

MariaDB 사용자 etherpaduser가 데이터베이스 etherpad_lite_db에 접근할 수 있는 권한이 있음을 알 수 있습니다.

show mariadb user privileges

MariaDB에서 나가려면 quit를 입력합니다.

Etherpad 다운로드 및 설치

이 섹션에서는 시스템 사용자를 생성하고, Etherpad 소스 코드를 다운로드하고, Etherpad의 종속성을 설치하고, MariaDB 데이터베이스와 Etherpad를 통합한 다음, 명령줄을 통해 설치를 확인하여 Etherpad 설치를 시작합니다.

먼저, 다음 명령을 실행하여 새 시스템 사용자 및 그룹 ‘ etherpad ‘를 생성합니다. 이 사용자는 Etherpad 서비스를 실행하는 데 사용됩니다.

sudo groupadd etherpad  
sudo adduser -r -M -d /opt/etherpad-lite -g etherpad etherpad

git을 통해 Etherpad 소스 코드를 대상 디렉토리 /opt/etherpad-lite에 다운로드합니다.

git clone --branch master https://github.com/ether/etherpad-lite.git /opt/etherpad-lite

Etherpad 소스 코드가 다운로드되면, 다음 명령을 실행하여 디렉토리 /opt/etherpad-lite의 소유권을 사용자 및 그룹 ‘ etherpad ‘로 변경합니다.

sudo chown -R etherpad:etherpad /opt/etherpad-lite

create user and download etherpad source code

다음으로, 작업 디렉토리를 /opt/etherpad-lite 디렉토리로 이동하고 아래 명령을 사용하여 Etherpad 종속성을 설치합니다.

cd /opt/etherpad-lite  
sudo su -s /bin/bash -c "./bin/installDeps.sh" etherpad

명령을 실행한 후, 다음과 같은 설치 프로세스를 확인할 수 있습니다:

install etherpad dependencies

설치가 완료되면, 다음 nano 편집기 명령을 사용하여 Etherpad 구성 settings.json을 엽니다.

nano settings.json

Etherpad 설치의 제목을 변경합니다.

  "title": "Etherpad AlmaLinux 9",

Etherpad가 실행될 기본 IP 주소를 localhost 또는 127.0.0.1로 변경합니다.

  "ip": "127.0.0.1",  
  "port": 9001,

기본 데이터베이스 구성을 아래에서 제거합니다.

  /*  
  *"dbType": "dirty",  
  *"dbSettings": {  
  *  "filename": "var/dirty.db"  
  *},  
  */

MySQL/MariaDB 서버를 사용하도록 데이터베이스 세부 정보를 변경합니다. 데이터베이스 이름, 사용자 및 비밀번호를 변경하는 것을 잊지 마십시오.

  "dbType" : "mysql",  
  "dbSettings" : {  
    "user":     "etherpaduser",  
    "host":     "localhost",  
    "port":     3306,  
    "password": "StrongPasswordEtherpadDB",  
    "database": "etherpad_lite_db",  
    "charset":  "utf8mb4"  
  },

파일을 저장하고 편집기를 종료합니다.

다음으로, Etherpad를 확인하고 실행하기 위해 다음 명령을 실행합니다.

/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js

데이터베이스 구성 및 Etherpad 설치가 성공하면 다음과 같은 출력이 표시됩니다:

running check etherpad

Ctrl+c를 눌러 프로세스를 종료합니다.

Etherpad를 Systemd 서비스로 실행하기

Etherpad가 설치되었으므로 이제 Etherpad를 systemd 서비스로 설정합니다. 이렇게 하면 Etherpad를 백그라운드에서 실행하고 systemctl 명령줄을 통해 Etherpad를 쉽게 관리할 수 있습니다.

먼저, 다음 nano 편집기 명령을 사용하여 새 systemd 서비스 파일 /lib/systemd/system/etherpad.service를 생성합니다.

sudo nano /lib/systemd/system/etherpad.service

다음 구성을 파일에 삽입합니다.

[Unit]  
Description=Etherpad-lite, the collaborative editor.  
After=syslog.target network.target mariadb.service nginx.service  
  
[Service]  
Type=simple  
User=etherpad  
Group=etherpad  
WorkingDirectory=/opt/etherpad-lite  
Environment=NODE_ENV=production  
ExecStart=/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js  
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

작업이 끝나면 파일을 저장하고 닫습니다.

이제 다음 명령을 실행하여 systemd 관리자를 다시 로드하고 Etherpad 서비스 파일을 시스템에 적용합니다.

sudo systemctl daemon-reload

그런 다음, 아래 명령을 사용하여 Etherpad 서비스를 시작하고 활성화합니다.

sudo systemctl start etherpad  
sudo systemctl enable etherpad

다음 명령을 사용하여 Etherpad 서비스를 확인합니다. Etherpad 서비스가 실행 중이면 ‘ active (running) ‘와 같은 출력을 얻어야 합니다.

sudo systemctl status etherpad

verify etherpad service

다음 명령을 사용하여 시스템에서 열린 포트 목록을 확인할 수도 있습니다. Etherpad가 포트 9001을 사용하고 있는 것을 확인해야 합니다.

ss -tulpn | grep 9001

Nginx를 리버스 프록시로 구성하기

현재 Etherpad가 포트 9001에서 실행되고 있습니다. 최종 사용자가 접근할 수 있도록 Nginx를 리버스 프록시로 사용할 수 있습니다. 시작하기 전에 Etherpad에 사용할 도메인 이름이 있는지 확인하고, Letsencrypt 및 Certbot을 통해 SSL 인증서를 생성했는지 확인하십시오.

다음 nano 편집기 명령을 사용하여 새 Nginx 서버 블록 구성 /etc/nginx/conf.d/etherpad.conf를 생성합니다.

sudo nano /etc/nginx/conf.d/etherpad.conf

다음 구성을 삽입하고 도메인 이름 및 SSL 인증서 경로의 세부 정보를 변경해야 합니다.

# enforce HTTPS  
server {  
    listen       80;  
    server_name  etherpad.howtoforge.local;  
    return 301   https://$host$request_uri;  
}  
  
# we're in the http context here  
map $http_upgrade $connection_upgrade {  
    default upgrade;  
    ''      close;  
}  
  
server {  
    listen       443 ssl http2;  
    server_name  etherpad.howtoforge.local;  
  
    access_log  /var/log/nginx/eplite.access.log;  
    error_log   /var/log/nginx/eplite.error.log;  
  
    ssl_certificate      /etc/letsencrypt/live/etherpad.howtoforge.local/fullchain.pem;  
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.howtoforge.local/privkey.pem;  
  
    ssl_session_timeout  5m;  
  
    ssl_protocols TLSv1.2;  
    ssl_prefer_server_ciphers on;  
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";  
  
    location / {  
        proxy_pass         http://127.0.0.1:9001;  
        proxy_buffering    off; # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf  
        proxy_set_header   Host $host;  
        proxy_pass_header  Server;  
  
        # Note you might want to pass these headers etc too.  
        proxy_set_header    X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html  
        proxy_set_header    X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP  
        proxy_set_header    X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used  
        proxy_http_version  1.1; # recommended with keepalive connections  
  
        # WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html  
        proxy_set_header  Upgrade $http_upgrade;  
        proxy_set_header  Connection $connection_upgrade;  
    }  
}

작업이 끝나면 파일을 저장하고 편집기를 닫습니다.

이제 다음 명령을 실행하여 올바르고 적절한 구성이 있는지 확인합니다. 성공하면 “ Syntax is ok - test is successful “와 같은 메시지를 받게 됩니다.

sudo nginx -t

다음으로, 다음 명령을 입력하여 Nginx 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart nginx

configure nginx as reverse proxy

그 후, 웹 브라우저를 열고 Etherpad 설치 도메인 이름(예: https://etherpad.howtoforge.local/)을 방문합니다. Etherpad 협업 편집기의 기본 홈페이지가 표시되어야 합니다.

이제 패드 이름을 입력하고 OK를 클릭하여 새 패드를 생성합니다.

create new pad

이제 Etherpad를 협업 편집기로 사용하기 시작할 수 있습니다.

etehrpad collaboratuive editor

결론

축하합니다. AlmaLinux 9 서버에 MariaDB 데이터베이스 및 Nginx 웹 서버와 함께 Etherpad 설치를 완료했습니다. 또한 SSL 인증서를 통해 Etherpad를 안전하게 보호했습니다. 이제 친구/그룹/팀과 함께 Etherpad를 주요 협업 편집기로 사용하기 시작할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.