威联通NAS部署umami - 详解

news/2025/11/9 19:22:05/文章来源:https://www.cnblogs.com/yangykaifa/p/19204726

威联通 NAS(用 Docker/Container Station) 上可以用已有的 MySQL 来部署 Umami。

  • Umami 支持的数据库:PostgreSQL、MySQL(≥ 8.0)和 MariaDB(≥ 10.5)。也可以用已运行的 MySQL。
  • Umami 的数据库连接 用环境变量 DATABASE_URL,MySQL 的示例格式是:
    DATABASE_URL=mysql://用户名:密码@主机:3306/数据库名

一、在 NAS 上部署流程

数据库配置

  1. 在 MySQL 上建库和专用用户(替换 umamiuser / password / umami):
CREATE DATABASE umami CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'umamiuser'@'%' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON umami.* TO 'umamiuser'@'%';
FLUSH PRIVILEGES;
  1. 确认 MySQL 版本(确保 ≥ 8.0;若是 MariaDB 请 ≥10.5,且某些 MariaDB 版本需要额外修补/设置)。若有 MariaDB 的问题,社区有相关修复建议。

二、网络配置

  1. 先创建 macvlan 网络(在 NAS 上的终端/SSH 执行)

下面命令中假设 NAS 的物理接口名为 eth0(在 QNAP 上可能是 eth0、bond0、br0 等)。如果不确定,请先运行 ip addr 找到对应用于 LAN 的接口名称,然后替换 eth0。网络子网使用 192.168.1.0/24,网关 192.168.1.1

# 在 QNAP / NAS 的 Shell 上执行(以 root 或有 docker 权限用户)
# 1) 确认宿主机上用于 LAN 的接口(如 eth0)。若不确定,先运行 `ip addr`.
# 2) 创建 macvlan 网络(名字叫 umami_macvlan),并在其中保留 IP 池(这里示例)
docker network create -d macvlan \--subnet=192.168.1.0/24 \--gateway=192.168.1.1 \-o parent=eth0 \umami_macvlan

我这里已经建有另一个macvlan网络dify_lan我就直接用了

  1. 选定ip
    确认 192.168.1.230 没被占用(一定要运行):
# 若能收到响应说明该 IP 已被占用 — 若被占用请先换 IP
ping -c 3 192.168.1.230
# 检查局域网 ARP(若无响应也可能未配置)
arping -c 3 192.168.1.230 || true

如果 ping 有响应,请换一个未占用的 IP(例如 .231 / .232 等)。

3.测试连接在 dify_lan 网络上测试 MySQL 连接

使用一个临时容器(mysql 客户端镜像)连到 dify_lan 网络并测试连接 MySQL:

docker run --rm --network=dify_lan mysql:8.0 \mysql -h192.168.1.6 -P3306 -uumamiuser -pStrongPasswordHere -e "SELECT VERSION();"
  • 成功:会输出 MySQL 版本。表示网络与凭证 OK。

  • 失败:会报超时或认证失败,按错误信息排查(MySQL 是否允许远程、用户权限、NAS 防火墙、端口监听等)。

三、 在 NAS 的 Docker(或 Container Station)里运行 Umami 镜像

可以直接使用官方带 MySQL 的镜像 tag umami:mysql-latest,或使用通用镜像并把 DATABASE_URL 指向外部 MySQL。下面给出一个 docker-compose.yml 示例,把下面文件放到 ~/umami/docker-compose.yml(或特定的目录),并替换 DATABASE_URL / APP_SECRET / HASH_SALT 为真实值,然后在该目录运行 docker-compose up -d。

version: "3.8"
services:
umami:
image: docker.1ms.run/umamisoftware/umami:mysql-latest
container_name: umami
restart: unless-stopped
ports:
- "3000:3000"   # 若不想映射宿主端口可删掉此行
environment:
# 请替换为你的 MySQL 信息(替换信息)
DATABASE_URL: "mysql://umamiuser:StrongPasswordHere@192.168.1.x:3306/umami"
# 请替换为强随机字符串(替换信息)
APP_SECRET: "replace_with_a_long_random_string_here"
HASH_SALT: "replace_with_some_random_salt"
volumes:
- ./umami-uploads:/usr/src/app/public/uploads
networks:
dify_lan_net:
ipv4_address: 192.168.1.230
networks:
dify_lan_net:
external: true
name: dify_lan
  • 关于 <MYSQL_HOST> 的选择

    • 如果 MySQL 就运行在 NAS 主机(非容器),把 <MYSQL_HOST> 填成 NAS 的内网 IP(例如 192.168.1.100)或 127.0.0.1(注意:在容器中 127.0.0.1 指容器自身,通常不能用于访问宿主机 MySQL,除非做了特殊网络配置)。
    • 如果 MySQL 以容器形式运行并在同一个 Docker 网络里,填容器名(例如 mysql),并确保两个容器在同一网络/compose 下。

我这里可能是网络问题要改成bridge模式才能访问到mysql,没有这个问题的跳过,有问题的可以在参考下面:

四、访问服务

