GNU/Linux >> Linux の 問題 >  >> Debian

Debian11にNginxとSSLを使用してEtherpadをインストールする方法

Etherpadは、GoogleDocsやZohoWriterなどのサービスに代わる無料のオープンソースです。 Etherpadは、チーム向けのコラボレーション型のリアルタイムテキストエディタです。EtherpadはWebベースのテキストエディタであるため、いつでもどこからでもアクセスできます。

Etherpadの変更はすべてリアルタイムで行われ、また、etherpadはチームのバージョン管理と組み込みのフォーマットをサポートしています。 Etherpadは、さまざまなプラグインをサポートする高度にカスタマイズ可能なエディターです。また、doc、pdf、odt、markdownなどの最新のドキュメント形式もサポートしています。

このチュートリアルでは、Debian11BullseyeにEtherpadReal-timeCollaborativeEditorをインストールして設定します。このチュートリアルでは、データベースバックエンドとしてMariaDBを使用し、セキュアHTTPSを有効にしたリバースプロキシとしてNginxWebサーバーを使用します。最終的には、Etherpadがインストールされ、安全なHTTPS暗号化によって保護されます。

前提条件

このチュートリアルを完了するには、最初に次の要件が必要です。

  • Debian11サーバー。テストには1GBのRAMを使用できます。本番環境では、環境と使用法に応じて、より多くのリソースを使用できます。
  • root権限を持つroot以外のユーザー。オプションで、rootユーザーを使用できます。
  • インストールのドメイン名。サーバーのIPアドレスを指していることを確認してください。この例では、ドメイン' etherpad.example.ioを使用します '。

これらの前提条件をすべて満たしたら、最初のセクションに進んでインストールを開始します。

パッケージの依存関係のインストール

Etherpadは、Node.js上に構築されたWebアプリケーションです。この記事の執筆時点では、Etherpadの最新バージョンはxxxであり、少なくとも Node.jsが必要です。 バージョン14.x 。このセクションでは、Node.jsを含むいくつかのパッケージ依存関係をDebian11サーバーにインストールします。

1.まず、パッケージインデックスリストを更新してから、次のコマンドを実行してビルドの依存関係をインストールします。

sudo apt update
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y

2.このチュートリアルでは、Node.jsの複数のバージョンを提供するNodesourceリポジトリからNode.jsをインストールします。このチュートリアルでは、Node.jsバージョン 16.xを使用します Etherpadのインストール用。

次に、次のコマンドを実行して、Node.jsリポジトリをシステムに追加します。このコマンドは、Nodesourceリポジトリを自動的に追加して、パッケージインデックスを更新します。

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

3.次に、以下のコマンドを実行して、NodesourceリポジトリからNode.js16.xをインストールします。

sudo apt install nodejs -y

4.インストールが完了したら、次のコマンドを使用してNode.jsのバージョンを確認します。

node --version

'blahblah'などの出力が表示されます。

このセクションでは、NodesourceリポジトリからEtherpadとNode.jsバージョン16.xのパッケージ依存関係をインストールしました。次に、MariaDBデータベースをインストールして構成します。

MariaDBデータベースのインストールと構成

このセクションでは、MariaDBデータベースをDebian11サーバーにインストールします。次に、MariaDBのルートパスワードを設定し、最後に、Etherpadの新しいデータベースとユーザーを作成します。

1.デフォルトでは、MariaDBパッケージはDebian11リポジトリで利用できます。次のコマンドを実行してインストールします。

sudo apt install mariadb-server -y

2. MariaDBのインストールが完了すると、自動的に実行されて有効になります。

MariaDBは、MariaDBのルートパスワードの設定など、MariaDBを安全にデプロイするのに役立つコマンドラインツールを提供します。コマンド'mysql_secure_installation'を実行します 以下のように。

mysql_secure_installation

ここで、MariaDBのデプロイに関連するいくつかの質問が表示され、ルートパスワードを設定するように求められます。

3. mariaDBのデフォルトのrootユーザーにはパスワードがないので、 ENTERを押します。 。

Enter current password for root (enter for none):
OK, successfully used password, moving on...

4.ここで、「 unix_socket」を使用して認証方法を切り替えるように求められます。 '、「 Y」と入力します '同意します。

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!

5.「Y」と入力します 'MariaDBの新しいルートパスワードを設定します。次に、強力なパスワードを入力して繰り返します。

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

6.デフォルトのMariaDBインストールには、匿名ユーザーが付属しています。 「Y」と入力して削除します。

Remove anonymous users? [Y/n] Y
 ... Success!

7.ここで、MariaDBrootユーザーのリモートログインを無効にします。 ' Yと入力します '同意します。

Disallow root login remotely? [Y/n] Y
 ... Success!

