Ubuntu20.04にPlausibleAnalyticsをインストールする方法
序章
Plausible Analytics は、シンプルさとプライバシーに重点を置いたElixirで記述されたオープンソースのセルフホストWeb分析アプリケーションです。 Webサイトの訪問者に関するデータをPostgreSQLおよびClickHouseデータベースに保存します。
このチュートリアルでは、Docker Composeを使用してPlausibleをインストールしてから、NginxをインストールしてPlausibleアプリのリバースプロキシとして機能させます。 最後に、Certbotを使用してLet’s Encrypt認証局からSSL証明書をダウンロードして構成することにより、安全なHTTPS接続を有効にします。
前提条件
このチュートリアルを完了するには、最初に次のものが必要です。
- UFWファイアウォールが有効になっているUbuntu20.04サーバー。 これらの要件の設定の詳細については、 Ubuntu20.04を使用した初期サーバー設定をお読みください。
- Dockerがインストールされています。 これを行うには、 Ubuntu20.04にDockerをインストールして使用する方法のステップ1を使用できます。 root 以外のユーザーが実行できるようにする場合は、オプションで、そのチュートリアルのステップ2に従うことができます。
docker
使用せずにコマンドsudo
- DockerComposeがインストールされています。 このソフトウェアをインストールするには、 Ubuntu20.04にDockerComposeをインストールして使用する方法のステップ1に従ってください。
注: DigitalOceanのワンクリックDockerイメージを使用している場合、これらの前提条件の手順はスキップできます。 このイメージには、Docker、Docker Compose、およびUFWがすでにインストールおよび構成されています。
選択したリージョンで新しいDockerイメージを起動し、 root ユーザーとしてログインして、チュートリアルを続行します。 オプションで、 sudo
すべてのコマンドの一部ですが、必須ではありません。
最後に、SSLを有効にするには、サーバーのパブリックIPアドレスを指すドメイン名が必要です。 これは次のようなものでなければなりません example.com
また plausible.example.com
、 例えば。 DigitalOceanを使用している場合は、コントロールパネルでドメインリソースを作成する方法について、DNSクイックスタートを参照してください。
すべての前提条件を満たしたら、ステップ1 に進み、Plausibleソフトウェアをダウンロードして起動します。
ステップ1-DockerComposeを使用したPlausibleAnalyticsのインストール
Plausibleは、ソフトウェアをセルフホストするために必要なすべての構成ファイルを含むGitリポジトリを作成しました。 最初のステップは、このリポジトリをサーバーに複製し、2つの構成ファイルを更新してから、Plausibleアプリとデータベースコンテナーを起動することです。
今すぐサーバーにログインします。
まず、 cd
に移動するコマンド /opt
ディレクトリ:
- cd /opt
次に、 git
リポジトリをGitHubから内の新しいディレクトリに複製するコマンド /opt
と呼ばれる plausible
:
- sudo git clone https://github.com/plausible/hosting plausible
これにより、必要なすべての構成ファイルがにプルされます /opt/plausible
. 新しく作成したディレクトリに移動します。
- cd plausible
編集する必要がある最初のファイルは plausible-conf.env
、設定する必要のあるいくつかの構成変数を含むファイル。
ファイルを開いて編集する前に、新しいランダムハッシュを生成します。
- openssl rand 64 | base64 -w 0 ; echo
これは openssl
64個のランダムな文字を生成するコマンド、および base64
それらをbase64エンコードするコマンド。 出力をクリップボードにコピーしてから、構成ファイルを開きます。
- sudo nano plausible-conf.env
このファイルには、入力する必要のある5つの変数が含まれています。
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here
メールアドレス、ユーザー名、パスワード、ベースURLを入力し、生成したランダムな文字を貼り付けます openssl
.
Note: The password you specify here must be at least six characters long. If you are using a bare IP address and not a domain name, make sure to precede it with http://
.
ファイルを保存します(CTRL+O
それから ENTER
の nano
)そしてエディタを閉じます(CTRL+X
).
このファイルに追加できる構成オプションは他にもありますが、この最小限のセットで稼働させることができます。 Plausibleの設定に関する詳細情報 plausible-conf.env
は、PlausibleAnalyticsの公式セルフホスティングドキュメントにあります。
今、あなたは更新する必要があります docker-compose.yml
ファイル。 このファイルは何ですか docker-compose
コマンドは、複数のDockerコンテナーを構成して起動するために使用します。 このファイルの1つのオプション、PlausibleがバインドするIPを変更する必要があります。
- sudo nano docker-compose.yml
もっともらしいコンテナを定義するセクションを見つけます。 それはで始まります plausible:
. そのセクションで ports:
定義を次のように更新します。
ports:
- 127.0.0.1:8000:8000
これにより、Plausibleは localhost インターフェースでのみリッスンし、公開されなくなります。 UFWファイアウォールを設定していても、Dockerネットワークの動作にいくつかの癖があるため、この手順を実行しなかった場合、Plausibleコンテナはポートで一般にアクセス可能になります。 8000
、そして次のステップで設定するNginxプロキシを介してのみアクセスできるようにします。
保存して閉じます docker-compose.yml
ファイル、次に使用 docker-compose
コンテナーをダウンロード、構成、および起動するには、次のようにします。
- sudo docker-compose up --detach
The --detach
フラグが伝えます docker-compose
ターミナルセッションから切り離して、バックグラウンドでコンテナを作成するには:
Output. . .
Starting plausible_plausible_events_db_1 ... done
Starting plausible_plausible_db_1 ... done
Starting plausible_mail_1 ... done
Starting plausible_plausible_1 ... done
これで、アプリコンテナとそれをサポートするすべてのメールおよびデータベースコンテナが実行されているはずです。 これを確認するには、 curl
localhostで実行されている新しいPlausibleコンテナのホームページを取得するコマンド:
- curl http://localhost:8000
Output<html><body>You are being <a href="/login">redirected</a>.</body></html>
一部のHTMLが端末に出力されている場合は、サーバーが稼働していることがわかります。
次に、Nginxをリバースプロキシに設定します。 localhost:8000
一般に。
ステップ2—Nginxのインストールと構成
NginxなどのWebサーバーをelixirサーバーの前に配置すると、キャッシュ、圧縮、静的ファイルの提供をより効率的なプロセスにオフロードすることで、パフォーマンスを向上させることができます。 Nginxをインストールし、Plausibleへのリバースプロキシリクエストを構成します。つまり、ユーザーからのリクエストをPlausibleに渡し、また元に戻します。
まず、パッケージリストを更新してから、を使用してNginxをインストールします apt
:
- sudo apt update
- sudo apt install nginx
ポートへのパブリックトラフィックを許可する 80
と 443
(HTTPおよびHTTPS)「NginxFull」UFWアプリケーションプロファイルの使用:
- sudo ufw allow "Nginx Full"
OutputRule added
Rule added (v6)
次に、で新しいNginx構成ファイルを開きます /etc/nginx/sites-available
ディレクトリ。 私たちは私たちと呼びます plausible.conf
ただし、別の名前を使用することもできます。
- sudo nano /etc/nginx/sites-available/plausible.conf
以下を新しい構成ファイルに貼り付けます。必ず置き換えてください。 your_domain_here
Plausibleサーバーを指すように構成したドメインを使用します。 これは次のようなものでなければなりません plausible.example.com
、 例えば:
server {
listen 80;
listen [::]:80;
server_name your_domain_here;
access_log /var/log/nginx/plausible.access.log;
error_log /var/log/nginx/plausible.error.log;
location / {
proxy_pass http://localhost:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
次のステップでCertbotにSSLの構成を任せるため、この構成は現時点ではHTTPのみです。 構成の残りの部分は、ログの場所を設定してから、すべてのトラフィックをに渡します http://localhost:8000
、前の手順で起動したPlausibleインスタンス。
ファイルを保存して閉じ、にリンクして構成を有効にします /etc/nginx/sites-enabled/
:
- sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/
使用する nginx -t
構成ファイルの構文が正しいことを確認するには、次のようにします。
- sudo nginx -t
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
そして最後に、 nginx
新しい構成を取得するサービス:
- sudo systemctl reload nginx
これで、PlausibleサイトがプレーンHTTPで利用できるようになります。 ロード http://your_domain_here
そしてそれはこのようになります:
サイトがHTTP経由で稼働しているので、CertbotおよびLet’sEncrypt証明書を使用して接続を保護します。
ステップ3—CertbotのインストールとSSL証明書の設定
CertbotとLet’sEncryptの無料認証局のおかげで、PlausibleアプリにSSL暗号化を追加するのに必要なコマンドは2つだけです。
まず、CertbotとそのNginxプラグインをインストールします。
- sudo apt install certbot python3-certbot-nginx
次に、実行します certbot
の --nginx
モードにし、Nginxで使用したのと同じドメインを指定します server_name
構成:
- sudo certbot --nginx -d your_domain_here
Let’s Encryptの利用規約に同意し、メールアドレスを入力するよう求められます。
その後、すべてのHTTPトラフィックをHTTPSにリダイレクトするかどうかを尋ねられます。 それはあなた次第ですが、これは一般的に推奨され、安全に行うことができます。
その後、Let’s Encryptがリクエストを確認し、Certbotが証明書をダウンロードします。
OutputCongratulations! You have successfully enabled https://plausible.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/plausible.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/plausible.example.com/privkey.pem
Your cert will expire on 2021-12-06. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Certbotは自動的にNginxをリロードして、新しい構成と証明書を取得します。 サイトをリロードすると、リダイレクトオプションを選択した場合、自動的にHTTPSに切り替わります。
これでサイトは安全になり、ステップ1で設定したデフォルトのユーザー詳細を使用して安全にログインできます。 次に、登録を確認するように求められ、設定したアドレスに確認コードが電子メールで送信されます。
デフォルトでは、この電子メールはサーバーから直接送信されます。これにより、さまざまなスパム防止対策が原因で問題が発生する可能性があります。 メールが届かない場合は、迷惑メールフォルダを確認してください。 そこにもない場合は、より適切なSMTPの詳細を設定する必要があります。 plausible-conf.env
ファイル。 メール設定の詳細については、公式のPlausibleセルフホスティングドキュメントを参照してください。
ログインに成功すると、最初のWebサイトをPlausibleで設定するためのプロンプトが表示されます。
これで、Plausible分析ソフトウェアが正常にインストールおよび保護されました。
結論
このチュートリアルでは、DockerComposeを使用してPlausibleAnalyticsアプリとそれに関連するヘルパーコンテナーを起動し、Nginxリバースプロキシをセットアップして、Let’sEncryptSSL証明書を使用して保護しました。
これで、Webサイトを設定し、PlausibleAnalyticsトラッキングスクリプトを追加する準備が整いました。 ソフトウェアの使用とサイトの設定の詳細については、公式のPlausibleAnalyticsドキュメントを参照してください。