在浏览器打开 http://<NAS_IP>:3000
在这里插入图片描述

在 Umami 中,初始账号和密码默认是:

  • 用户名:admin
  • 密码:umami

然后就可以开始愉快的使用了,要发布公网服务的记得做端口转发
使用教程看这里-> umami使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/960668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端八股之Redis - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AGC052 VP 记录

场切 \(0\) 道题,被猜性质猜结论题气笑了. A 后来回想起来,这个题好像确实在北京集训讲过. 有 \(4\) 种合法的构造:\(0\overbrace{1\cdots1}^{n个} \overbrace{0\cdots0}^{n个}\),\(1\overbrace{0\cdots0}^{n个} \…

结合400行mini-react代码,图文解说React原理

引言: 在我学习React原理的时候,一上来看的非常全而细节的书/博客(头大),或者是看的教你实现一个简单mini-react(还是一知半解),最终学的痛苦又效果不好。所以,写了这篇博客,希望能帮助您入门React原理。此外…

UE:告别加载卡顿!一键合并StaticMeshActor方案

© mengzhishanghun 原创文章 首发于 博客园 禁止未经授权转载前言 大型UE场景打包后首次加载时,经常遇到长时间卡顿甚至假死现象。究其原因,成百上千个独立的StaticMeshActor在序列化、实例化时产生了巨大开销…

在Visual Studio使用Qt的插件机制进行开发 - 指南

在Visual Studio使用Qt的插件机制进行开发 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

摸鱼笔记[2]-提取windows已安装的驱动

使用`DriverStoreExplorer`提取windows已安装的海康相机.inf驱动文件.摘要 使用DriverStoreExplorer提取windows已安装的海康相机.inf驱动文件. 实现 [https://github.com/lostindark/DriverStoreExplorer] Driver Sto…

CF2013D 题解

提供一个二分做法。 因为当 \(a_i > a_{i + 1}\) 是做操作是不劣的,所以最终 \(a\) 一定单调不降。那么我们二分一个最小的 \(\max(a_i)\) 和最大的 \(\min(a_i)\),答案就是 \(\max(a_i) - \min(a_i)\)。 下面说一…

题解:AT_agc068_a [AGC068A] Circular Distance

牛牛题,看了很多次才看懂 题意:给出 \(L,n\),问在一个 \(L\) 长的环上,放置 \(n\) 个点,定义两点距离为两种路径中长度较短的长度,问所有放置方式的点的距离最大值之和。 做法: 首先先强制选定 \(0\) 号点,最后…

P14461 题解

消一消元: \[\begin{aligned}F_i&= G_{i - 1} + G_{i - 1} \\&= F_{i - 2} - F_{i - 2} + F_{i - 2} - F_{i - 2} \\&= F_{i - 2} - F_{i - 2} \end{aligned} \]类似的: \[G_i = G_{i - 2} - G_{i - 2} …

Nim 游戏与 SG 函数

已完成今日《Nim 游戏与 SG 函数》大学习。 本文比较基础,并未涉及到各种各样的 Nim 游戏,因为笔者比较菜。 1. 公平组合游戏 定义一个游戏为公平组合游戏,当且仅当:双方都知道当前局面的所有信息。 每一步的操作与…

题解:Luogu P11114 [ROI 2024] 小推车 (Day 1)

题意 有一排编号为 \(1\sim n\) 的座位。有 \(k\) 种饮料,第 \(i\) 名乘客想要喝第 \(a_i\) 种饮料。小推车需要从 \(0\) 位置出发,最终走到 \(n+1\) 位置,按顺序给每名乘客分饮料。推车上有 \(m\) 个瓶子,每个瓶子…

摸鱼笔记[1]-windows设置双网卡优先级(跃点数)

windows系统通过设置跃点数以设置双网卡优先级, 实现工控局域网网卡和互联网网卡各司其职, 电脑同时访问局域网和互联网.摘要 windows系统通过设置跃点数以设置双网卡优先级, 实现工控局域网网卡和互联网网卡各司其职,…

NXP - 用MDK建立基于arm-none-eabi软件链的工程框架

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

用 OKHttp 和 Retrofit 打造稳如磐石的网络请求:连接池与重试机制的实战指南 - 教程

用 OKHttp 和 Retrofit 打造稳如磐石的网络请求:连接池与重试机制的实战指南 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

数字孪生重构智慧园区:众趣科技何以成为 VR 园区领域标杆 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

电脑监控软件,后台监控,千里眼监控

电脑监控软件,后台监控,适合家庭电脑、员工电脑监控 支持异地远程访问,终身授权最低100R,可月付年付 不限设备数量,支持win7、10、11 1、电脑位置显示 2、桌面远程观看 3、桌面文件下载 4、完整记录按键输入 5、智…

【URP】Unity[后处理]运动模糊MotionBlur

Motion Blur 概念与作用 Motion Blur(运动模糊)是一种模拟真实相机在拍摄快速移动物体或自身移动时产生的模糊效果的后处理技术。它通过模糊图像中运动物体的轨迹,增强动态场景的真实感和【从UnityURP开始探索游戏渲…