Rocky Linux 8にEtherpadコラボレーティブウェブエディタをインストールする方法
Rocky Linux 8にEtherpadコラボレーティブウェブエディタをインストールする方法
このページで
- 前提条件
- ステップ1 - ファイアウォールを設定する
- ステップ2 - Gitをインストールする
- ステップ3 - MariaDBをインストールする
- ステップ4 - MariaDBの設定
- ステップ5 - Etherpadをダウンロードしてインストールする
- ステップ6 - Etherpadを設定する
- ステップ7 - Etherpadサービスを作成する
- ステップ8 - Let's Encryptを使用してSSLをインストールする
- ステップ9 - Nginxをインストールして構成する
- Etherpadを更新中
- 結論
Etherpadは、ブラウザでリアルタイムの共同編集を提供するオープンソースのオンラインエディタです。Node.jsで書かれており、WordPress、Drupal、Odoo、Discourse、Joomlaなどのさまざまなプラットフォームで自己ホストして動作させることができます。
このチュートリアルでは、Rocky Linux 8サーバーにEtherpadをインストールし、データを保存するためにMariaDBデータベースを使用します。また、アプリケーションのリバースプロキシとしてNginxを使用し、Let's Encryptを使用してSSL証明書をインストールし、EtherpadインスタンスへのHTTPS接続を有効にします。
前提条件
Rocky Linux 8を実行しているシステム。
sudo権限を持つ非ルートユーザー。
サーバーにポイントされたドメイン名。
Nodejsがインストールされました。Rocky Linux 8サーバーにNodejsをインストールするためのガイドに従ってください。指定された2つの方法のいずれかを使用してください。
すべてが最新であることを確認してください。
sudo dnf update
ステップ1 - ファイアウォールを設定する
Rocky LinuxはFirewalldファイアウォールを使用しています。ファイアウォールのステータスを確認してください。
sudo firewall-cmd --state
running
これは、正常に稼働していることを示しています。
ファイアウォールは異なるゾーンで動作し、パブリックゾーンがデフォルトのゾーンであり、私たちはそれを使用します。ファイアウォールでアクティブなすべてのサービスとポートをリストしてください。
sudo firewall-cmd --permanent --list-services
次の出力を表示する必要があります。
cockpit dhcpv6-client ssh
HTTPおよびHTTPSポートを許可します。
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Etherpadアプリケーションで使用される9001ポートを開いてください。
sudo firewall-cmd --permanent --add-port=9001/tcp
ファイアウォールの状態を再確認してください。
sudo firewall-cmd --permanent --list-services
あなたは似たような出力を見るべきです。
cockpit dhcpv6-client http https ssh
変更を有効にするためにファイアウォールを再読み込みしてください。
sudo firewall-cmd --reload
ステップ2 - Gitをインストールする
Etherpadをインストールする前に、Gitをインストールする必要があります。次のコマンドを実行してGitをインストールします。
sudo dnf install git
インストールを確認してください。
git --version
git version 2.27.0
初期設定を追加してください。
git config --global user.name "YourName"
git config --global user.email "[email "
あなたが設定した構成をリストしてください。
git config --list
user.name=YourName
[email
ステップ3 - MariaDBをインストールする
Etherpadのデータを保存するためにMariaDBデータベースを使用するので、最初にインストールして設定する必要があります。
Rocky LinuxのAppStreamリポジトリにはMariaDBが含まれています。インストールされているMariaDBのすべての利用可能なバージョンを一覧表示するには、次のコマンドを実行してください。
sudo dnf module list mariadb
Last metadata expiration check: 1:15:26 ago on Thu 21 Oct 2021 10:20:01 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
mariadb 10.3 [d] client, galera, server [d] MariaDB Module
mariadb 10.5 client, galera, server [d] MariaDB Module
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
デフォルトのバージョンは10.3に設定されています。ただし、次のコマンドを使用して最新バージョンをインストールすることができます。
sudo dnf module enable mariadb:10.5
MariaDBをインストールします。
sudo dnf install mariadb-server
MariaDBサービスを有効にして起動します。
sudo systemctl enable mariadb --now
サービスの状態を確認してください。
sudo systemctl status mariadb
MariaDBサーバーを保護します。
sudo mysql_secure_installation
さまざまなプロンプトに直面します。それに対して次のように答えてください。
Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] Type y
Change the root password? [Y/n] Type n
Remove anonymous users? [Y/n] Type y
Disallow root login remotely? [Y/n] Type y
Remove test database and access to it? [Y/n] Type y
Reload privilege tables now? [Y/n] Type y
以下のコマンドを使用してMariaDBサーバーに接続できるようになりました。
sudo mysql
ステップ4 - MariaDBの設定
MariaDBシェルにログインします。
sudo mysql
Etherpadのために新しいデータベースを作成してください。
create database `etherpad_lite_db`;
新しいデータベースユーザーを作成します。
CREATE USER 'etherpaduser'@'localhost' identified by 'password';
強いパスワードを使用してください。
データベースに対するユーザーの権限を付与します。
grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to '<etherpaduser>'@'localhost';
MySQLシェルを終了します。
exit
ステップ5 - Etherpadをダウンロードしてインストールする
Etherpadをインストールするために、そのソースコードをダウンロードして構築します。
最初のステップは、次のコマンドを使用して新しいetherpadユーザーを作成することです。
sudo adduser --system --home /opt/etherpad --create-home --user-group etherpad
このコマンドは、--system ユーザーを作成します。これは、ログインできず、パスワードも持たないことを意味します。また、Etherpadをダウンロードする場所であるホームディレクトリ /opt/etherpad を設定します。--create-home フラグは、正しい権限を持つホームディレクトリを作成します。--user-group フラグは、ユーザー名と同じ名前のグループを作成します。
etherpadユーザーに切り替えて、アプリケーションをダウンロードしてインストールします。
sudo -u etherpad bash
/opt/etherpadディレクトリに切り替えます。
[etherpad@etherpad user] cd /opt/etherpad
Etherpadリポジトリを/opt/etherpadディレクトリにクローンします。
[etherpad@etherpad ~]$ git clone --branch master git://github.com/ether/etherpad-lite.git
新しくダウンロードしたディレクトリに切り替えてください。
[etherpad@etherpad ~]$ cd etherpad-lite
Etherpadのrun.shスクリプトを実行して、セットアップと依存関係のインストールを行います。
[etherpad@etherpad etherpad-lite]$ src/bin/run.sh
ブラウザでURL http://YOURSERVERIP:9001 を起動すると、Etherpadが起動します。次の画面が表示されます。
上記のインストールに問題があります。現在のシェルを開いたままにして、Nodeを前景で実行する必要があります。永続的なインストールをするには、Etherpadをサービスとして実行する必要があります。Etherpadの実行を停止するには、ターミナルでCtrl + Cを押してください。
ステップ6 - Etherpadを設定する
進む前に、いくつかの設定を行い、ニーズに応じてインストールを構成する必要があります。Etherpadは、インストールディレクトリ内のsettings.jsonファイルに設定を保存します。
ファイルを編集のために開いてください。
[etherpad@etherpad etherpad-lite]$ nano settings.json
設定ファイルはJSON形式です。最初に構成する必要があるのはデータベース設定です。
以下のコードを見つけて、その前に//を付けてコメントアウトしてください。
// "dbType": "dirty",
// "dbSettings": {
// "filename": "var/dirty.db"
// },
次に、以下のコードを見つけて、その値を次のように変更します。始めと終わりの/*と*/を削除することを忘れないでください。
"dbType" : "mysql",
"dbSettings" : {
"user": "etherpaduser",
"host": "localhost",
"port": 3306,
"password": "password",
"database": "etherpad_lite_db",
"charset": "utf8mb4"
},
最後に、少しスクロールダウンして trustProxy 設定を見つけ、その値を false から true に変更します。
"trustProxy": true,
この設定は、Nginxと一緒にEtherpadを動作させるために必要です。
作業が完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。
Etherpadユーザーシェルを終了します。
[etherpad@etherpad etherpad-lite]$ exit
ステップ7 - Etherpadサービスを作成する
Etherpadをブート時に開始し、systemctlを使用してプロセスを管理するために、サービスファイルを作成する必要があります。
サービスファイルを作成して開きます。
sudo nano /etc/systemd/system/etherpad.service
そのコードをそこに貼り付けてください。
[Unit]
Description=Etherpad, a collaborative web editor.
After=syslog.target network.target
[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad
Environment=NODE_ENV=production
ExecStart=/usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always
[Install]
WantedBy=multi-user.target
作業が完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。
新しい設定を取り込むためにサービスデーモンをリロードしてください。
sudo systemctl daemon-reload
Etherpadサービスを開始します。
sudo systemctl enable etherpad --now
サービスの状態を確認してください。
sudo systemctl status etherpad
? etherpad.service - Etherpad, a collaborative web editor.
Loaded: loaded (/etc/systemd/system/etherpad.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2021-10-21 15:06:53 UTC; 6s ago
Main PID: 47228 (node)
Tasks: 13 (limit: 11411)
Memory: 102.8M
CGroup: /system.slice/etherpad.service
??47228 /usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
.......
ステップ8 - Let's Encryptを使用してSSLをインストールする
Let's Encryptを使用してSSL証明書をインストールするには、Certbotツールをインストールする必要があります。
まず、EPELリポジトリをダウンロードしてインストールする必要があります。
sudo dnf install epel-release
次のコマンドを実行してCertbotをインストールします。
sudo dnf install certbot
SSL証明書を生成する。
sudo certbot certonly --standalone --agree-tos --preferred-challenges http -m [email -d example.com
上記のコマンドは、サーバーの/etc/letsencrypt/live/etherpad.example.comディレクトリに証明書をダウンロードします。
ディフィー・ヘルマン群証明書を生成します。
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Let's Encryptの自動更新のために、チャレンジ用のwebrootディレクトリを作成してください。
sudo mkdir -p /var/lib/letsencrypt
SSLを更新するためにCronジョブを作成します。これは毎日実行されて証明書を確認し、必要であれば更新します。それに先立って、まずはファイル/etc/cron.daily/certbot-renewを作成し、編集のために開きます。
sudo nano /etc/cron.daily/certbot-renew
次のコードを貼り付けてください。
#!/bin/sh
certbot renew --cert-name etherpad.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Ctrl + X を押してファイルを保存し、プロンプトが表示されたら Y を入力します。
タスクファイルの権限を変更して、実行可能にします。
sudo chmod +x /etc/cron.daily/certbot-renew
ステップ9 - Nginxをインストールして構成する
Rocky Linuxは古いバージョンのNginxを出荷しています。最新のバージョンをインストールするには、Nginxリポジトリを追加する必要があります。
/etc/yum.repos.d/nginx.repo ファイルを作成して編集のために開いてください。
sudo nano /etc/yum.repos.d/nginx.repo
そのコードをそこに貼り付けてください。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
作業が完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。
Nginxをインストールします。
sudo dnf install nginx
Nginxサービスを有効にしてください。
sudo systemctl enable nginx
次に、/etc/nginx/conf.d/etherpad.confを作成し、編集のために開きます。
sudo nano /etc/nginx/conf.d/etherpad.conf
そのコードをそこに貼り付けてください。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name etherpad.example.com;
access_log /var/log/nginx/etherpad.access.log;
error_log /var/log/nginx/etherpad.error.log;
ssl_certificate /etc/letsencrypt/live/etherpad.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/etherpad.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/etherpad.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
rewrite ^/$ / break;
rewrite ^/locales/(.*) /locales/$1 break;
rewrite ^/locales.json /locales.json break;
rewrite ^/admin(.*) /admin/$1 break;
rewrite ^/p/(.*) /p/$1 break;
rewrite ^/static/(.*) /static/$1 break;
rewrite ^/pluginfw/(.*) /pluginfw/$1 break;
rewrite ^/javascripts/(.*) /javascripts/$1 break;
rewrite ^/socket.io/(.*) /socket.io/$1 break;
rewrite ^/ep/(.*) /ep/$1 break;
rewrite ^/minified/(.*) /minified/$1 break;
rewrite ^/api/(.*) /api/$1 break;
rewrite ^/ro/(.*) /ro/$1 break;
rewrite ^/error/(.*) /error/$1 break;
rewrite ^/jserror(.*) /jserror$1 break;
rewrite ^/redirect(.*) /redirect$1 break;
rewrite /favicon.ico /favicon.ico break;
rewrite /robots.txt /robots.txt break;
rewrite /(.*) /p/$1;
proxy_pass http://127.0.0.1:9001;
proxy_buffering off;
proxy_set_header Host $host;
proxy_pass_header Server;
# proxy headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
# websocket proxying
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
we're in the http context here
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name etherpad.example.com;
return 301 https://$host$request_uri;
}
ファイルを保存するには、Ctrl + Xを押し、完了したらプロンプトに表示されるYを入力してください。
Nginxの設定ファイルの構文を確認してください。
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
次のエラーが表示された場合は、/etc/nginx/nginx.conf ファイルを編集して、変数 server_names_hash_bucket_size のサイズを追加または調整する必要があります。
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
ファイル /etc/nginx/nginx.conf を編集のために開いてください。
sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;の前に次の行を追加してください。
server_names_hash_bucket_size 64;
ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。その後、再度Nginxを確認してください。
最後に、新しい設定を有効にするためにNginxサービスを開始します。
sudo systemctl start nginx
ブラウザでURL https://etherpad.example.com を開くと、Etherpadのホームが表示されます。これを使用してドキュメントを編集したり、コラボレーターを招待したりできます。
Etherpadを更新中
Etherpadの更新は簡単です。最初のステップは、Etherpadユーザーシェルに切り替えることです。
sudo -u etherpad bash
/opt/etherpad/etherpad-lite ディレクトリに切り替えてください。
[etherpad@etherpad user] cd /opt/etherpad/etherpad-lite
/opt/etherpad/etherpad-liteディレクトリに最新のEtherpadリポジトリをプルします。
[etherpad@etherpad ~]$ git pull origin
Etherpadの最新バージョンをセットアップするには、Etherpadのrun.shスクリプトを実行してください。
[etherpad@etherpad etherpad-lite]$ src/bin/run.sh
結論
このチュートリアルでは、NginxサーバーでEtherpadコラボレーティブエディタをセットアップし、Let's Encrypt SSL証明書を使用してセキュリティを確保しました。あなたのEtherpadインストールは使用可能で、認証されたユーザー、プラグイン、ユーザーインターフェースのカスタマイズなど、さらなる機能を追加することができます。
質問がある場合は、下のコメントに投稿してください。
