简介
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.com
或plausible.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
,然后在ENTER
,nano
),并封闭你的修改器(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应用程序装备文件,答应公共流量进入端口80
和443
(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
它将看起来像这样。
现在你的网站现已在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上设置好。
你现已成功地装置并确保了你的Plausible分析软件。
结论
在本教程中,你运用Docker Compose发动了Plausible分析应用程序及其相关的辅助容器,然后设置了一个Nginx反向署理,并运用Let’s Encrypt SSL证书对其进行维护。
现在你现已准备好设置你的网站并增加Plausible Analytics的跟踪脚本。关于运用软件和设置网站的进一步信息,请拜见官方的Plausible Analytics文档。