开源项目Umami网站统计MySQL8.0版本Docker+Linux安装部署教程

Umami是什么?

Umami是一个开源项目,简单、快速、专注用户隐私的网站统计项目。

下面来介绍如何本地安装部署Umami项目,进行你的网站统计接入。特别对于首次使用docker的萌新有非常好的指导、参考和帮助作用。

Umami的github和docker镜像地址

github:
https://github.com/umami-software/umami
docker,使用MySQL版,

docker pull docker.umami.is/umami-software/umami:mysql-latest

准备Linux服务器

如果需要安装在自己的Linux服务器,由于需要运行Docker、MySQL8、Nodejs等,这里的服务器配置是:2核CPU 4G内存。

准备工作:国内docker镜像源

为避免拉取超时,先准备国内镜像源。修改/etc/docker/daemon.json配置文件,然后重启docker服务。

# vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.ccs.tencentyun.com",
        "https://docker.nju.edu.cn",
        "https://docker.m.daocloud.io"
    ]
}

sudo systemctl daemon-reload  # 重启daemon进程
sudo systemctl restart docker  # 重启docker服务

准备工作:docker网络,用于umami连接mysql8

docker network create my_mysql_network

准备工作:先安装mysql8 docker和初始化

虽然Umami支持PostgreSQL或MySQL,但这里使用的是MySQL版本,所以需要先安装mysql8。

# docker pull mysql:8.0
8.0: Pulling from library/mysql
2c0a233485c3: Pull complete 
fb027c65a85c: Pull complete 
d87e05573c29: Pull complete 
7d202bd608a9: Pull complete 
930324cdd290: Pull complete 
441e29354b23: Pull complete 
4f0710d03b24: Pull complete 
ead7d3dd9cc0: Pull complete 
55d2712d2c86: Pull complete 
4aaa23a8b413: Pull complete 
84ba6b75f842: Pull complete 
Digest: sha256:4f33388ab0a152ca309eeb70cd2e4a9a8989d5006ec2a4890d883afbffd6be4a
Status: Downloaded newer image for mysql:8.0
docker.io/library/mysql:8.0

查看镜像,

[root@iz8vbetvcrpn38l0x1kd06z docker]# docker images
REPOSITORY                                                           TAG            IMAGE ID       CREATED        SIZE
mysql                                                                8.0            04faa32c7d29   33 hours ago   764MB

新建一个目录,用于准备数据库数据存放目录,

mkdir -p /home/apps/docker/mysql_8.0_data

启动数据库,

docker run -d \
  --name mysql8 \
  --network my_mysql_network \
  -p 3306:3306 \
  -v /home/apps/docker/mysql_8.0_data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=xxxxxx_password \
  mysql:8.0

>   mysql:8.0
a5641d144dc9ce2b896654bd972b57f8b86b9ea62522b898fde0cc80a0752b5c

查看启动情况,

# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                      PORTS                               NAMES
a5641d144dc9   mysql:8.0      "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds                0.0.0.0:3306->3306/tcp, 33060/tcp   mysql8

进入数据库mysql8,

# docker exec -it mysql8 mysql -uroot -pxxxxxx_password

新建数据库,

mysql> CREATE DATABASE dogstar_umami_db;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| dogstar_umami_db   |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

查看数据库地址和端口,

mysql> SHOW VARIABLES LIKE 'hostname';
+---------------+--------------+
| Variable_name | Value        |
+---------------+--------------+
| hostname      | a5641d144dc9 |
+---------------+--------------+
1 row in set (0.01 sec)

mysql> SHOW VARIABLES LIKE 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

docker镜像拉取umami

docker pull docker.umami.is/umami-software/umami:mysql-latest

启动umami,指定网络,指定数据库连接,指定端口等。

docker run -d \
  --name umami \
  --network my_mysql_network \
  -e DATABASE_URL=mysql://root:xxxxxx_password@a5641d144dc9:3306/dogstar_umami_db \
  -e HASH_SALT=dogstarxxxx \
  -p 3000:3000 \
  docker.umami.is/umami-software/umami:mysql-latest

查看,是否启动成功。

# docker ps -a
CONTAINER ID   IMAGE                                               COMMAND                  CREATED          STATUS                      PORTS                               NAMES
344a33733053   docker.umami.is/umami-software/umami:mysql-latest   "docker-entrypoint.s…"   4 seconds ago    Up 3 seconds                0.0.0.0:3000->3000/tcp              umami
a5641d144dc9   mysql:8.0                                           "docker-entrypoint.s…"   29 minutes ago   Up 29 minutes               0.0.0.0:3306->3306/tcp, 33060/tcp   mysql8

图片

查看日记,没有报错。

