【好玩的Docker项目】搭建一个小而美的网站流量监控——Umami

这一期带大家来搭建一个网站流量的监控,看看自己的网站是不是1ip :)

本博客用什么VPS?创作不易,欢迎请咕咕喝杯咖啡☕☕☕

前言

前俩期,我们搭建了自己的网站监控——【好玩的Docker项目】搭建一个专属自己的网站监控——Uptime Kuma,还有服务器的监控——【好玩的Docker项目】搭建两个专属自己的服务器监控——Ward && ServerStatus,这一期带大家来搭建一个网站流量的监控,看看自己的小破站到底有多少人看,是不是 1 ip呢?

效果展示

image-20220108123817121
image-20220108123933647
image-20220108123947463
image-20220108124137746
image-20220108111011441
image-20220108111033142

非常清爽,满足小博客使用已经足够了,

搭建视频

YouTube:https://youtu.be/rRBMZwKiCRk

哔哩哔哩:https://www.bilibili.com/BV1eL4y1b7P6

环境准备

开始搭建

1、安装docker、curl、git、vim、wget等必备的工具

apt update -y

apt install -y wget vim sudo curl git

wget -qO- get.docker.com | bash

docker -v

systemctl enable docker

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

2、然后到github上接取项目,进入目录

cd ~

mkdir -p ~/data/docker_data/umami

cd ~/data/docker_data/umami

3、编辑配置文件

nano docker-compose.yml

4、写入Docker-compose代码

---
version: '3'
services:
  umami:
    image: docker.umami.dev/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      APP_SECRET: replace-me-with-a-random-string
    depends_on:
      - db
    restart: always
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
      - ./umami-db-data:/var/lib/postgresql/data
    restart: always

检查完毕之后,ctrl+x退出,按y确认修改内容, enter确认

5、启动Umami

docker-compose up -d

关于Internal Server Error 问题

来自小伙伴@colinsoo 在评论区的反馈:

主要是因为数据库链接和初始化。 在docker-compose 中有个映射是 →./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro 这个.sql 文件可以去作者的仓库里面找到:https://github.com/mikecao/umami/blob/master/sql/schema.mysql.sql 需要提前映射到安装的地方,来初始化数据库(也就是要提前建表),整了一天才发现主要问题在这……可能主要是因为这个东西可以静态部署,所以没有整合到应用里,需要手动执行?

大家可以自行测试一下!

此时,访问http://ip:3000就可以访问了,打开的是英文界面,右上方可以切换语言,默认用户名为admin,密码为umami

宝塔用户需要打开防火墙,放行3000端口,腾讯云、阿里云等用户还需要在官网后台服务器页面放行官方防火墙的3000端口。

如果要反向代理,且反向代理的服务与umami在一台服务器上,可以不用放行3000端口。

反向代理

1、宝塔用户

image-20220108113106723

location / {
  proxy_pass http://127.0.0.1:3000/;
  rewrite ^/(.*)$ /$1 break;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade-Insecure-Requests 1;
  proxy_set_header X-Forwarded-Proto https;
}

2、NginxProxyManager用户

反向代理的服务与umami在一台服务器上
ip addr show docker0

image-20220108113833487
image-20220108113959441
image-20220108113758311

访问域名即可。

反向代理的服务与umami不在一台服务器上

打开防火墙,放行3000端口,腾讯云、阿里云等用户还需要在官网后台服务器页面放行官方防火墙的3000端口。

image-20220108113911143
image-20220108113758311

访问域名即可。

添加到站点

image-20220108122110876

激活共享链接就是公开统计数据。

注意这边添加域名,不需要带https://

image-20220108122132888

Halo

视频教程:如何用服务器优雅地搭建一个博客—Hello,Halo!

image-20220108122227620
image-20220108122304559

WordPress

将代码加在主题文件的footer.php下,添加完成之后,刷新浏览器缓存,就能统计到了。

其他的博客也是大同小异,在统计代码的地方加入这段JS代码即可。

最后

目前用了大半年了,感觉效果不错,有一个缺点是不能统计到搜索的关键词。

类似的统计服务还有百度统计、谷歌统计、Matoma等等,不过他们都没有这个这么轻量,如果需要更复杂的功能,可以试试Matomo,也是一个开源的项目。

地址:https://github.com/matomo-org/matomo

参考链接

https://www.zz1984.com/498.html

---------------
如何觉得文章内容不错,欢迎点击一下广告,支持一下咕咕😍😍😍

原创文章,作者:Roy,如若转载,请注明出处:https://iwanlab.com/docker-compose-install-umami/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Roy的头像Roy
上一篇 2023年6月15日 下午4:59
下一篇 2023年6月15日 下午7:24
   

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(2条)

  • 醉浪233
    醉浪233 2023年7月5日 上午11:13

    Umami好像可以部署在Vercel上,但我一直部署不成功,咕咕可以做一期视频吗

    • 我不是咕咕鸽的头像
      Roy 2023年7月5日 下午3:19

      @醉浪233vercel有的地方访问不了,我就没怎么折腾过 = =