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

DebianでのEtherpadのセットアップ

次の記事は、Etherpadとは何かをすでに理解していることを前提としています。もしそうなら
そうでない場合は、ウィキペディアの記事で簡単に紹介できます。

Etherpadプロジェクトは十分に文書化されていますが、それは必ずしも簡単ではありません
単なるドキュメントから意味があります。この記事は、いくつかを凝縮することを目的としています
わかりやすい方法でプロジェクトwikiで利用可能なチュートリアル。

以下について説明します:

  • Etherpadをサービスとしてインストールする
  • 自己署名証明書を使用したTLSの有効化
  • mysqlの使用 データベース
  • EtherpadでのNginxの使用

Etherpadのインストール

現在のところ、Debian11はetherpadを提供していません パッケージ。だから、私たちはしなければなりません
GitHubから手動でインストールします。ありがたいことに、手順は本当に簡単です(
ルートを示します):

  1. ユーザーを作成するetherpad それをetherpadに割り当てます グループ:

    #useradd --comment "Etherpad Service User" --create-home --home-dir / usr / local / etherpad --user-group etherpad
  2. セットアップスクリプトをダウンロードして実行します。

    #curl -sL https://deb.nodesource.com/setup_14.x | bash-
  3. nodejsをインストールします 。 gitも必要です 。

    #apt install -y nodejs git
  4. etherpadに切り替えます ユーザーとプロジェクトリポジトリのクローンを作成します。

    #su --etherpad

    etherpad $ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. 必要な依存関係をインストールします。

    etherpad $ /usr/local/etherpad/src/bin/installDeps.sh
  6. / 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

  7. ポートを開くためのファイアウォールなどを許可する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''@'localhost'は''で識別されます;

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で他の記事をチェックすることを忘れないでください。


Debian
  1. Debian 8でMySQLを使用してマスターマスターレプリケーションを設定する(Jessie)

  2. Debian 9でのNFSサーバーとクライアントのセットアップ(ストレッチ)

  3. Debian 9システムでSSHキーを設定する-その方法は?

  1. Debian 9StretchLinuxにSpotifyをインストールする方法

  2. DebianLinuxでのNginxリバースプロキシサーバーのセットアップ

  3. Debian – Mod4を素晴らしいものに設定しますか?

  1. DebianSqueezeでのProFTPd+TLSの設定

  2. Ssh – Debian 8.0でDiffie-hellman-group1-sha1キー交換を有効にする方法は?

  3. Debian – Devuan / debianのインストールを開始できませんか?