通过宝塔软件商店安装 Umami 后,服务状态显示“已停止”,重装了还是这样。并且 Docker 容器列表里是空的。点击“重建应用”总是无法完成配置。这通常意味着容器在创建时失败了,或者创建后立即退出并被系统清理了。别担心,我们按步骤来排查和解决,尽量用图形界面操作,少用命令行。

针对常见问题的解决方案

根据你提供的“服务停止”和“重装无效”的情况,以下三种方法最可能解决问题。建议按顺序尝试。

方案一:切换 Umami 版本(成功率最高)

如果你是近期安装的,大概率是遇到了 2.13.1 版本的 Bug,回退到 2.12.1 版本就能解决。

  1. 在宝塔 软件商店 找到已安装的 Umami,点击 设置

  2. 找到 版本号 或 镜像标签 选项。

  3. 如果可以直接选,尝试选择 2.12.1;如果没有选项,则需要卸载当前的 Umami 应用。

  4. 手动安装旧版本

    • 点击软件商店的 Docker → 镜像

    • 搜索 umami,找到官方镜像,点击 导入,选择标签为 2.12.1

    • 然后点击 容器 → 添加容器,手动创建:

      • 镜像:选择刚才导入的 umami:2.12.1

      • 端口映射:服务器端口填 3000,容器端口填 3000

      • 环境变量:必须添加 DATABASE_URL(格式参考下方第五步)

方案二:增加服务器内存(如果是轻量应用服务器)

很多轻量服务器内存只有 1GB 或 2GB。Umami 的 Docker 容器(数据库+应用)启动时内存不足,系统会直接“杀掉”它(日志里会显示 Killed)。

  • 验证:在 Docker → 容器 页面,查看两个容器的内存占用,如果加起来超过了你服务器的物理内存,就是这个问题。

  • 解决:增加服务器内存(升级配置),或者在 Docker → 设置 里限制容器的内存使用量,但建议直接升级配置最省心。

方案三:彻底卸载并重装(解决配置残留)

重装无效,说明配置文件可能有残留。可以这样操作:

  1. 卸载:在 软件商店 找到 Umami,点击 卸载,并勾选 清除所有配置数据(如有此选项)。

  2. 删除残留:在 文件 管理器里,检查并删除 /www/docker/umami 或 /www/umami 目录。

  3. 重启服务器:在宝塔面板首页左上角点击 重启 服务器。

  4. 重装:服务器重启后,再回到 软件商店 重新安装 Umami。


宝塔软件商店的 Umami 应用使用了自定义镜像仓库 docker.umami.dev,但这个域名无法解析(no such host),导致镜像拉取失败,容器无法创建。所以你的 Docker 容器列表是空的,服务一直显示“已停止”。

我们不再依赖这个有问题的应用,改用手动方式创建 Umami 容器,使用官方 Docker Hub 上的稳定镜像。全程在宝塔图形界面操作,不需要敲命令。


操作前准备

  1. 在宝塔软件商店中,卸载 已安装的 Umami 应用(如果还有残留)。

  2. 在 Docker → 容器 中,确认没有任何 umami 相关的容器。

  3. 在 Docker → 镜像 中,删除可能残留的 umami 镜像(可先保留,不影响)。


第一步:安装 PostgreSQL 数据库(用宝塔管理器)

Umami 需要 PostgreSQL 数据库,我们用宝塔的 PostgreSQL 管理器来创建,方便后期管理。

  1. 在宝塔左侧点击 软件商店

  2. 搜索 PostgreSQL管理器,点击 安装

  3. 安装完成后,点击 设置 → 添加数据库

    • 数据库名umami

    • 用户名umami

    • 密码:自己设置一个(比如 Umami@2026,记下来)

    • 端口默认 5432

    • 点击 提交

如果安装 PostgreSQL 管理器时提示“已安装”,则直接进入设置添加数据库。


第二步:拉取官方 Umami 镜像

  1. 在宝塔左侧点击 Docker → 镜像

  2. 点击右上角的 获取镜像

  3. 输入:umami-software/umami:latest(这是官方稳定版)

    • 如果担心新版本有 bug,可以换成 umami-software/umami:2.12.1(更稳定)。

  4. 点击 确定,等待下载完成(约 100-200MB)。


