简介

Plausible Analytics是一个用Elixir言语编写的开源的、自我保管的网络分析应用程序,它专注于简单性和隐私。它在PostgreSQL和ClickHouse数据库中存储有关你网站拜访者的数据。

在本教程中,你将运用Docker Compose装置Plausible,然后装置Nginx,作为Plausible应用程序的反向署理。最终,你将经过运用Certbot从Let’s Encrypt证书颁发机构下载和装备SSL证书来完结安全的HTTPS连接。

前提条件

为了完结本教程,你首要需求以下条件。

  • 一台Ubuntu 20.04服务器,并启用UFW防火墙。请阅览咱们的Ubuntu 20.04的初始服务器设置,了解更多关于设置这些要求的信息
  • 装置Docker。你能够运用《如安在Ubuntu 20.04上装置和运用Docker》的第1步来完结。假如你想让你的非root用户在不运用Docker Compose的情况下能够运转docker ,你能够挑选遵从该教程的第2步。sudo
  • 装置Docker Compose。按照《如安在Ubuntu 20.04上装置和运用Docker Compose》的过程1来装置这个软件

**留意:**假如你运用DigitalOcean的一键式Docker镜像,这些先决条件过程能够越过。这个镜像将有Docker、Docker Compose和UFW现已装置和装备好。

在你挑选的区域发动一个新的Docker镜像,然后以根用户身份登录,持续学习教程。能够挑选不运用一切指令中的sudo 部分,但这不是必须的。

最终,为了启用SSL,你需求一个指向你服务器公共IP地址的域名。例如,这应该是像example.complausible.example.com 这样的姓名。假如你运用的是DigitalOcean,请参阅咱们的DNS快速入门,了解在咱们的控制面板中创立域名资源的信息。

当你满足了一切的先决条件后,持续进行第1步,在这里你将下载并发动Plausible软件。

第1步 – 运用Docker Compose装置Plausible分析软件

Plausible现已创立了一个Git仓库,里面有自我保管该软件所需的一切装备文件。你的第一步将是把这个仓库克隆到你的服务器上,更新两个装备文件,然后发动Plausible应用程序和数据库容器。

现在登录到你的服务器。

首要,运用cd 指令导航到/opt 目录。

cd /opt

然后运用git 指令从 GitHub 上克隆 repo 到/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

该文件包括五个变量,你需求填入这些变量。

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 生成的随机字符。留意,你在这里指定的暗码必须至少有六个字符。

保存文件(CTRL+O ,然后在ENTERnano ),并封闭你的修改器(CTRL+X )。

你能够在这个文件中增加更多的装备选项,但这个最小的装备将使你开端运转。更多关于经过plausible-conf.env 装备Plausible的信息能够在官方的Plausible Analytics自我保管文档中找到。

现在你需求更新docker-compose.yml 文件。这个文件是docker-compose 指令用来装备和发动多个Docker容器的。咱们需求改变这个文件中的一个选项:Plausible绑定的IP。

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 来下载、装备和发动容器。

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 容器的主页来验证这一点。

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

假如一些HTML被输出到你的终端,你就知道服务器现已发动并运转了。

接下来,咱们将设置Nginx来_反向署理_Plausible从localhost:8000 到大众。

第2步 – 装置和装备Nginx

在elixir服务器前放置一个像Nginx这样的Web服务器,能够经过将缓存、压缩和静态文件服务卸载到一个更有用的进程中来提高性能。咱们将装置Nginx,并将其装备为_反向署理_恳求到Plausible,这意味着它将负责将用户的恳求传递给Plausible,然后再回来。

首要,刷新你的软件包列表,然后运用apt 装置Nginx。

sudo apt update
sudo apt install nginx

运用 “Nginx Full “UFW应用程序装备文件,答应公共流量进入端口80443 (HTTP和HTTPS)。

sudo ufw allow "Nginx Full"
OutputRule added
Rule added (v6)

接下来,在/etc/nginx/sites-available 目录下翻开一个新的Nginx装备文件。咱们把咱们的文件称为plausible.conf ,但你能够运用一个不同的姓名。

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/ 来启用该装备。

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它将看起来像这样。

如何在Ubuntu 20.04上安装Plausible Analytics?

现在你的网站现已在HTTP上运转了,是时分用Certbot和Let’s Encrypt证书来维护连接了。

第3步–装置Certbot和设置SSL证书

多亏了Certbot和Let’s Encrypt免费证书授权,为咱们的Plausible应用程序增加SSL加密只需求两个指令。

首要,装置Certbot和它的Nginx插件。

sudo apt install certbot python3-certbot-nginx

接下来,在--nginx 模式下运转certbot ,并指定你在Nginxserver_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中设置的默许用户信息登录是安全的。然后,你会被提示验证你的注册,一个验证码将被发送到你装备的地址。

默许情况下,这封电子邮件是直接从你的服务器发送的,由于各种垃圾邮件预防措施,这可能会产生一些问题。假如你没有收到该邮件,请查看你的垃圾邮件文件夹。假如它也不在那里,你可能需求在plausible-conf.env 文件中设置更适宜的SMTP细节。关于邮件装备的细节,请拜见Plausible官方的自我保管文档。

当你成功登录后,你会看到一个提示,让你的第一个网站在Plausible上设置好。

如何在Ubuntu 20.04上安装Plausible Analytics?

你现已成功地装置并确保了你的Plausible分析软件。

结论

在本教程中,你运用Docker Compose发动了Plausible分析应用程序及其相关的辅助容器,然后设置了一个Nginx反向署理,并运用Let’s Encrypt SSL证书对其进行维护。

现在你现已准备好设置你的网站并增加Plausible Analytics的跟踪脚本。关于运用软件和设置网站的进一步信息,请拜见官方的Plausible Analytics文档。