如何在Ubuntu 22.04上安装Plausible Analytics

介紹

Plausible Analytics是一個開源的、自行託管的網頁分析應用程式,使用Elixir編寫,專注於簡潔和隱私。它將有關您網站訪客的數據存儲在PostgreSQL和ClickHouse數據庫中。

在本教程中,您將使用Docker Compose安裝Plausible,然後安裝Nginx作為Plausible應用程序的反向代理。最後,您將使用Certbot從Let’s Encrypt Certificate Authority下載並配置SSL證書,以啟用安全的HTTPS連接。

先決條件

要完成此教程,您首先需要以下條件:

  • 一台安裝有Ubuntu 22.04的伺服器,啟用了UFW防火牆。請閱讀我們的使用Ubuntu 22.04進行初始伺服器設置以了解有關設置這些要求的更多信息。
  • Docker已安裝。您可以使用步驟 1,在如何在 Ubuntu 22.04 上安裝和使用 Docker中完成此操作。如果您希望非root用戶能夠運行docker命令而無需使用sudo,您也可以遵循該教程的步驟 2。
  • 已安裝Docker Compose。請遵循如何在 Ubuntu 22.04 上安裝和使用 Docker Compose中的步驟 1來安裝此軟件。

注意:如果您使用 DigitalOcean 的一鍵式 Docker 映像,則可以跳過這些先決步驟。此映像將已經安裝和配置了Docker、Docker Compose和UFW。

在您選擇的地區啟動一個新的Docker映像,然後以root用戶身份登錄並按照教程進行操作。選擇性地,您可以省略所有命令中的sudo部分,但這並非必要。

最後,要啟用SSL,您需要一個指向您服務器的公共IP地址的域名。這應該是像example.complausible.example.com這樣的名稱。如果您使用DigitalOcean,請參閱我們的DNS快速入門以了解在我們的控制面板中創建域名資源的信息。

當您滿足所有先決條件後,請繼續執行步驟 1,在那裡您將下載並啟動 Plausible 軟件。

步驟 1 – 使用 Docker Compose 安裝 Plausible Analytics

Plausible 已經創建了包含所有所需配置文件以自行託管該軟件的 Git 存儲庫。您的第一步將是將此存儲庫克隆到您的服務器,更新兩個配置文件,然後啟動 Plausible 應用程序和數據庫容器。

現在登錄到您的服務器。

首先,使用cd命令切換到/opt目錄:

  1. cd /opt

然後使用git命令將存儲庫從 GitHub 克隆到/opt中的一個名為plausible的新目錄中:

  1. sudo git clone https://github.com/plausible/hosting plausible

這將把所有必要的配置文件拉入/opt/plausible。進入新建的目錄:

  1. cd plausible

我們需要編輯的第一個文件是plausible-conf.env,這個文件中有幾個我們需要設置的配置變量。

在打開文件進行編輯之前,生成一個新的隨機哈希:

  1. openssl rand 64 | base64 -w 0 ; echo

這使用openssl命令生成 64 個隨機字符,並使用base64命令對它們進行 base64 編碼。將輸出複製到剪貼板,然後打開配置文件:

  1. sudo nano plausible-conf.env

該文件包含五個變量,您需要填寫:

plausible-conf.env
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 生成的隨機字符粘貼進來。

注意:在此指定的密碼必須至少為六個字符長。如果您使用的是裸 IP 地址而不是域名,請確保在其之前加上 http://

保存文件(在 nano 中按 CTRL+O 然後 ENTER),然後退出編輯器(按 CTRL+X)。

您可以將更多配置選項添加到此文件中,但此最小集將使您能夠運行起來。有關通過 plausible-conf.env 配置 Plausible 的更多信息,請參閱 官方 Plausible Analytics 自托管文檔

現在您需要更新 docker-compose.yml 文件。該文件是 docker-compose 命令用於配置和啟動多個 Docker 容器的文件。我們需要更改此文件中的一個選項:Plausible 綁定的 IP。

  1. sudo nano docker-compose.yml

找到定義 Plausible 容器的部分。它將以 plausible: 開頭。在該部分中找到 ports: 定義,並將其更新為以下內容:

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