第三步:手动创建 Umami 容器

  1. 在 Docker → 容器 页面,点击 添加容器

  2. 按以下配置填写:

配置项 填写内容
容器名称 umami_app(可自定义)
镜像 点击“选择镜像”,选你刚拉取的 umami-software/umami:latest(或 2.12.1)
端口映射 点击“添加”
服务器端口:3000
容器端口:3000
协议:TCP
环境变量 点击“添加”,依次添加:

① DATABASE_TYPE → postgresql
② DATABASE_URL → postgresql://umami:你的密码@127.0.0.1:5432/umami
③ HASH_SALT → 任意字符串(如 abc123xyz
④ APP_SECRET → 另一个任意字符串(可选)

注意

  • DATABASE_URL 中的密码换成你在第一步设置的密码。

  • 如果数据库和容器在同一台服务器,IP 填 127.0.0.1 即可。

  • 确保端口 5432 没有被防火墙拦截(宝塔安全中已放行,一般不需要额外操作)。

  1. 其他选项保持默认,点击 提交

提交后,容器会自动启动。稍等几秒,回到 容器 列表,你应该能看到 umami_app 状态为 运行中


第四步:验证 Umami 是否正常运行

  1. 在宝塔 安全 页面,确认 3000 端口已放行(之前应该已添加)。

  2. 在浏览器中访问:http://你的服务器IP:3000

    • 如果看到 Umami 登录界面,说明成功!

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

    • 登录后立即修改密码,并切换中文。

如果页面打不开,可以检查容器日志:

  • 在容器列表中找到 umami_app,点击右侧 日志 按钮。

  • 查看是否有 Server listening on port 3000 字样,如果出现则表示正常启动。


第五步:配置域名访问(推荐)

直接通过 IP 访问虽然能用,但使用域名并启用 HTTPS 更安全,且跟踪脚本更容易部署。

5.1 添加网站

  1. 宝塔左侧 网站 → 添加站点

  2. 域名填写你的域名(如 umami.example.com),PHP 版本选 纯静态,提交。

5.2 配置反向代理

  1. 点击刚创建的站点右侧的 设置 → 反向代理 → 添加反向代理

  2. 填写:

    • 代理名称umami

    • 目标 URLhttp://127.0.0.1:3000

    • 发送域名$host

  3. 保存。

5.3 申请 SSL 证书

  1. 在站点设置中点击 SSL

  2. 选择 Let’s Encrypt,勾选域名,申请证书。

  3. 开启 强制 HTTPS

5.4 解析域名

在你的域名 DNS 管理后台,添加一条 A 记录,将 umami.example.com 指向你服务器的 IP。

配置完成后,就可以用 https://umami.example.com 访问 Umami 了。


常见问题

Q1:容器启动后立即停止

  • 查看容器日志,若提示数据库连接错误,检查 DATABASE_URL 中的密码、IP、数据库名是否正确。

  • 确保 PostgreSQL 管理器中的数据库已启动(在软件商店中查看状态)。

Q2:数据库连接报 no pg_hba.conf entry

  • 可能是 PostgreSQL 默认只允许本地连接,但容器访问需要授权。解决办法:

    • 在宝塔 软件商店 → PostgreSQL管理器 → 设置 → 配置修改,找到 listen_addresses = '*' 并取消注释,然后重启数据库。

    • 或者将 DATABASE_URL 中的 127.0.0.1 改为你服务器的内网 IP(在宝塔面板首页可看到)。

Q3:想用 MySQL 怎么办?

  • Umami 也支持 MySQL,但官方推荐 PostgreSQL。如果一定要用 MySQL,需在环境变量中设置 DATABASE_TYPE=mysql,并将 DATABASE_URL 改为 mysql://用户名:密码@127.0.0.1:3306/数据库名。不过手动安装时建议用 PostgreSQL,更省心。


总结

现在你已成功绕过宝塔软件商店的故障,手动部署了 Umami。后续添加网站、获取跟踪代码的步骤与之前教程一致,可以直接使用。如果还有问题,随时把日志贴出来,我会帮你分析。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注