准备的东西
- 一台能运行Docker Compose的服务器
- 良好的网络环境
安装 Docker
运行
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)并按照指示安装 Docker
部署 Umami
- 创建运行文件夹
mkdir /path/to/umami/ && cd /path/to/umami/- 创建 Docker Compose 文件
touch compose.yml然后使用文本编辑器nano或 vim将下方代码填入 compose.yml
services: umami: image: ghcr.nju.edu.cn/umami-software/umami:latest container_name: umami ports: - "3000:3000" environment: DATABASE_URL: postgresql://umami:umami@db:5432/umami APP_SECRET: replace-me-with-a-random-string depends_on: db: condition: service_healthy init: true restart: always healthcheck: test: ["CMD-SHELL", "curl http://127.0.0.1:23000/api/heartbeat"] interval: 5s timeout: 5s retries: 5 db: image: postgres:15-alpine container_name: umami-db 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: 5volumes: umami-db-data:其中的APP_SECRET可以使用Credentials Generator | LibreChat生成后的JWT_SECRET里的内容或使用以下命令生成一个:
openssl rand -hex 32- 🚀启动
docker compose up -d登录后台
访问127.0.0.1:3000并使用默认的账户信息登录:
- 账号:admin
- 密码:umami
登录后,点击侧边导航栏中的个人资料按钮,然后点击Settings。
接着导航至Profile并点击Change password按钮。
添加站点
- 访问/websites
- 点击
添加网站的按钮,然后填写名字和域名 - 点击
编辑,将跟踪代码填写到网站的<head>内
配置
通过在/path/to/umami/创建.env文件或修改compose.yml中的environment去修改配置,参考Environment variables,下方是一些配置
APP_SECRET
v1.0.0用于保护身份验证令牌的随机字符串。每个安装实例都应有一个唯一值。你可以使用以下命令生成一个:
Terminal window openssl rand -hex 32APP_SECRET = "random string"CLIENT_IP_HEADER
v1.24.0用于检查客户端 IP 地址的 HTTP 头。当你位于使用非标准头的代理之后时,此变量很有用。
CLIENT_IP_HEADER = "header name"COLLECT_API_ENDPOINT
v1.34.0允许你将指标发送到与默认
/api/send不同的位置。这有助于规避某些广告拦截器。COLLECT_API_ENDPOINT = "/my-custom-route"CORS_MAX_AGE
v2.0.0CORS 预检请求的缓存时间(秒)。默认为 24 小时。
CORS_MAX_AGE = 86400DATABASE_URL
v1.0.0DATABASE_URL = "connection string"数据库的连接字符串。这是唯一必需的变量。
DEBUG
v2.0.0针对应用程序特定区域的日志输出。可选值包括
umami:auth、umami:clickhouse、umami:kafka、umami:middleware和umami:prisma。DEBUG = "umami:*"DISABLE_BOT_CHECK
v2.0.0默认情况下,机器人流量会被排除在统计之外。此变量用于禁用机器人检测。
DISABLE_BOT_CHECK = 1DISABLE_LOGIN
v1.26.0禁用应用程序的登录页面。
DISABLE_LOGIN = 1DISABLE_UPDATES
v1.33.0禁用对 Umami 新版本的检查。
DISABLE_UPDATES = 1DISABLE_TELEMETRY
v2.0.0Umami 会收集完全匿名的遥测数据以帮助改进应用程序。如果你不想参与,可以选择禁用此功能。
DISABLE_TELEMETRY = 1ENABLE_TEST_CONSOLE
v2.0.0启用内部测试页面
{host}/console。需要管理员权限。用户可以在该页面向其网站手动触发页面浏览和事件。ENABLE_TEST_CONSOLE = 1FAVICON_URL
v2.18.0用于显示网站图标的服务 URL。
FAVICON_URL = "service URL"默认为
icons.duckduckgo.com:
https://icons.duckduckgo.com/ip3/{{domain}}.ico(中国大陆访问不佳)你可以使用以下备选方案:
https://www.google.com/s2/favicons?domain={{domain}}https://logo.clearbit.com/{{domain}}https://favicon.im/{{domain}}GEO_DATABASE_URL
v2.0.0用于下载 MaxMind 兼容的 MMDB 格式 GeoIP 数据库的 URL。当来自 CDN 的位置头不可用时,用于基于 IP 的位置检测。
GEO_DATABASE_URL = "https://example.com/GeoLite2-City.mmdb"HOSTNAME / PORT
v1.0.0如果你运行的环境要求绑定到特定的主机名或端口(例如 Heroku),你可以添加这些变量,并使用
npm run start-env而非npm start来启动应用。HOSTNAME = "my.hostname.com"PORT = 3000IGNORE_IP
v1.0.0你可以提供一个以逗号分隔的 IP 地址和 CIDR 范围列表,以将其排除在数据收集之外。
IGNORE_IP = "192.168.0.1, 10.0.0.0/24, 2001:db8::/32"LOG_QUERY
v2.0.0如果你在开发模式下运行,此变量会将数据库查询记录到控制台以供调试。
LOG_QUERY = 1PRIVATE_MODE
v2.11.0禁用所有外部网络调用。请注意,由于网站图标来自 duckduckgo.com,此操作也会禁用所有网站图标。
PRIVATE_MODE = 1REMOVE_TRAILING_SLASH
v1.26.0移除所有传入 URL 末尾的斜杠。
REMOVE_TRAILING_SLASH = 1TRACKER_SCRIPT_NAME
v1.26.0允许你为跟踪脚本指定一个自定义名称,以区别于默认的
script.js。这有助于规避某些广告拦截器。不需要
.js扩展名。该值也可以是你选择的任何路径,例如/path/to/tracker。TRACKER_SCRIPT_NAME = "custom-script-name.js"SKIP_LOCATION_HEADERS
v2.15.0跳过使用已知的位置头进行国家/地区/城市检测,强制使用本地 Geo 数据库。
这在代理或 CDN 仅设置了国家(不含地区或城市)头的环境中很有用(例如当 Cloudflare 的 Network > IP Geolocation 开关打开时,仅提供
CF-IPCountry头)。SKIP_LOCATION_HEADERS = 1ALLOWED_FRAME_URLS
v2.3.0一个以空格分隔的 URL 列表,允许其在 iframe 中托管该应用程序。
ALLOWED_FRAME_URLS = "URLs"BASE_PATH
v1.9.0如果你想将 Umami 托管在子目录下,请设置此变量。你可能需要更新反向代理设置以正确处理 BASE_PATH 前缀。
BASE_PATH = "/custom"DATABASE_TYPE
v2.0.0DATABASE_TYPE = "postgresql"要使用的数据库类型。仅 Docker 构建时需要。
FORCE_SSL
v1.0.0此设置将在所有请求的响应头中添加 HTTP
Strict-Transport-Security。请参阅 MDN 文档。FORCE_SSL = 1SKIP_DB_CHECK
v2.0.0在构建过程中跳过
check-db步骤。用于 Docker 构建。SKIP_DB_CHECK = 1SKIP_DB_MIGRATION
v2.0.0在构建过程中跳过 Prisma 迁移步骤。设置
SKIP_DB_CHECK也会跳过此步骤。SKIP_DB_MIGRATION = 1
更新 Umami
当有新版本发布时,可以按照以下步骤进行更新:
- 进入 Umami 的项目目录:
cd /path/to/umami/- 拉取最新镜像并重新启动服务:
docker compose downdocker compose pulldocker compose up -d参考资料
这篇文章是否对你有帮助?
发现错误或想要改进这篇文章?
在 GitHub 上编辑此页