8.次に、「 Y」と入力します 'デフォルトのデータベースに同意して削除する'テスト 'およびその上にあるすべての特権。

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

9.最後に、テーブル権限をリロードして新しい構成を適用します。 ' Yと入力します '同意してENTERを押します 。

Reload privilege tables now? [Y/n] Y
 ... Success!

すべての設定が完了すると、「すべて完了しました!」などの出力メッセージが表示されます。 '以下のように。

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

10.次に、次のコマンドを実行して、MariaDBシェルにログインします。 MariaDBルートパスワードの入力を求められます。パスワードを入力してください。

mysql -u root -p

11.次に、次のクエリを実行して、Etherpad用の新しいデータベースとユーザーを作成します。この例では、新しいデータベース' etherpad_lite_dbを作成します 'ユーザーと'etherpaduser 'とパスワード'StrongPasswordEtherpadDB '。必ずパスワードを変更してください。

CREATE DATABASE etherpad_lite_db;
CREATE USER [email protected] IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to [email protected];

12.その後、すべてのテーブル権限をリロードして新しい構成を適用し、「exit」クエリを実行してmariaDBシェルからログアウトします。

FLUSH PRIVILEGES;
EXIT

このセクションでは、Debian 11でのMariaDBデータベースのインストールと構成を完了しました。また、Etherpadのデータベースとユーザーを作成しました。次に、Etherpadのソースコードをダウンロードしてインストールします。

Etherpadのインストールと構成

このセクションでは、ソースコードからEtherpadをインストールし、MariaDBをデータベースとして構成して、Etherpad用の新しいsystemdファイルを作成します。最終的に、Etherpadはsystemdサービスとして実行されます。

1. Etherpadソースコードをダウンロードする前に、新しいユーザー' etherpadを作成します。 'システム上。このユーザーは、Etherpadインストーラースクリプトの実行とEtherpadサービスの実行に使用されます。

' adduserを実行します '新しいユーザーを作成するには、以下のコマンド' etherpad '。また、ホームディレクトリを'/ opt / etherpad-liteに定義します。 '。このディレクトリは、すべてのEtherpadソースを保存するために使用されます。

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

2.次に、ディレクトリ' / optに移動します。 'そしてgitコマンドを使用してEtherpadソースのクローンを作成します。

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

3.その後、「etherpad-lite」ディレクトリの所有権をユーザー「 etherpad」に変更します。 'およびグループ'etherpad '。

sudo chown -R etherpad:etherpad etherpad-lite

4.次に、ディレクトリ' etherpad-lite /に移動します。 'そしてインストーラスクリプト'installDeps.sh'を使用してすべてのNode.js依存関係をインストールします 以下のように。インストーラースクリプト'installDeps.sh 'root以外のユーザー'etherpad'として実行されます。

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

すべてのパッケージの依存関係のインストールが完了するのを待ちます。

次に、ファイル' settings.jsonを変更します 'Etherpadのインストールを設定します。 nanoエディターを使用して、そのファイルを編集したり、好みのエディターを使用したりできます。

nano settings.json

行の一番上で、タイトルを自分のタイトルに変更します。この例では、タイトル' Entherpad Johndoeを使用しています。 '。

  "title": "Etherpad Johndoe",

このチュートリアルでは、EtherpadはNginxリバースプロキシで実行されます。また、ローカルホストでEtherpadを実行することはセキュリティにとって良いことです。ここで、' ipを変更します :'構成を' 127.0.0.1' 。この構成では、Etherpadはローカルホストでのみ実行されます。

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

デフォルトでは、EtherpadはデータベースとしてSQLiteを使用します。これらの行をすべてコメントして無効にします。

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

次に、MariaDBデータベース構成を以下に入力します。また、データベース名、ユーザー、パスワードを必ず変更してください。

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

ファイルを保存して終了します。

次に、新しいsystemdサービスファイル' etherpad.serviceを作成します 'ディレクトリ内'/ etc / systemd / system '。このファイルには、Etherpadがサーバー上で正しく実行するために必要なすべての構成の詳細が含まれています。 nanoエディターを使用して作成します。

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

次の構成をファイルに追加します。

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/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

このサービスファイルは、ユーザーおよびグループ「etherpad」として実行されます。そして、オプション' Environment =NODE_ENV =productに気付くでしょう。 'は、Etherpadアプリケーションが実稼働環境で実行されることを意味します。 ' ExecStart =.. 'オプションは、Etherpadアプリケーションを実行するためのデフォルトのコマンドです。

ファイルを保存して閉じます。

次に、systemdマネージャーをリロードして、新しいサービスファイルを適用します。

sudo systemctl daemon-reload

その後、etherpadサービスを開始して有効にし、次のコマンドを実行してそのステータスを確認します。

sudo systemctl enable --now etherpad
sudo systemctl status etherpad

