misterli's Blog.

Umami 安装并升级到v2.x

字数统计: 938阅读时长: 4 min
2023/05/05

Umami 是一种开源、注重隐私的 Google Analytics 替代品。Umami 为您提供了一个强大的网络分析解决方案,不会侵犯您用户的隐私。此外,当您自行托管 Umami 时,您可以完全控制您的数据。

目前看好像直接安装v2.x无法成功,这里采用先安装v1.x然后升级至v2.x。

当前latest版本为v2.2.0

安装v1.x

要求

  • 具有 Node.js 版本 12 或更高版本的服务器
  • 一个数据库。Umami 支持MySQLPostgresql数据库。

首先安装1.40.0版本的umami

1
2
3
4
git clone -b v1.40.0 https://github.com/umami-software/umami.git
cd umami
这里我们可以把docker-compose.yml文件中的postgresql镜像版本给为 postgres:15-alpine
docker-compose up -d

启动后访问127.0.0.1:3000查看一下页面是否正常,账号admin 密码umami

image-20230505134745399

迁移到v2.x

由于架构更改, v1版本数据库中的数据需要转换为 v2版本。为了协助迁移,官方创建了一个脚本@umami/migrate-v1-v2,可以迁移所有数据。

注意:

  • 使用前备份目标数据库。如果迁移中断,可能会发生潜在的数据丢失。
  • 对于拥有较大数据集 (5M+) 的用户,迁移可能需要一段时间。请相应地计划。
  • 该脚本不会将任何事件数据迁移到 v2。
  • 该脚本将询问您是否要在迁移完成后删除 v1 表。
  • 如果event_data发现一个表填充了数据,它将被重命名为v1_event_data但不会被删除。

进入umami容器执行npx @umami/migrate-v1-v2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@es-01 umami]# docker exec -it umami_umami_1 sh 
/app $ npx @umami/migrate-v1-v2 --registry=https://registry.npmmirror.com
Need to install the following packages:
@umami/[email protected]
Ok to proceed? (y) y
Running v0.15.0
✓ DATABASE_URL is defined.
✓ Database connection successful.
Preparing v1 tables for migration
✓ Dropped v1 database keys.
✓ Dropped v1 database indexes.
✓ Renamed v1 database tables.
✓ Database v1 tables ready for migration.
Database v2 tables not found.
Adding v2 tables...
✓ Ran sql file /db/postgresql/migrations/01_init/migration.sql.
┌─────────────────────────────────────────────────────────┐
│ Update available 4.9.0 -> 4.13.0 │
│ Run the following to update │
│ npm i --save-dev prisma@latest │
│ npm i @prisma/client@latest │
└─────────────────────────────────────────────────────────┘
Prisma schema loaded from prisma/schema.prisma
Datasource "db": PostgreSQL database "umami", schema "public" at "db:5432"
Migration 01_init marked as applied.

✓ Database is ready for migration.
✓ Starting v2 data migration. Please do no cancel this process, it may take a while.
✓ Ran sql file /db/postgresql/data-migration-v2.sql.
✓ Data migration from V1 to V2 tables completed.
✔ Do you want to delete V1 database tables? (Y/N) … y
✓ Dropped v1 database tables.
✓ Migration successfully completed.
npm notice
npm notice New major version of npm available! 8.19.3 -> 9.6.6
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.6.6
npm notice Run npm install -g [email protected] to update!
npm notice

执行完成后修改docker-compose.yml文件中umami镜像版本为ghcr.io/umami-software/umami:postgresql-v2.2.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
---
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-v2.2.0
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

修改后执行docker-compose up -d

1
2
3
[root@es-01 umami]# docker-compose  up -d 
umami_db_1 is up-to-date
Recreating umami_umami_1 ... done

重新打开127.0.0.1:3000发现已经是新版本的页面了

image-20230505135624418

接入网站

下面我们可以将自己网站接入,进入设置–>网站下点击添加网站,将自己网站的信息填入

image-20230505142507548

image-20230505142550995

点击编辑我们可以查看一些信息,包括我们要在自己网站放入的跟踪代码共享链接等信息。我们将跟踪代码放入到自己网站中。

image-20230505142759333

添加后我们访问页面几次,再点击上面页面的查看或者仪表板 就可以看到收集到的访问信息

image-20230505143210670

image-20230505143232737

image-20230505143306367

还可以点击实时查看实时访问信息

image-20230505143352756

CATALOG
  1. 1. 安装v1.x
  2. 2. 迁移到v2.x
  3. 3. 接入网站