开源项目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/migrationsNo 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>
接入统计,
查看统计,
至此,部署、安装和网站统计接入,成功完成!
相关文章:

开源项目Umami网站统计MySQL8.0版本Docker+Linux安装部署教程
Umami是什么? Umami是一个开源项目,简单、快速、专注用户隐私的网站统计项目。 下面来介绍如何本地安装部署Umami项目,进行你的网站统计接入。特别对于首次使用docker的萌新有非常好的指导、参考和帮助作用。 Umami的github和docker镜像地…...

FBX SDK的使用:基础知识
Windows环境配置 FBX SDK安装后,目录下有三个文件夹: include 头文件lib 编译的二进制库,根据你项目的配置去包含相应的库samples 官方使用案列 动态链接 libfbxsdk.dll, libfbxsdk.lib是动态库,需要在配置属性->C/C->预…...

VisionMamba安装
1.安装python环境 conda create -n mamba python3.10.13 -y conda activate mamba2.安装torch环境 conda install cudatoolkit11.8 -c nvidia pip install torch2.1.1 torchvision0.16.1 torchaudio2.1.1 --index-url https://download.pytorch.org/whl/cu1183.安装其他包 c…...
h2oGPT
文章目录 一、关于 h2oGPT二、现场演示特点 三、开始行动安装h2oGPT拼贴画演示资源文档指南开发致谢为什么选择 H2O.ai?免责声明 一、关于 h2oGPT 使用文档、图像、视频等与本地GPT进行私人聊天。100%私人,Apache 2.0。支持oLLaMa、Mixtral、llama. cpp…...

Win10安装MySQL、Pycharm连接MySQL,Pycharm中运行Django
一、Windows系统mysql相关操作 1、 检查系统是否安装mysql 按住win r (调出运行窗口) 输入service.msc,点击【确定】 image.png 打开服务列表-检查是否有mysql服务 (compmgmt.msc) image.png 2、 Windows安装MySQL …...

使用Pygame制作“俄罗斯方块”游戏
1. 前言 俄罗斯方块(Tetris) 是一款由方块下落、行消除等核心规则构成的经典益智游戏: 每次从屏幕顶部出现一个随机的方块(由若干小方格组成),玩家可以左右移动或旋转该方块,让它合适地堆叠在…...

【Block总结】ODConv动态卷积,适用于CV任务|即插即用
一、论文信息 论文标题:Omni-Dimensional Dynamic Convolution作者:Chao Li, Aojun Zhou, Anbang Yao发表会议:ICLR 2022论文链接:https://arxiv.org/pdf/2209.07947GitHub链接:https://github.com/OSVAI/ODConv 二…...
RK3568 opencv播放视频
文章目录 一、opencv相关视频播放类1. `cv::VideoCapture` 类主要构造方法:主要方法:2. 视频播放基本流程代码示例:3. 获取和设置视频属性4. 结合 FFmpeg 使用5. OpenCV 视频播放的局限性6. 结合 Qt 实现更高级的视频播放总结二、QT中的代码实现一、opencv相关视频播放类 在…...

《LLM大语言模型+RAG实战+Langchain+ChatGLM-4+Transformer》
文章目录 Langchain的定义Langchain的组成三个核心组件实现整个核心组成部分 为什么要使用LangchainLangchain的底层原理Langchain实战操作LangSmithLangChain调用LLM安装openAI库-国内镜像源代码运行结果小结 使用Langchain的提示模板部署Langchain程序安装langserve代码请求格…...

【搜索回溯算法篇】:拓宽算法视野--BFS如何解决拓扑排序问题
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:搜索回溯算法篇–CSDN博客 文章目录 一.广度优先搜索(BFS)解决拓扑排…...

计算机网络 (61)移动IP
前言 移动IP(Mobile IP)是由Internet工程任务小组(Internet Engineering Task Force,IETF)提出的一个协议,旨在解决移动设备在不同网络间切换时的通信问题,确保移动设备可以在离开原有网络或子网…...

Elasticsearch+kibana安装(简单易上手)
下载ES( Download Elasticsearch | Elastic ) 将ES安装包解压缩 解压后目录如下: 修改ES服务端口(可以不修改) 启动ES 记住这些内容 验证ES是否启动成功 下载kibana( Download Kibana Free | Get Started Now | Elastic ) 解压后的kibana目…...

音视频多媒体编解码器基础-codec
如果要从事编解码多媒体的工作,需要准备哪些更为基础的内容,这里帮你总结完。 因为数据类型不同所以编解码算法不同,分为图像、视频和音频三大类;因为流程不同,可以分为编码和解码两部分;因为编码器实现不…...
【算法与数据结构】动态规划
目录 基本概念 最长递增子序列(中等) 最大子数组和(中等) 基本概念 重叠子问题 一个问题可以被分解为多个子问题,并且这些子问题在求解过程中会被多次重复计算。例如,在计算斐波那契数列时,…...

DeepSeekMoE:迈向混合专家语言模型的终极专业化
一、结论写在前面 论文提出了MoE语言模型的DeepSeekMoE架构,目的是实现终极的专家专业化(expert specialization)。通过细粒度的专家分割和共享专家隔离,DeepSeekMoE相比主流的MoE架构实现了显著更高的专家专业化和性能。从较小的2B参数规模开始&#x…...

什么是Maxscript?为什么要学习Maxscript?
MAXScript是Autodesk 3ds Max的内置脚本语言,它是一种与3dsMax对话并使3dsMax执行某些操作的编程语言。它是一种脚本语言,这意味着您不需要编译代码即可运行。通过使用一系列基于文本的命令而不是使用UI操作,您可以完成许多使用UI操作无法完成的任务。 Maxscript是一种专有…...
HyperLogLog 近似累计去重技术解析:大数据场景下的高效基数统计
目录 引言 一、HyperLogLog 核心原理 1.1 算法思想 1.2 误差特性 二、SQL 实现详解(PostgreSQL 示例)...

LabVIEW透镜多参数自动检测系统
在现代制造业中,提升产品质量检测的自动化水平是提高生产效率和准确性的关键。本文介绍了一个基于LabVIEW的透镜多参数自动检测系统,该系统能够在单一工位上完成透镜的多项质量参数检测,并实现透镜的自动搬运与分选,极大地提升了检…...

MySQL数据库(二)- SQL
目录 编辑 一 DDL (一 数据库操作 1 查询-数据库(所有/当前) 2 创建-数据库 3 删除-数据库 4 使用-数据库 (二 表操作 1 创建-表结构 2 查询-所有表结构名称 3 查询-表结构内容 4 查询-建表语句 5 添加-字段名数据类型 6 修改-字段数据类…...

【Block总结】HiLo注意力,局部自注意力捕获细粒度的高频信息,通过全局注意力捕获低频信息|即插即用
一、论文信息 标题: Fast Vision Transformers with HiLo AttentionGitHub链接: https://github.com/ziplab/LITv2论文链接: arXiv 二、创新点 HiLo注意力机制: 本文提出了一种新的自注意力机制——HiLo注意力,旨在同时捕捉图像中的高频和低频特征。该机制通过将…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...

表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...