使用 Umami 部署博客分析工具

Umami 简介

Umami 是一款开源且注重隐私的网站分析工具,可替代 Google Analytics。它提供网站流量和用户行为等见解,但不使用 Cookie 或收集个人数据,符合隐私法规。Umami 轻巧易用,可自行托管。

image.png

如果你有自己的博客,并且想要知道自己博客网站的流量情况,那么 Umami 将会是一个很好的工具,接下来我会一步步的教大家部署一个自己 Umami 博客分析工具。

部署前必要准备

  • 一个充满求知欲的大脑。
  • 一台Linux服务器(推荐腾讯云、阿里云或雨云等)。本文将以雨云为例进行演示。

我将会以 雨云 为例,带大家创建一台自己的云服务器,以便尝试本篇文章的内容。

注册链接: https://www.rainyun.com/NTEzMTM1_?s=blog

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

点击“云产品”→“云服务器”→“立即购买”。

选择距离你较近的区域,以降低延迟。

选择配置。

选择Ubuntu 22.04版本,并勾选预装Docker。

点击“立即购买”,并完成后续购买流程。购买完成后,等待服务器部署完毕,进入管理面板,找到远程连接信息。

使用PowerShell进行远程连接:输入ssh root@你的服务器IP (例如ssh root@154.9.227.239),首次连接需输入yes,然后回车即可登录。

服务器创建完毕并可通过SSH远程访问后,我们就可以开始部署 Umami 了。

Umami 从源码安装

系统要求:

  • Node.js 18.17 或更高版本
    • 可以使用 nvm 快速安装使用: https://github.com/nvm-sh/nvm?tab=readme-ov-file#install–update-script
  • 自备 MySQL (8.0+) 或 PostgreSQL (12.14+) 数据库

1.安装 Yarn:

npm install -g yarn

2.获取源码:

git clone https://github.com/umami-software/umami.git
cd umami

3.安装依赖:

yarn install

4.配置 Umami

创建 .env 文件,并添加数据库连接 URL:

DATABASE_URL={connection url}

连接 URL 格式:

  • PostgreSQL: DATABASE_URL=postgresql://username:mypassword@localhost:5432/mydb
  • MySQL: DATABASE_URL=mysql://username:mypassword@localhost:3306/mydb
  • usernamemypasswordmydb 替换为你的实际值.

5.构建应用:

yarn build

首次构建会创建数据库表和默认管理员账号 (用户名:admin,密码:umami)。

6.启动应用:

yarn start

应用默认运行在 http://localhost:3000。建议使用反向代理或修改端口。

7.使用 PM2 管理进程 (推荐):

yarn global add pm2
cd umami
pm2 start yarn --name umami -- start
pm2 startup
pm2 save

使用 Docker 安装(推荐)

Umami 提供 Docker Compose 和预编译镜像两种 Docker 安装方式。

使用 Docker Compose (包含 PostgreSQL 数据库)

version: '3'
services:umami:image: ghcr.io/umami-software/umami:postgresql-latestports:- "3000:3000"environment:DATABASE_URL: postgresql://umami:umami@db:5432/umamiDATABASE_TYPE: postgresqlAPP_SECRET: replace-me-with-a-random-stringdepends_on:db:condition: service_healthyrestart: alwayshealthcheck:test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]interval: 5stimeout: 5sretries: 5db:image: postgres:15-alpineenvironment:POSTGRES_DB: umamiPOSTGRES_USER: umamiPOSTGRES_PASSWORD: umamivolumes:- umami-db-data:/var/lib/postgresql/datarestart: alwayshealthcheck:test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]interval: 5stimeout: 5sretries: 5
volumes:umami-db-data:

不需要修改什么数据,直接启动即可:

docker-compose up -d

面板设置

按照上面的部署操作完毕后,打开浏览器,输入 http://your_server_ip:3000,打开后显示如下界面则表示部署成功。

image.png

登录

Umami 安装将创建一个默认的管理员账户,用户名为 admin ,密码为 umami

你要做的第一件事就是登录并更改密码。

image.png

点击右上角 Profile,如图:

image.png

更改密码以及设置中文语言:

image.png

添加网站

依次点击 设置→网站→添加网站

image.png