# docker logs -f umami
yarn run v1.22.22
$ npm-run-all check-db update-tracker start-server
$ node scripts/check-db.js
✓ DATABASE_URL is defined.
✓ Database connection successful.
✓ Database version check successful.
Prisma schema loaded from prisma/schema.prisma
Datasource "db": MySQL database "dogstar_umami_db" at "a5641d144dc9:3306"

7 migrations found in prisma/migrations


No pending migrations to apply.

✓ Database is up to date.
$ node scripts/update-tracker.js
$ node server.js
   ▲ Next.js 15.0.4
   - Local:        http://localhost:3000
   - Network:      http://0.0.0.0:3000

 ✓ Starting...
 ✓ Ready in 143ms

图片

查看数据库表

mysql> use dogstar_umami_db;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> show tables;
+----------------------------+
| Tables_in_dogstar_umami_db |
+----------------------------+
| _prisma_migrations         |
| event_data                 |
| report                     |
| session                    |
| session_data               |
| team                       |
| team_user                  |
| user                       |
| website                    |
| website_event              |
+----------------------------+
10 rows in set (0.00 sec)

图片

本地测试访问

# curl http://127.0.0.1:3000

正常,

图片

配置nginx和对外域名

# vim /etc/nginx/conf.d/umami.yesapi.cn.conf 
server {
    listen       80;
    server_name  umami.yesapi.cn;

    location / {
        proxy_pass http://127.0.0.1:3000;
    }

}

访问网站,http://umami.yesapi.cn
初始账号密码:admin / xxxxxx

图片

创建新网站,

图片

获得追踪代码,

<script defer src="http://umami.yesapi.cn/script.js" data-website-id="194ab56b-0d02-4a34-9aa7-e64f4cd32de6"></script>

接入统计,

图片

查看统计,

图片

至此,部署、安装和网站统计接入,成功完成!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

研究 Day.js 及其在 Vue3 和 Vue 框架中的应用详解

前言 在前端开发中&#xff0c;日期和时间处理是一个常见需求。随着技术的发展&#xff0c;我们有了更多高效、灵活的日期库可供选择。Day.js 就是一个轻量级、易于使用的 JavaScript 日期库&#xff0c;其灵感来源于 Moment.js&#xff0c;但体积更小&#xff0c;速度更快。本…

python基础语法(3) -------- 学习笔记分享

目录: 1. 函数 1.1 语法格式 1.2 函数参数 1.3 函数返回值 1.4 变量的作用域 1.5 函数的执行过程 1.6 函数的链式调用 1.7 函数的嵌套调用 1.8 函数递归 1.9 参数默认值 1.10 函数的关键字传参 2. 列表和元组 2.1 列表和元组是啥 2.2 创建列表 2.3 访问下标 2.…

ceph新增节点,OSD设备,标签管理(二)

一、访问客户端集群方式 方式一: 使用cephadm shell交互式配置 [rootceph141 ~]# cephadm shell # 注意&#xff0c;此命令会启动一个新的容器&#xff0c;运行玩后会退出&#xff01; Inferring fsid c153209c-d8a0-11ef-a0ed-bdb84668ed01 Inferring config /var/lib/ce…

解决查看服务器ESN(许可证管理)

服务器的ESN&#xff08;许可证管理&#xff09;和SN码是两个东西。 查看步骤如下&#xff1a; 进入服务器的iBMC管理系统&#xff08;一般为机房运维人员可以查看&#xff09; 选择“许可证管理” 红框中即可看到信息。

《深入解析:DOS检测的技术原理与方法》

DDOS入侵检测与防御 一、实现Linux下DDOS的入侵检测与防御 利用Python编程实现对wrk的泛洪攻击检测&#xff0c;并让程序触发调用Linux命令实现防御: 1、泛洪攻击的检测&#xff0c;可以考虑使用的命令&#xff0c;这些命令可以通过Python进行调用和分析 (1) netstat -ant …

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(四)

Understanding Diffusion Models: A Unified Perspective&#xff08;四&#xff09; 文章概括学习扩散噪声参数&#xff08;Learning Diffusion Noise Parameters&#xff09;三种等效的解释&#xff08;Three Equivalent Interpretations&#xff09; 文章概括 引用&#xf…

1.23 补题 寒假训练营

E 一起走很长的路&#xff01; 输入描述 第一行输入两个整数 n,q&#xff08;1≤n,q≤210^5&#xff09;&#xff0c;代表多米诺骨牌的个数和询问次数。 第二行输入 n 个整数 a1,a2,…,an​&#xff08;1≤ai≤10^9&#xff09;&#xff0c;表示多米诺骨牌的重量。 此后输入…

dmfldr实战

dmfldr实战 本文使用达梦的快速装载工具&#xff0c;对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…

