この記事では、Debian 11 上で Docker を使用して Plausible Analytics をインストールし、自分のウェブサイトの統計を作成する方法を説明します。
PS:この記事は、Docker をインストールできる任意の Linux ディストリビューションにも適用されます。
なぜ自分のウェブサイトの統計を作成するのか?#
理由は簡単です。自分のウェブサイトのデータは自分で管理したいからです。あなたは自分のウェブサイトのデータが第三者によって「いわゆる」ビッグデータ分析会社に売られることを望みますか?
Plausible Analytics は、プライバシー保護で知られるウェブサイト統計ソフトウェアで、数ヶ月の試用を経て、基本的にすべてのニーズを満たすことができ、商業的な Google Analytics などの製品に代わることができます。
Plausible Analytics のインストール#
/opt/plausible
ディレクトリにインストールすることをお勧めします:
mkdir -p /opt/plausible
cd /opt/plausible
まず、docker-compose.yaml
ファイルを作成する必要があります。実際のニーズに応じてパラメータを変更してください:
version: "3.8"
services:
mail:
image: bytemark/smtp
restart: always
plausible_db:
image: postgres:12
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
restart: always
plausible_events_db:
image: yandex/clickhouse-server:21.3.2.5
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
restart: always
plausible:
image: plausible/analytics:latest
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
- mail
- geoip
volumes:
- ./geoip:/geoip:ro
ports:
- 127.0.0.1:8000:8000
env_file:
- plausible-conf.env
restart: always
geoip:
image: maxmindinc/geoipupdate
env_file:
- geoip.env
volumes:
- ./geoip:/usr/share/GeoIP
volumes:
db-data:
driver: local
event-data:
driver: local
geoip:
driver: local
次に、同じディレクトリに geoip
フォルダと plausible-conf.env
ファイルを作成します:
mkdir -p geoip
touch plausible-conf.env
touch geoip.env
plausible-conf.env
を編集し、公式のチュートリアルに従って設定します。あなたのウェブサイトの URL が https://stat.example.com/
であると仮定すると、以下のようになります:
ADMIN_USER_EMAIL=管理者のメールアドレス
ADMIN_USER_NAME=管理者のユーザー名
ADMIN_USER_PWD=管理者のパスワード
BASE_URL=https://stat.example.com/
SECRET_KEY_BASE=ランダムな文字列
MAILER_EMAIL=ウェブサイト通知用メールアドレス
SMTP_HOST_ADDR=SMTP ホスト名
SMTP_HOST_PORT=SMTP ポート
SMTP_USER_NAME=SMTP ユーザー名
SMTP_USER_PWD=SMTP パスワード
DISABLE_REGISTRATION=true
GEOLITE2_COUNTRY_DB=/geoip/GeoLite2-Country.mmdb
SECRET_KEY_BASE
には 64 バイトのランダムな文字列が必要です。openssl rand -base64 64
または pwgen 64
を使用して生成できます。
DISABLE_REGISTRATION
を true
に設定すると、ユーザー登録が無効になります。
SMTP には、市場に出回っているすべてのメール送信製品を使用できます。また、面倒な人は Gmail などの無料サービスを直接使用することもできますし、Mailcow を自分で構築して使用することもできます。チュートリアルはこちらにあります。
次に、Maxmind アカウントを登録し、登録が成功したら左側のメニュー Account
> Manage License Keys
で Generate new license key
をクリックして License key
を取得し、Account ID
とこの License key
を記録します:
その後、geoip.env
を編集し、以下の情報を入力します:
GEOIPUPDATE_EDITION_IDS=GeoLite2-Country
GEOIPUPDATE_FREQUENCY=168
GEOIPUPDATE_ACCOUNT_ID=あなたの Account ID
GEOIPUPDATE_LICENSE_KEY=あなたの License Key
次に、イメージを取得して起動します:
docker-compose pull
docker-compose up -d
起動が完了したら、http://127.0.0.1:8000/
で Plausible を試用できます。外部サービスを提供する必要がある場合は、Nginx のリバースプロキシを設定する必要があります。
Nginx を再起動すると、https://stat.example.com/
にアクセスできるようになります。
Plausible Analytics の更新#
万能な Docker 更新方法:
docker-compose pull
docker-compose up -d
docker system prune
Plausible Analytics のバックアップ#
主にデータベースのバックアップです。関連コマンドは以下の通りです:
docker exec -t plausible_plausible_db_1 pg_dumpall -c -U postgres | gzip > dump_$(date +"%Y-%m-%d_%H_%M_%S").gz
現在の時間に基づいて PostgreSQL データベースをダンプし、gzip
で圧縮パッケージ化します。
Plausible Analytics のアンインストール#
docker-compose down
rm -rf /opt/plausible
docker image rm postgres:12
docker image rm maxmindinc/geoipupdate:latest
docker image rm plausible/analytics:latest
docker image rm yandex/clickhouse-server:21.3.2.5
docker image rm bytemark/smtp:latest
docker volume rm plausible_db-data
docker volume rm plausible_event-data
WordPress 追加方法#
使用しているテーマの header.php
ファイルを直接編集し、<?php wp_head(); ?>
の後に統計コードを追加するだけです。
テーマを変更したくない場合は、公式のプラグインを直接インストールすることもできます。
VuePress 追加方法#
VuePress v1.x
を使用している場合は、.vuepress/config.js
ファイルを編集し、module.exports
に以下を追加します:
['script', {}, `
const script = document.createElement('script');
script.async = true;
script.defer = true;
script['data-domain'] = '統計ドメイン';
script.src = 'https://stat.example.com/js/plausible.js';
document.head.appendChild(script);`
],
VuePress v2.x
を試用している場合は、.vuepress/config.ts
ファイルを編集し、export default
に以下を追加します:
['script', {}, `
const script = document.createElement('script');
script.async = true;
script.defer = true;
script['data-domain'] = '統計ドメイン';
script.src = 'https://stat.example.com/js/plausible.js';
document.head.appendChild(script);`
],
Next.js 追加方法#
次のプラグイン をインストールし、以下のようなコードを使用します:
import PlausibleProvider from 'next-plausible'
export default function MyApp({ Component, pageProps }) {
return (
<PlausibleProvider domain="統計ドメイン" customDomain="https://stat.example.com" selfHosted>
<Component {...pageProps} />
</PlausibleProvider>
)
}
その他の追加方法については、公式のドキュメントを参照してください。