次の記事は、Etherpadとは何かをすでに理解していることを前提としています。もしそうなら
そうでない場合は、ウィキペディアの記事で簡単に紹介できます。
Etherpadプロジェクトは十分に文書化されていますが、それは必ずしも簡単ではありません
単なるドキュメントから意味があります。この記事は、いくつかを凝縮することを目的としています
わかりやすい方法でプロジェクトwikiで利用可能なチュートリアル。
以下について説明します:
- Etherpadをサービスとしてインストールする
- 自己署名証明書を使用したTLSの有効化
-
mysql
の使用 データベース - EtherpadでのNginxの使用
Etherpadのインストール
現在のところ、Debian11はetherpad
を提供していません パッケージ。だから、私たちはしなければなりません
GitHubから手動でインストールします。ありがたいことに、手順は本当に簡単です(
#コード> ルートを示します):
- ユーザーを作成する
etherpad
それをetherpad
に割り当てます グループ:
#useradd --comment "Etherpad Service User"
--create-home --home-dir / usr / local / etherpad --user-group etherpad
- セットアップスクリプトをダウンロードして実行します。
#curl -sL https://deb.nodesource.com/setup_14.x
|bash-
-
nodejs
をインストールします 。git
も必要です 。
#apt install -y nodejs git
-
etherpad
に切り替えます ユーザーとプロジェクトリポジトリのクローンを作成します。
#su --etherpad
etherpad $ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
- 必要な依存関係をインストールします。
etherpad $ /usr/local/etherpad/src/bin/installDeps.sh
-
/ etc / systemd / system /
にsystemdユニットファイルを作成します ディレクトリ。
/etc/systemd/system/etherpad.service
:
[ユニット]
Description=Etherpadサービス
After =syslog.target network.target
[サービス]
Type =simple
User =etherpad
Group =etherpad
WorkingDirectory =/ usr / local / etherpad / src
環境=NODE_ENV=本番
ExecStart =/ usr / bin / node --experimental-worker /usr/local/etherpad/src/node_modules/ep_etherpad-lite/node/server.js
[インストール]
WantedBy =multi-user.target
- ポートを開くためのファイアウォールなどを許可する
9001
。そして、ついに私たちは始めることができます
etherpad
サービス:
#systemctl start etherpad

まだやるべき設定はたくさんあります。ただし、ブラウザでetherpadインスタンスを表示できるようになりました。

自己署名証明書を使用したTLSの有効化
認証局(CA)によって証明書に署名してもらいたい場合は、そうすることができます。ただし、ここではすべてを自己署名します。ここにあるwikiの記事を参照しています。
settings.json
を開きます etherpad
で ディレクトリを作成し、SSLセクションを見つけます
(174行目あたりにある必要があります)それに応じて変更します。
"ssl":{
"キー": "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.key"、
"cert": "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.crt"
}
ディレクトリを作成します/usr / local / etherpad / ssl
etherpad
として ユーザー、 cd
そのディレクトリに移動し、次のコマンドを実行します。
必要なパスフレーズを提供するサーバーキーを生成します。
openssl genrsa -des3 -out epl-server.key 4096
次に、証明書を生成します。
openssl req -new -key epl-server.key -out epl-server.csr
openssl x509 -req -days 9000 -in epl-server.csr -signkey epl-server.key -out epl-server.crt

次に、そのファイルを使用して別のキーを作成します。そうすれば、サーバーが起動するたびにパスフレーズを提供する必要がなくなります。
キーの名前を変更します。
mv epl-server.key epl-server.key.secure
次に、2番目のキーを生成します。
openssl rsa -in epl-server.key.secure -out epl-server.key
次に、証明書に自己署名する必要があります。そのためには、署名する別のキーを生成する必要があります
epl-server.key
。手順は上記と同様です。
openssl genrsa -des3 -out own-ca.key 4096
署名証明書を作成します。
openssl req -new -x509 -days 9000 -key own-ca.key -out own-ca.crt
これは私達にいくつかの情報を求めます。これらはデフォルトのままにすることができますが、共通名(CN)は独自のキーのCNとは異なる必要があります。したがって、CNに「(CA)」を追加するだけです。

最後に、 epl-server.key
に署名しましょう 私たちのCAの証明書で。
openssl x509 -req -days 9000 -in epl-server.csr -CA own-ca.crt -CAkey own-ca.key -set_serial 001 -out epl-server.crt
これにより、自己署名された epl-server.crt
が作成されます。 ファイル。
次に、ファイルに安全なアクセス許可があることを確認します。
chmod 400 epl-server.key
chown etherpad epl-server.key
chmod 400 epl-server.crt
chown etherpad epl-server.crt

他のファイルは、別の場所に移動するか、単に削除することができます。とりあえずそのままにしておきます。それでも、 etherpad
を再起動できます 今すぐサービスを提供し、 https
を取得します 証明書に適切な情報が提供されていないため、ブラウザは警告を表示し、接続を拒否することもありますが、機能しています。

EtherpadでのMySQLの使用
これまで、Etherpadインスタンスは dirtyDB
を使用してきました テスト/開発目的のみに適していないデータベース。インスタンスを本番環境に完全に適合させるために、 mysql
に切り替えます。 。繰り返しになりますが、インストール手順のクレジットはすべてプロジェクトwikiに送られます。すべてを1か所にまとめるために、別のリンクにジャンプしないように決めました。
それでは、必要なパッケージをインストールしましょう(私は mariadb
を使用しています しかし、物事は基本的に同じです):
#apt install -y mariadb-server
次に、 mysql_secure_installation
を実行します 必要なパラメータを提供するルートとして。
それが完了したら、データベースのセットアップに進むことができます。
1.次のコマンドを使用してmysqlに接続します。
#mysql -u root -p
2.中に入ると、データベースを作成します。
CREATE DATABASE `etherpad_lite_db`;
はい、それらはdb名の周りのバックティックです。そして、セミコロンを忘れないでください😉
3.独自のユーザー名とパスワードを指定するデータベースユーザーを作成します。
CREATE USER'
4.新しいユーザーの権限を変更します。
GRANT CREATE、ALTER、SELECT、INSERT、UPDATE、DELETE on`etherpad_lite_db`。*to'etherpad'@'localhost';
ここでは、 etherpad
以前に作成したユーザーでした。
データベースが作成されたので、 exit
できるようになりました プロンプトから、 etherpad
に進みます サービスは、 settings.json
を変更することで、私たちが達成した成果を認識します。 ファイル。
dbtype
を検索します テキストエディタを使用すると、196行目あたりになり、次のように変更されます。
"dbType": "mysql"、
"dbSettings":{
"user": "etherpad"、
"ポート": "https://1118798822.rsc.cdn77.org/var/run/mysqld/mysqld.sock"、
"パスワード": "
"データベース": "etherpad_lite_db"、
"charset": "utf8mb4"
}
もちろん、ここではパスワードを公開しません。すべてのアカウントに同じものを使用しているため、これは危険です(いいえ、実際にはそうではありません。パスワードを再利用しないでください)。
これで、サービスを再開できます。
#systemctl restart mysqld etherpad
EtherpadでのNginxの使用
それでは、 nginx
を構成しましょう 標準のhttp/sトラフィックをetherpad
に転送します サービス。
nginx
があることを確認しましょう インストール済み:
#apt install nginx
/ etc / nginx / sites-available / etherpad
にファイルを作成します 内容は次のとおりです。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name localhost; # CHANGE THIS!
access_log /var/log/nginx/eplite.access.log;
error_log /var/log/nginx/eplite.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/epl-server.crt;
ssl_certificate_key /etc/nginx/ssl/epl-server.key;
location / {
proxy_pass https://127.0.0.1:9001;
proxy_buffering off;
proxy_set_header Host $host;
proxy_pass_header Server;
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; # apparently 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;
}
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name localhost; # CHANGE THIS!
return 301 https://127.0.0.1:9001/;
}
次に、次のコマンドを実行します。
doas mkdir / etc / nginx / ssl
doas cp /usr/local/etherpad/ssl/epl-server.crt /etc/nginx/ssl/
doas cp /usr/local/etherpad/ssl/epl-server.key /etc/nginx/ssl/
ご覧のとおり、SSL証明書とキーをnginxにコピーしているだけです。
Nginxには、有効になっているデフォルトの構成ファイルが付属しています。それを修正しましょう。
#rm / etc / nginx / sites-enabled / default
そして、 etherpad
を有効にしましょう nginxの構成ファイル。
#ln -s / etc / nginx / sites-available / etherpad / etc / nginx / sites-enabled / etherpad
構成に間違いがないことを確認してください。
#nginx -t
最後にもう一度サービスを再開しましょう。
#systemctl restart etherpad mysqld nginx
基本的にセットアップは終了です。もちろん、もっと多くのことができますが、これを使用できるようにするには(独自のCAをセットアップしたという事実などの明らかなことを変更する以外に)十分に行ったと思います。読者を離れて、
記事全体でリンクしたさまざまなリソース。今のところ以上です。ずっと読んでくれてありがとう。 unixcop.comで他の記事をチェックすることを忘れないでください。