這確保 Plausible 僅在 localhost 介面上監聽,並且不對外公開。即使你已經設置了 UFW 防火牆,由於 Docker 網絡工作方式的某些怪異之處,如果你沒有採取這一步驟,你的 Plausible 容器將通過端口 8000 對公眾可用,而我們只希望通過接下來設置的 Nginx 代理來訪問它。

保存並關閉 docker-compose.yml 文件,然後使用 docker-compose 下載、配置和啟動容器:

  1. sudo docker compose up --detach

–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 容器的首頁:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

如果終端輸出了一些 HTML,則表示服務器正在運行。

接下來,我們將設置 Nginx 將 Plausible 從 localhost:8000 反向代理到公共訪問。

步驟 2 — 安裝和配置 Nginx

將像Nginx這樣的Web伺服器放在您的Elixir伺服器前面可以通過將緩存、壓縮和靜態文件服務外包給更有效率的進程來提高性能。我們將安裝Nginx並將其配置為反向代理請求到Plausible,這意味著它將處理來自您用戶的請求並將其返回到Plausible。

首先,刷新您的套件列表,然後使用apt安裝Nginx:

  1. sudo apt update
  2. sudo apt install nginx

使用“Nginx Full”UFW應用程序配置文件允許公共流量訪問端口80443(HTTP和HTTPS):

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

接下來,打開/etc/nginx/sites-available目錄中的新Nginx配置文件。我們將其命名為plausible.conf,但您也可以使用其他名稱:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

將以下內容粘貼到新的配置文件中,請務必將your_domain_here替換為您配置為指向Plausible伺服器的域名。例如,這應該是類似plausible.example.com的內容:

/etc/nginx/sites-available/plausible.conf
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;
  }
}

此配置目前僅支持HTTP,因為我們將在下一步讓Certbot負責配置SSL。配置的其餘部分設置了日誌位置,然後將所有流量轉發到http://localhost:8000,這是我們在上一步中啟動的Plausible實例。

保存並關閉文件,然後通過將其鏈接到/etc/nginx/sites-enabled/啟用配置:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

使用nginx -t來驗證配置文件語法是否正確:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

最後,重新加載nginx服務以應用新配置:

  1. sudo systemctl reload nginx

您的Plausible网站现在应该可以通过普通的HTTP访问。加载http://your_domain_here,页面会呈现如下内容:

现在您的网站已经在HTTP上运行,是时候通过Certbot和Let’s Encrypt证书来保护连接了。

第三步 — 安装Certbot并设置SSL证书

借助Certbot和Let’s Encrypt免费证书颁发机构,向我们的Plausible应用添加SSL加密只需两个命令。

首先,安装Certbot及其Nginx插件:

  1. sudo apt install certbot python3-certbot-nginx

接下来,以--nginx模式运行certbot,并指定与Nginx server_name配置中相同的域名:

  1. sudo certbot --nginx -d your_domain_here

您将被要求同意Let’s Encrypt的服务条款,并输入电子邮件地址。

之后,您将被询问是否要将所有HTTP流量重定向到HTTPS。这取决于您,但通常建议并且是安全的。

之后,Let’s Encrypt将确认您的请求,Certbot将下载您的证书:

Output
Congratulations! 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 2022-12-05. 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中设置的默认用户详细信息登录是安全的。然后,您将被提示验证您的注册,并且将向您配置的地址发送验证代码。

默认情况下,此电子邮件直接从您的服务器发送,这可能会因各种防垃圾邮件措施而引起问题。如果您没有收到该邮件,请检查您的垃圾邮件文件夹。如果也不在那里,请在plausible-conf.env文件中设置更合适的SMTP详细信息。请参阅官方的Plausible自托管文档了解有关邮件配置的详细信息。

成功登录后,您将看到一个提示,要使用Plausible设置您的第一个网站:

您已成功安装并保护了您的Plausible分析软件。

结论

在本教程中,您使用Docker Compose启动了Plausible Analytics应用程序及其相关辅助容器,然后设置了Nginx反向代理并使用Let’s Encrypt SSL证书对其进行了安全设置。

您现在已准备好设置您的网站并添加Plausible Analytics跟踪脚本。请参阅官方的Plausible Analytics文档以获取有关使用该软件和设置您的站点的进一步信息。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04