输入你的博客名称以及域名,最后点击保存:

image.png

点击编辑:

image.png

点击 跟踪代码:

image.png

最后只需要将下边这一行代码,添加到你博客网站 HTML 文件的 head 标签中即可。

添加完毕后刷新博客页面后,就可以进入仪表板中查看浏览量信息了。

效果展示

这里以我的博客为例展示效果:

image.png

image.png

相关链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
面试鸭:https://mianshiya.com/?shareCode=sq29yv
我的博客:https://blog.ivwv.site

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/9940.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

三菱QD77MS定位模块速度更改功能

速度更改功能” 是以任意时机将控制中的速度更改为新指定的速度的功能。更改后的速度直接设置到缓冲存储器中,并根据速度更改指令([cd.15速度更改请求)或者外部指令信号执行速度更改。 但是,机械原点复位的情况下,检测出近点狗 ON 并开始向蠕…

typescript 补充

文章目录 Pick<T, K> 从 T 中挑选部分属性构成新类型Partial<T>&#xff1a;将类型的所有属性变为可选Required<T>&#xff1a;将类型的属性变为必选。Omit<T, K>&#xff1a;从 T 中移除部分属性构成新类型。Readonly<T>&#xff1a;将类型的属…

运动【跑步 03】安踏冠军3的10KM和15KM*2体验(对比必迈PURE LIGHT)

这里写目录标题 1. 前言2. 两双鞋2.1 必迈 PURE LIGHT2.2 安踏 冠军 3 3. 主观对比4. 问题4.1 必迈 PURE LIGHT4.2 冠军 3 5. 总结 1. 前言 我是程序员&#xff0c;并不是专业的运动员&#xff0c;对跑步鞋的研究也不深&#xff0c;至今也就买过两双相对比较专业的跑鞋&#x…

【C++】踏上C++的学习之旅(六):深入“类和对象“世界,掌握编程的黄金法则(一)

文章目录 前言1. "面向过程"和"面向对象"的碰撞1.1 面向过程1.2 面向对象 2. "类"的引入3. "类"的定义3.1 &#x1f349;语法展示&#xff1a;3.2 "类"的两种定义方式3.3 "类"的命名规则 4. 类的访问限定符以及封…

Matlab绘制箭头(annotation 、quiver、​quiver3)

本文章开始讲述基于Matlab绘制箭头&#xff0c;主要包括一下函数&#xff1a; annotation &#xff1a;annotation(lineType,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。将 lineType 指定为 ‘line’、‘arrow’、‘doublearrow’ 或 ‘textarrow’。将 x 和…

【ESP32+MicroPython】开发环境部署

本教程将指导你如何在Visual Studio Code&#xff08;VSCode&#xff09;中设置ESP32的MicroPython开发环境。我们将涵盖从安装Python到烧录MicroPython固件的整个过程&#xff0c;以及如何配置VSCode以便与ESP32进行交互。 准备工作 安装Python 确保你的计算机上安装了Pyth…

我来讲一下-Service Mesh.

前言&#xff1a; 1、中文直翻译&#xff1a;Service Mesh叫服务网格&#xff0c;有一些讲课老师说什么把服务当成一个一个格子&#xff0c;一笔带过&#xff0c;没有经过深刻思考的讲诉&#xff0c;我真的bs. 一、我来讲一下 1、这里拆解分析一下&#xff0c;Service中的"…

30.超市管理系统(基于springboot和Vue的Java项目)

目录 1.系统的受众说明 2.相关技术和开发环境 2.1 相关技术 2.1.1 Java语言 2.1.2 HTML、CSS、JavaScript 2.1.3 MySQL 2.1.4 Vue.js 2.1.5 SpringBoot 2.2 开发环境 3. 系统分析 3.1 可行性分析 3.1.1 经济可行性 3.1.2 技术可行性 3.1.3 运行可行性 3.2…

洛谷 P1434 [SHOI2002] 滑雪 完整题解

一、题目查看 P1434 [SHOI2002] 滑雪 - 洛谷 二、解题思路 本题需要使用记忆化搜索&#xff0c;把第x个点开始最多能走几步记录在dp[x]中&#xff0c;循环递归&#xff0c;记录&#xff0c;并找出最大的dp[i]。 三、题解 #include <bits/stdc.h> using namespace std;int…

分布式唯一ID生成(二): leaf

文章目录 本系列前言号段模式双buffer优化biz优化动态step源码走读 雪花算法怎么设置workerId解决时钟回拨源码走读 总结 本系列 漫谈分布式唯一ID分布式唯一ID生成&#xff08;二&#xff09;&#xff1a;leaf&#xff08;本文&#xff09;分布式唯一ID生成&#xff08;三&am…

Spring Boot 与 Vue 共筑电影评价卓越平台

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

Everything软件实现FTP功能

Windows的文件共享和ftp实在难用&#xff0c;这里介绍一种新的局域网内共享文件的方法 下载 Everything 选择想要共享的文件&#xff0c;选择包含到数据库&#xff0c;注意&#xff1a;要在对应的分卷设置&#xff0c;共享文件夹名称不要包含中文字符&#xff0c;因为Windows底…

CertiK创始人顾荣辉出席新加坡商业与慈善论坛,发表主旨演讲并主持专题讨论

2024年11月5日 —— 美国哥伦比亚大学教授、CertiK联合创始人、MAS国际技术顾问顾荣辉受邀参加2024年度新加坡商业与慈善论坛&#xff08;Business & Philanthropy Leadership Forum Singapore&#xff0c;简称B&P Forum&#xff09;&#xff0c;期间发表主旨演讲并主持…

oracle创建实例失败-因为网络原因

风起波谲 最近遇到一个case很有意思。 起因是在redhat6.5上&#xff0c;安装一个oracle 19c。这个问题到没有特别大。换glibc的包就装上去了。 但是dbca就失败了 有点紧张&#xff0c;不会是遇到了不可控依赖问题吧。遂去看了把日志 日志看了以后反而没那么紧张了&#xff0…

力扣题库——75.颜色分类

这道题采用三路快速排序&#xff0c;快速排序思路看这里快速排序。将数列分为三组&#xff1a;小于基准、等于基准、大于基准。和快排一样&#xff0c;对左右递归进行快速排序。 先将题目简化&#xff0c;如果只有数字0和1&#xff0c;扫描一遍数组&#xff0c;遇到数字1不用管…

Android中桌面小部件framework层使用到的设计模式

在Android中&#xff0c;桌面小部件&#xff08;App Widget&#xff09;的Framework层采用了多种设计模式&#xff0c;以实现模块化、可维护性和高效的交互。 以下是Android桌面小部件Framework层中常用的设计模式及其具体应用&#xff1a; 1. 观察者模式&#xff08;Observe…

解锁 AI 新境界:元素碰撞的神奇应用技巧全解析

前言 在当今科技飞速发展的时代&#xff0c;ChatGPT 作为一款强大的人工智能工具&#xff0c;为我们开启了全新的创意探索之门。当我们让 ChatGPT 去进行大量的元素碰撞时&#xff0c;相较于传统人力的联想方式&#xff0c;它能够凭借其强大的算法和海量的数据处理能力&#x…

操作系统-磁盘

文章目录 磁盘的结构一、磁盘的物理结构二、磁盘的逻辑结构 磁盘的调度算法磁盘时间算法先来先服务&#xff08;FCFS - First-Come, First-Served&#xff09;最短寻道时间优先&#xff08;SSTF - Shortest Seek Time First&#xff09;扫描算法&#xff08;SCAN&#xff0c;也…

C++类和对象 (下)

文章目录 前言一. 再探构造函数初始化列表特性总结练习 二. 类型转换2.1 隐式类型转换2.2 临时对象具有常性2.3 explicit关键字2.4 多参数类型转化 三. static成员概念特性练习 四. 友元概念特性 五. 内部类概念特性 六. 匿名对象概念特性 七. 对象拷贝时的编译器优化END 前言 …

玩的花,云产品也能拼团了!!!

说起拼单大家都不陌生&#xff0c;电商一贯的营销手段&#xff0c;不过确实可以给消费者省下一笔钱。双11到了&#xff0c;腾讯云产品也玩起了拼团&#xff0c;这明显是对开发人员和各企业的福利。 对于有云产品需求的个人或企业&#xff0c;这次绝对是难得的一次薅羊毛机会。…