Umami 是一个简单易用、自托管的开源网站访问流量统计分析工具。
Umami 不使用 Cookie,不跟踪用户,且所有收集的数据都会匿名化处理,符合 GDPR 政策,资源占用很低,虽然功能简单,但分析的数据内容很丰富,基本的来源国家,来源域名,使用的浏览器、系统、设备,访问的网页这些都有。还支持多国语言,完全可以用来替代 Google Analytics、Cloudflare Web Analytics、CNZZ、51LA 等统计工具。

使用官方源安装 Docker

首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

然后加入 Docker 的 GPG 公钥和 apt 源:

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

然后更新系统并安装 Docker CE:

apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装完成可以使用 docker version 命令检查是否安装成功。

安装 Docker Compose

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

安装完成可以使用 docker-compose version 命令检查是否安装成功。

Docker 下安装 umami 网站统计

创建 umami 文件夹并打开:

mkdir umami
cd umami

在文件夹下新建 docker-compose.yml 文件:

vim docker-compose.yml

按 i 编辑填入以下内容:

version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      APP_SECRET: hello.umami
    depends_on:
      db:
        condition: service_healthy
    restart: always
  db:
    image: postgres:latest
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - umami-db-data:/var/lib/postgresql/data
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 5
volumes:
  umami-db-data:

按 Esc 键退出编辑,并 :wq 保存。

安装并启动:

docker compose up -d

此时,打开 http://server_ip:3000 即可登录 umami 开始使用了。

默认账号:admin 默认密码:umami

Nginx Proxy Manager 就是一个 Nginx 的代理管理器,它最大的特点是简单方便。
即使是没有 Nginx 基础,也能轻松地用它来完成反向代理的操作,而且因为自带面板,操作极其简单,非常适合配合 docker 搭建的应用使用。
Nginx Proxy Manager 后台还可以一键申请 SSL 证书,并且会自动续期,方便省心。

Docker 下安装 Nginx Proxy Manager

创建 nginx 文件夹:

mkdir nginx
cd nginx

在文件夹下新建并修改 docker-compose.yml 文件:

vim docker-compose.yml

按 i 编辑填入以下内容:

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  • 80 是 nginx 的 HTTP 端口,您可以根据自身情况修改
  • 443 是 nginx 的 HTTPS 端口,您可以根据自身情况修改
  • 81 是 Nginx Proxy Manager 的管理界面端口

按 Esc 键退出编辑,并 :wq 保存。

安装并启动:

docker compose up -d

此时,打开 http://server_ip:81 即可登录 Nginx Proxy Manager 开始使用了。

默认账号:[email protected] 默认密码:changeme

首次使用 Nginx Proxy Manager 会要求修改邮箱、密码等信息,根据提示自行完成修改。

使用 Nginx Proxy Manager 反向代理 umami

设置反向代理:

打开导航栏的 Hosts - Proxy Hosts - Add Proxy Host,输入指向服务器的域名,以及反代协议 + 目标IP + 端口,然后点 SAVE 保存。

如果 Nginx Proxy Manager 和 umami 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP 并填入目标 IP 即可。

部署 SSL 证书:

Nginx Proxy Manager 默认提供 Let's Encrypt 的 SSL 证书在线申请,也支持添加自己申请的 SSL 证书。

打开导航栏的 SSL Certificates - 右上角 Add SSL Certificate - Custom

根据指示,填写 SSL 证书名称,选择私钥文件和证书文件,然后点 SAVE 进行保存。

回到 Proxy Hosts 中,找到之前添加的域名,然后进行修改。切换到 SSL 选项栏,选择刚刚添加的自定义 SSL 证书,然后点保存。

此时可以用直接使用域名访问 umami 后台了。