以下のスクリーンショットのような出力が表示されます。イーサパッドサービスが'アクティブ(実行中)になりました '、システムの起動時に自動的に起動し、デフォルトのポート' 9001を使用してローカルホストで実行されます '。

この時点で、Etherpadのインストールは完了です。次に、Nginxをインストールし、Etherpadアプリケーションのリバースプロキシとして設定します。

Nginxのインストールと構成

実稼働環境では、アプリケーションの前にリバースプロキシを配置することを常にお勧めします。これにより、アプリケーションのパフォーマンスとセキュリティが向上します。このセクションでは、NginxWebサーバーをリバースプロキシとしてインストールおよび構成します。最終的には、Etherpadをドメイン名で実行し、HTTPSプロトコルで保護することになります。

1.最初に、以下のコマンドを実行してNginxパッケージをインストールします。

sudo apt install nginx -y

2.ここで、DebianシステムにUFWファイアウォールがある場合。 ' ufw を実行して、HTTPおよびHTTPSポート(80および443)へのパブリックアクセスを許可します '以下のコマンド。

sudo ufw allow "Nginx Full"

次の出力が表示されます。

Rule added
Rule added (v6)

3.次に、新しいNginx仮想ホストファイル' etherpadを作成します 'ディレクトリ内'/ etc / nginx / sites-available / '。 nanoエディターまたはお好みのエディターを使用して作成します。

sudo nano /etc/nginx/sites-available/etherpad

次の構成をコピーしてファイルに貼り付けます。また、ドメイン名とSSL証明書パスを独自の情報に置き換えます。 SSL証明書の場合、Letsencryptを使用してSSL証明書を自由に生成できます。

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  etherpad.example.io;
    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;
    listen       [::]:443 ssl http2;
    server_name  etherpad.example.io;

    access_log  /var/log/nginx/eplite.access.log;
    error_log   /var/log/nginx/eplite.error.log;

    ssl_certificate      /etc/letsencrypt/live/etherpad.example.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.io/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;
    }
}

このNginx仮想ホストファイルは、トラフィックをHTTPから安全なHTTPSプロトコルに自動的にリダイレクトします。エラーが発生した場合のデバッグについては、ログファイル'/var/log/nginx/eplite.error.logを確認してください。 '。すべてのクライアントリクエストはバックエンドに送信されます'proxy_pass 'ローカルホストポート9001で実行されているEtherpadアプリケーション。

4.ファイルを保存して閉じ、ファイル' etherpadのシンボリックリンクを作成して仮想ホスト構成をアクティブ化します。 'ディレクトリ'/etc / nginx / sites-enabled '。

sudo ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/

5.次に、コマンド' nginx -t'を実行します。 nginx構成を確認します。このコマンドは、構成の構文エラーをチェックします。

sudo nginx -t

以下のような出力が得られます。出力メッセージ'構文はOKです 'はエラーがないことを意味します。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful.

6.最後に、Nginxサービスを再起動して、新しいNginx仮想ホストファイルを適用します。

sudo systemctl restart nginx

このセクションでは、EtherpadアプリケーションのリバースプロキシとしてのNginxのインストールと構成を完了しました。これで、Etherpadがhttp://etherpad.example.ioで利用できるようになりました。

Etherpadのインストールを確認する

1. Webブラウザーを開き、アドレスにドメイン名「http://etherpad.example.io/」を入力します。そして、以下のように安全なHTTPS接続に自動的にリダイレクトされます。

2.新しいパッドを作成するには、列にパッドの名前を入力し、[ OK]ボタンをクリックします。 '。

これで、Etherpad Real-timeCollaborationEditorが次のように表示されます。

結論

このチュートリアルでは、Debian11サーバーにEtherpadReal-timeCollaborativeEditorをインストールして構成しました。また、EtherpadアプリケーションのリバースプロキシとしてNginxをインストールして構成しました。

これで、チームのコラボレーションエディターとしてetherpadを使用する準備が整いました。 Etherpadの詳細については、Etherpadの公式ドキュメントを確認してください。


Debian
  1. Debian9にNginxでPhorumをインストールする方法

  2. Debian11にMariaDBをインストールして保護する方法

  3. Debian11にMariadb10をインストールして設定する方法

  1. Nginxを使用してOpenCartをインストールし、Debian10で暗号化する方法

  2. Debian10にNginxを使用してTextpatternCMSをインストールする方法

  3. Debian11にNginxを使用してWonderCMSをインストールする方法

  1. Drupal 9をNginxでインストールし、Debian10でSSLを暗号化する方法

  2. SuiteCRMをApacheと無料でインストールする方法Debian11でSSLを暗号化する

  3. Debian11にNginxとSSLを使用してAbanteCartをインストールする方法