在深度Linux (Deepin) 20中安装Nvidia驱动

文章创作不易&#xff0c;麻烦大家点赞关注收藏一键三连。 在Deepin上面跑Tensorflow, pytorch等人工智能框架不是一件容易的事情。特别是如果你要使用GPU&#xff0c;就得有nvidia的驱动。默认情况下Deepin系统自带的是nouveau开源驱动。这是没办法用tensorflow的。下面内容是…

【Linux】IPC:匿名管道、命名管道、共享内存

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 1、管道2、进程池3、命名管道4、共享内存 1、管道 我们知道进程具有独立性&#xff0c;但是在一些场景中进程间也需要通信&#…

Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用

QTableView 是QT的一个强大的表视图部件&#xff0c;可以与模型结合使用以显示和编辑数据。QSqlQueryModel、QSqlTableModel 都是用于与 SQL 数据库交互的模型,将二者与QTableView结合使用可以轻松地展示和编辑数据库的数据。 QSqlQueryModel的简单应用 import sys from PySid…

DeepSeek学术题目选择效果怎么样?

论文选题 一篇出色的论文背后&#xff0c;必定有一个“智慧的选题”在撑腰。选题足够好文章就能顺利登上高水平期刊&#xff1b;选题不行再精彩的写作也只能“当花瓶”。然而许多宝子们常常忽视这个环节&#xff0c;把大量时间花在写作上&#xff0c;选题时却像抓阄一样随便挑一…

Linux的权限和一些shell原理

目录 shell的原理 Linux权限 sudo命令提权 权限 文件的属性 ⽂件类型&#xff1a; 基本权限&#xff1a; chmod改权限 umask chown 该拥有者 chgrp 改所属组 最后&#xff1a; 目录权限 粘滞位 shell的原理 我们广义上的Linux系统 Linux内核Linux外壳 Linux严格…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)

目录 1 -> 概述 1.1 -> 整体架构 2 -> 文件组织 2.1 -> 目录结构 2.2 -> 文件访问规则 2.3 -> 媒体文件格式 3 -> js标签配置 3.1 -> pages 3.2 -> window 3.3 -> 示例 4 -> app.js 4.1 -> 应用生命周期 4.2 -> 应用对象6…

计算机的错误计算(二百二十二)

摘要 利用大模型化简计算 实验表明&#xff0c;虽然结果正确&#xff0c;但是&#xff0c;大模型既绕了弯路&#xff0c;又有数值计算错误。 与前面相同&#xff0c;再利用同一个算式看看另外一个大模型的化简与计算能力。 例1. 化简计算摘要中算式。 下面是与一个大模型的…

Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat

目录 ?编辑 一、Ubuntu22.04介绍 二、Ubuntu与Centos的区别 三、基于VMware安装Ubuntu Server 22.04 下载 VMware安装 1.创建新的虚拟机 2.选择类型配置 3.虚拟机硬件兼容性 4.安装客户机操作系统 5.选择客户机操作系统 6.命名虚拟机 7.处理器配置 8.虚拟机内存…

基于单片机的智能小区门禁系统设计(论文+源码)

1总体架构 智能小区门禁系统以STM32单片机和WiFi技术为核心&#xff0c;STM32单片机作为主控单元&#xff0c;通过WiFi模块实现与手机APP的连接&#xff0c;构建整个门禁系统。系统硬件包括RFID模块、指纹识别模块、显示屏、按键以及继电器。通过RFID绑定IC卡、APP面部识别、指…

03_使用同一个函数创建不同的任务

一、声明 这个程序执行的任务就是在一个函数里面可以执行几个不同的任务&#xff08;好吧&#xff0c;我到现在也没学会怎么添加自己的视频&#xff09; 我们这个程序使用到的外设只有OLED屏幕 二、CubeMx的配置 注意要选一下TIM4 挂一个I2C&#xff0c;用来放OLED的屏幕 再开…

高频 SQL 50 题(基础版)_620. 有趣的电影

高频 SQL 50 题&#xff08;基础版&#xff09;_620. 有趣的电影 一级目录 表&#xff1a;cinema id 是该表的主键(具有唯一值的列)。 每行包含有关电影名称、类型和评级的信息。 评级为 [0,10] 范围内的小数点后 2 位浮点数。 编写解决方案&#xff0c;找出所有影片描述为 …

iOS开发设计模式篇第二篇MVVM设计模式

目录 一、什么是MVVM 二、MVVM 的主要特点 三、MVVM 的架构图 四、MVVM 与其他模式的对比 五、如何在iOS中实现MVVM 1.Model 2.ViewModel 3.View (ViewController) 4.双向绑定 5.文中完整的代码地址 六、MVVM 的优缺点 1.优点 2.缺点 七、MVVM 的应用场景 八、结…