Umami 是一个开源的轻量化网站统计程序。

官网GitHubDemo

为何选择 Umami

  • Umami 等自建统计程序不会像 Google Analytics 一样被很多浏览器插件拦截,数据相对更加准确。
  • 在类似的自建统计程序中,Umami 在速度和配置要求上有非常明显的优势,在积累大量数据后依旧能保持快速的响应。

部署程序

安装 Docker

较新版本中 Docker Compose 已以插件的形式集成在 Docker 中,无需额外安装

以 Ubuntu 为例,其他操作系统可参考Docker官方文档

请注意,第二条命令会将主机上的旧版 Docker 卸载。

sudo apt update
sudo apt remove docker docker-engine docker.io containerd runc
# 国内机器可将 download.docker.com 替换为 mirrors.aliyun.com/docker-ce
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin


2022/05/17 更新
据反馈阿里云的机器可能会找不到add-apt-repository命令,执行sudo apt install software-properties-common安装即可。

使用 Compose 部署程序


2024/01/16 更新
Umami 运行最低需要 MySQL v5.7 或 PostgreSQL v12.14
用MySQL的话个人建议最好是8.0,觉得内存占用大可以考虑MariaDB,之前就出现过数据库迁移脚本用了MySQL8.0才兼容的语法导致一堆用5.7的升级失败了,过了几个月才修复。

创建 docker-compose.yml 文件,以下均以MySQL数据库为例

选项一:使用宿主机数据库

version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:mysql-latest
    restart: always
    network_mode: "host"
    environment:
      DATABASE_TYPE: mysql
      DATABASE_URL: mysql://username:password@localhost:3306/databasename
      APP_SECRET: replace-me-with-a-random-string
    container_name: umami

选项二:使用Docker部署数据库

version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:mysql-latest
    restart: always
    depends_on:
      - umami-db
    ports:
      - 3000:3000
    environment:
      DATABASE_TYPE: mysql
      DATABASE_URL: mysql://umami:password@umami-db:3306/umami
      APP_SECRET: replace-me-with-a-random-string
    container_name: umami
  umami-db:
    image: mysql:5.7
    restart: always
    volumes:
      - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: umami
      MYSQL_USER: umami
      MYSQL_PASSWORD: password
    container_name: umami-db

如需使用 PostgreSQL ,将 image 替换为 ghcr.io/umami-software/umami:postgresql-latest,将 DATABASE_URL 替换为 postgresql://username:password@db:5432/databasenameDATABASE_TYPE 替换为 postgresql 即可。

DATABASE_URL 内的 username 等替换为对应的数据库配置,将 APP_SECRET 后的内容替换为随机字符串。


因为 Umami 分发镜像使用的是 Github 的 Package 功能,国内机器拉取镜像的速度大概率十分感人,如有需要可尝试我在腾讯云的镜像
ccr.ccs.tencentyun.com/orilight/umami-mysql:latest
可将latest换为1.38.0等版本号(不需要带v)拉取指定版本的镜像

配置完成后保存关闭文件在终端执行 docker compose up -d 即可

Umami 默认运行在 主机ip:3000 上,如无法访问建议检查 Umami 的运行状态与主机的防火墙和安全组等设置,默认账号:admin,默认密码:umami

后续更新

当 umami 更新后,运行下列命令即可更新 umami。

注意是在保存docker-compose.yml文件的目录下执行命令。

docker compose pull
docker compose up -d --remove-orphans