1. 项目概述:一个自托管的“个人数字家园”
如果你和我一样,对把个人数据、应用和服务完全掌控在自己手里有执念,那么你肯定不止一次地折腾过各种自托管方案。从在树莓派上跑个博客,到在NAS里塞满Docker容器,我们总在寻找那个“终极”的解决方案——一个能让我们像管理手机App一样,轻松部署和管理各种自托管服务的平台。几年前,当我第一次接触到“getumbrel/umbrel”这个项目时,我感觉自己找到了答案。它不仅仅是一个软件,更像是一个为你量身打造的、开箱即用的“个人数字家园”操作系统。
Umbrel的核心定位非常清晰:让自托管变得像使用智能手机一样简单。它基于成熟的Linux发行版(通常是Ubuntu),但将底层所有的复杂性都封装在了一个极其友好的图形化Web界面之后。你不需要懂命令行,不需要手动配置Nginx反向代理,也不需要为每个应用单独设置数据库。Umbrel提供了一个应用商店(App Store),里面集成了数十个经过精心打包和预配置的自托管应用,从比特币全节点(Bitcoin Node)、闪电网络节点(Lightning Node),到Nextcloud(个人云盘)、Jellyfin(媒体服务器)、Home Assistant(智能家居中枢),再到Bitwarden(密码管理器)、Vaultwarden(自托管Bitwarden)、Pi-hole(网络广告拦截)等等。你只需要点击“安装”,几分钟后,一个功能完整、配置妥当的服务就运行起来了,并且自动获得了HTTPS证书和安全的子域名访问。
这个项目最初在比特币和加密货币社区声名鹊起,因为它提供了可能是最傻瓜式的比特币和闪电网络节点部署方案。但它的野心远不止于此。Umbrel的愿景是成为所有自托管服务的统一入口和管理平台,让每个人都能真正拥有自己的数据主权。想象一下,你的照片存在自己的Nextcloud里,你的密码由自己服务器上的Bitwarden管理,你的家庭自动化完全由本地的Home Assistant控制,你的所有财务交易通过你自己的比特币节点验证——这一切,都通过一个漂亮的、统一的仪表板来管理。这就是Umbrel试图构建的世界。
2. 核心架构与设计哲学拆解
2.1 容器化与微服务架构:一切皆Docker
Umbrel之所以能实现“一键安装”的魔法,其根基完全建立在Docker容器化技术之上。这是它最核心、也最明智的技术选型。每一个在Umbrel应用商店里的“应用”,本质上都是一个或多个Docker容器的组合包,通常通过docker-compose.yml文件来定义。
为什么是Docker?
- 隔离性与安全性:每个应用运行在独立的容器中,拥有自己的文件系统、网络栈和进程空间。这意味着Nextcloud的漏洞不会影响到Bitwarden,Jellyfin的崩溃不会拖垮整个系统。这种隔离是生产环境可靠性的基石。
- 环境一致性:开发者将应用及其所有依赖(特定版本的编程语言、数据库、库文件)打包成一个镜像。无论在树莓派、旧笔记本还是专业服务器上,只要镜像相同,运行行为就完全一致。彻底解决了“在我机器上好好的”这类问题。
- 部署的极致简化:对于用户而言,复杂的安装步骤被简化为一条
docker-compose up -d命令(由Umbrel后台执行)。对于开发者而言,他们只需要维护一个Docker镜像和Compose文件,无需为不同的硬件或Linux发行版编写多套安装脚本。 - 资源管理与更新便捷:Umbrel可以统一监控所有容器的资源使用情况(CPU、内存),并且更新应用通常只需要拉取新的镜像并重启容器,比传统方式干净利落得多。
在Umbrel的/umbrel目录下,你会看到清晰的结构:每个应用都有自己独立的子目录,里面存放着其持久化数据(data)、配置文件以及那个核心的docker-compose.yml。这种结构强迫实现了数据与应用的分离,使得备份、迁移和故障恢复变得有章可循。
2.2 反向代理与动态DNS:内网穿透与安全访问
安装应用只是第一步,如何安全、方便地从家庭网络外部访问这些服务,是自托管面临的另一大挑战。Umbrel巧妙地集成了两大组件来解决这个问题:Caddy和Tor(可选)。
Caddy:自动HTTPS的反向代理Umbrel默认使用Caddy作为反向代理服务器。与Nginx或Apache相比,Caddy最大的优势在于其自动HTTPS功能。你只需要在Umbrel的设置中提供一个域名(比如umbrel.example.com),并将该域名的DNS A记录指向你家的公网IP地址(或DDNS域名),Caddy就会自动与Let‘s Encrypt通信,为你申请并续签免费的SSL/TLS证书。所有通过该域名对Umbrel应用的访问,都会自动被重定向到HTTPS,确保通信加密。
Caddy的配置文件通常是自动生成的,它根据你安装的应用,动态创建路由规则。例如,当你安装Nextcloud后,Caddy会自动添加一条规则,将nextcloud.your-umbrel-domain.com的请求转发到Nextcloud容器的内部端口(如8080)。这一切对用户完全透明。
Tor洋葱服务:无需公网IP的访问方案不是所有人都有固定的公网IP,或者愿意将家庭网络直接暴露在互联网上。Umbrel提供了通过Tor洋葱服务访问的选项。启用后,Umbrel会为你的仪表板和每个应用生成一个.onion结尾的Tor地址。你可以通过Tor浏览器在任何网络下安全地访问你的服务。数据在Tor网络中加密传输,你的家庭IP地址被完美隐藏。这对于访问比特币节点这类对隐私要求极高的服务尤其有吸引力。当然,Tor网络的延迟相对较高,不适合传输大文件(如视频流),但它提供了一个极其重要的、开箱即用的备选访问方案。
2.3 数据持久化与备份策略
自托管的核心是数据。如果数据丢了,一切归零。Umbrel在数据管理上遵循了清晰的原则:
- 卷映射(Volume Mounting):这是Docker数据持久化的标准做法。在应用的
docker-compose.yml中,你会看到类似- ./data:/data的配置。这会将容器内的/data目录映射到宿主机上该应用目录下的./data文件夹。所有应用产生的关键数据(数据库文件、上传的文档、媒体库等)都存储在这里,容器本身是无状态的,可以随时销毁和重建。 - 集中化的数据目录:所有应用的数据默认都存储在
/umbrel/app-data/目录下,按应用名组织。这为整体备份提供了极大的便利。你只需要定期备份整个/umbrel目录(或者至少是/umbrel/app-data和/umbrel/umbrel配置目录),就相当于备份了你的整个数字家园。 - Umbrel OS的“快照”功能:在运行Umbrel OS(其定制的操作系统)的设备上,系统层面提供了“快照”功能。这类似于系统还原点,可以快速将整个系统(包括应用和数据)回滚到某个历史状态,是应对软件更新失败或配置混乱的终极安全网。
注意:虽然Umbrel简化了管理,但备份的责任最终在用户自己。务必定期将
/umbrel目录拷贝到另一个物理硬盘或云端存储(例如通过Nextcloud同步到另一个地方)。我曾因为SD卡损坏丢失过数据,那是一次惨痛的教训。
3. 硬件选型与系统安装实操指南
3.1 硬件选择:从树莓派到迷你PC
Umbrel对硬件的要求非常灵活,但选择正确的硬件直接决定了体验。
经典之选:树莓派 4B/5 (4GB/8GB RAM)
- 优点:低功耗(5-10W)、静音、成本低、社区支持极好。是体验Umbrel最入门和流行的选择。
- 缺点:性能有限,尤其是IO(输入/输出)性能。当运行多个应用,或者应用需要频繁读写数据库(如Nextcloud)时,SD卡或USB连接的硬盘可能成为瓶颈,导致界面卡顿。
- 实操建议:
- 绝对不要用SD卡作为主存储!SD卡的读写寿命和速度在持续读写负载下是灾难性的。这可能是新手最大的坑。
- 务必使用USB 3.0外接SSD硬盘作为系统盘和数据盘。树莓派4的USB 3.0接口速度足以让SSD发挥绝大部分性能,体验有质的飞跃。
- 为树莓派配备一个良好的散热外壳和风扇,防止过热降频。
性能进阶:英特尔NUC/迷你PC
- 优点:x86架构,性能强大,兼容性极佳。拥有真正的SATA或NVMe接口,SSD性能可以完全释放。可以轻松应对媒体转码(Jellyfin)、虚拟机等重负载。
- 缺点:功耗较高(20-50W),成本也更高。
- 实操建议:如果你计划运行超过5个应用,或者包含Jellyfin(需要硬件转码)、PhotoPrism(人脸识别)等计算密集型服务,迷你PC是更稳妥的选择。旧款的企业级迷你电脑(如戴尔OptiPlex Micro、联想ThinkCentre Tiny)在二手市场性价比很高。
存储配置黄金法则:
- 系统盘:至少128GB SSD。用于安装Umbrel OS和系统文件。
- 数据盘:根据需求配置。如果用于媒体库,建议1TB以上的HDD或SSD。强烈建议将数据盘与系统盘物理分离,这样在升级或重装系统时,数据盘可以完全保留。
3.2 系统安装与初始化
Umbrel提供了两种安装方式:Umbrel OS(完整操作系统镜像)和Docker方式(在现有Linux系统上安装)。
方式一:刷写Umbrel OS镜像(推荐给新手和树莓派)这是最“纯净”和官方推荐的方式。你从官网下载对应设备(树莓派、通用x86_64)的.img镜像文件,然后用BalenaEtcher等工具将其刷写到SD卡或USB SSD中。插入设备,上电,等待约10-20分钟,系统即完成初始化。
首次访问与设置:
- 在同一局域网下,用浏览器访问
http://umbrel.local。如果.local域名解析失败,你需要查看路由器后台,找到Umbrel设备的IP地址,然后访问http://<设备IP>。 - 首次访问会引导你创建管理员账户、设置设备名称和密码。这个密码至关重要,请务必使用强密码并妥善保管。
- 接下来是关键一步:设置存储位置。如果你接了外置硬盘,系统会提示你是否将数据迁移到外置硬盘。请务必选择“是”。这将把所有的应用数据都存储在外置硬盘上,系统盘只保留核心OS。
- 最后,设置你的Umbrel域名。你可以使用免费的DDNS服务(如DuckDNS、No-IP)获得一个域名,并在这里填写。这样Caddy才能为你自动配置HTTPS。如果你暂时没有公网IP或不想设置,可以先跳过,后续在设置中配置。
方式二:在现有Linux上通过Docker安装适合已经在运行Ubuntu/Debian等系统的服务器用户。本质上,你是在手动运行Umbrel的Docker Compose项目。
# 克隆仓库 git clone https://github.com/getumbrel/umbrel.git cd umbrel # 启动(使用生产环境配置) ./scripts/start这种方式更灵活,但需要你自行处理系统更新、防火墙、反向代理(如果你不用Umbrel自带的)等事宜。对于有经验的用户,可以更深度地定制。
实操心得:对于绝大多数用户,尤其是树莓派用户,无脑选择Umbrel OS镜像安装。它省去了无数底层配置的麻烦,并且集成了硬件优化和OTA(空中下载)更新功能,系统升级一键完成,体验最完整。
4. 核心应用生态与部署实战
Umbrel的应用商店是其灵魂所在。这些应用并非简单的Docker镜像拉取,而是经过了Umbrel团队的测试、整合与优化,确保了在Umbrel环境下的最佳兼容性和一键配置。
4.1 比特币与闪电网络套件:原生优势
这是Umbrel的“杀手锏”应用群。
- Bitcoin Core:安装后,它会开始同步整个比特币区块链(目前超过500GB)。这是一个需要数天甚至数周的过程,取决于你的网络和硬盘速度。同步完成后,你就拥有了一个完全验证交易的全节点,可以独立验证交易,无需信任任何第三方。
- Lightning Node (LND):在Bitcoin Core同步完成后,你可以安装闪电网络节点。Umbrel集成了Ride The Lightning (RTL)或ThunderHub作为图形化管理界面。你可以通过它们创建通道、进行支付、接收闪电发票。对于普通用户,这可能有些复杂,但它代表了比特币支付网络的未来。
- 收益类应用:如Pool(一个非托管的比特币挖矿协议聚合器)或Sparrow Wallet(一个连接到你自己节点的桌面钱包)。这些应用让你在掌握主权的同时,还能探索一些进阶功能。
部署注意:运行比特币全节点需要大量存储空间和持续的读写。务必使用性能可靠的硬盘(最好是SSD),并确保设备24小时不间断运行。初次同步时,可以通过“区块过滤器”模式(如prune=550)来减少存储占用,但会牺牲一些隐私性。
4.2 个人云与媒体中心:数据自托管核心
- Nextcloud:这是你的自托管Google Drive/Dropbox替代品。安装后,你可以上传文件、同步日历、联系人,安装丰富的插件(如OnlyOffice在线协作)。Umbrel版本的Nextcloud通常预配置了Redis缓存和优化的PHP设置,性能比手动安装好很多。
- 性能调优:Nextcloud的数据库(通常是SQLite,但建议换成MariaDB)和文件索引可能成为瓶颈。如果文件很多,首次扫描会非常耗时。建议在安装后,先在后台完成文件扫描,再开始大量使用。
- Jellyfin / Plex:家庭媒体服务器的两大选择。Jellyfin完全免费开源,Plex部分功能需要订阅。你需要将你的电影、电视剧集文件夹通过“卷映射”的方式挂载给Jellyfin容器。它会自动刮削元数据(封面、简介、演员信息)。
- 硬件转码:如果你有英特尔CPU(带核显)或NVIDIA显卡,可以在Jellyfin设置中开启硬件转码,这样在给不同设备串流时,服务器会实时转换视频格式,极大降低CPU占用。在Umbrel的Docker Compose文件中,通常需要额外添加设备映射参数(如
/dev/dri)来传递显卡驱动。
- 硬件转码:如果你有英特尔CPU(带核显)或NVIDIA显卡,可以在Jellyfin设置中开启硬件转码,这样在给不同设备串流时,服务器会实时转换视频格式,极大降低CPU占用。在Umbrel的Docker Compose文件中,通常需要额外添加设备映射参数(如
4.3 网络与智能家居工具
- Pi-hole:网络级的广告和追踪器拦截器。安装后,将你的路由器DNS服务器地址设置为Umbrel设备的IP,所有连接到你家网络的设备(手机、电脑、智能电视)的广告请求都会被拦截。Umbrel上的Pi-hole管理界面可以让你查看详细的拦截统计,管理白名单/黑名单。
- Home Assistant:智能家居集大成者。它将不同品牌、不同协议的智能设备(小米、Philips Hue、Apple HomeKit、MQTT设备等)统一到一个平台中管理,并实现强大的自动化。部署在本地,意味着你的智能家居场景即使在外网断开时也能运行,且所有数据不出家门。
应用安装通用流程:
- 在Umbrel仪表板点击“App Store”。
- 找到应用,点击“Install”。
- 等待Docker镜像拉取和容器启动。有些应用(如Nextcloud)在首次启动时会进行较长时间的自配置。
- 安装完成后,通常会在仪表板生成一个图标,点击即可访问该应用的Web界面。同时,Caddy会自动为其配置一个子域名(如
nextcloud.yourdomain.com)。
5. 网络配置、安全与远程访问详解
让Umbrel安全地从外部访问,是将其从“玩具”变为“工具”的关键一步。
5.1 端口转发与动态DNS(DDNS)
这是最传统也最直接的方式,让你能用自定义域名访问家里的Umbrel。
- 获取域名:你可以购买一个自己的域名,或者使用免费的DDNS服务(如DuckDNS)获得一个像
myhome.duckdns.org这样的域名。 - 路由器设置端口转发:
- 登录你家路由器的管理后台(通常是
192.168.1.1或192.168.0.1)。 - 找到“端口转发”、“虚拟服务器”或“NAT”相关设置。
- 添加一条规则:
- 外部端口:
443(HTTPS) 和80(HTTP,用于证书申请) - 内部IP地址:你的Umbrel设备在局域网中的IP(如
192.168.1.100) - 内部端口:同样为
443和80 - 协议:TCP
- 外部端口:
- 保存设置。这意味着所有发往你路由器公网IP的443和80端口请求,都会被转发给内网的Umbrel设备。
- 登录你家路由器的管理后台(通常是
- 在Umbrel中配置域名:
- 进入Umbrel的“Settings” -> “Umbrel OS” -> “Domain”。
- 输入你的完整域名(如
umbrel.mydomain.com)。 - Umbrel的Caddy服务会自动尝试为该域名申请Let‘s Encrypt证书。你需要确保在申请时,
80和443端口能从公网访问到你的路由器。
重要安全提醒:端口转发意味着将服务暴露在公网,会面临扫描和攻击。因此:
- 务必使用Umbrel的强密码。
- 定期更新Umbrel OS和所有应用。
- 考虑只转发HTTPS(443)端口,并在路由器或Umbrel前设置Fail2ban之类的工具来屏蔽暴力破解尝试(高级用户)。
5.2 使用Tailscale/ZeroTier组建虚拟局域网(更推荐)
对于大多数用户,我强烈推荐使用Tailscale或ZeroTier这类现代VPN工具,而不是直接端口转发。
原理:它们在互联网上创建一个加密的虚拟局域网(VPN),将你的手机、电脑和家里的Umbrel设备都加入到这个虚拟网络中。加入后,你的设备就像在同一个真实的局域网里一样,可以直接用Umbrel的内网IP(如http://192.168.1.100)访问它。
优势:
- 无需公网IP:即使你的运营商不给你公网IP(比如在多层NAT后),也能用。
- 无需端口转发:路由器上什么都不用设,极大减少了攻击面。
- 端到端加密:所有流量自动加密,安全性极高。
- 配置简单:通常在Umbrel上安装Tailscale应用,然后在你的手机和电脑上也安装Tailscale客户端,用同一个账户登录即可。
在Umbrel上安装Tailscale:
- 在Umbrel应用商店安装“Tailscale”应用。
- 启动后,应用会提供一个链接。用浏览器打开这个链接,登录你的Tailscale账户(或注册一个)。
- 授权这台设备加入你的Tailscale网络。
- 完成。现在,你可以在任何安装了Tailscale客户端的设备上,直接访问Umbrel分配给这台设备的Tailscale内网IP(如
100.x.x.x)来管理Umbrel。
这是我目前使用的主要方式,安全又省心。远程管理Nextcloud、Bitwarden,或者查看Home Assistant,都像在本地一样。
5.3 备份与恢复的完整策略
自托管的数据无价,必须有多重备份。
Umbrel本地快照(仅Umbrel OS):这是最方便的“后悔药”。在设置中创建快照,系统会保存当前状态。如果应用更新失败或配置出错,可以快速回滚。但注意,快照通常保存在同一块硬盘上,无法防范硬盘物理损坏。
手动文件级备份(核心):
- 备份目标:整个
/umbrel目录,或者至少是/umbrel/app-data(所有应用数据)和/umbrel/umbrel(Umbrel自身配置)。 - 备份方法:
- 使用
rsync命令:可以定期通过SSH(需在Umbrel设置中启用)将目录同步到另一台NAS或服务器。
# 示例:从本地备份到远程服务器 rsync -avz --delete /umbrel/ user@backup-server:/path/to/backup/umbrel-backup/- 使用Nextcloud/云存储:在Umbrel内部安装Nextcloud后,可以配置其将
/umbrel/app-data中的重要数据(如文档、照片)再同步到另一个远程Nextcloud实例或商业云盘,实现“云备份”。
- 使用
- 备份频率:对于频繁变动的数据(如Nextcloud文件),可以每天增量备份。对于配置(如docker-compose文件),每周或每月备份一次即可。
- 备份目标:整个
应用数据导出功能:许多应用自身支持数据导出。例如,Bitwarden/Vaultwarden可以导出加密的
.json备份文件;Home Assistant可以创建完整快照并下载。将这些导出文件也纳入你的备份计划中,作为最后一道防线。
6. 高级维护、故障排查与性能优化
6.1 通过SSH进行底层管理
虽然Umbrel提供了漂亮的Web界面,但掌握SSH访问能力是进阶用户的必备技能,用于排查问题和执行高级操作。
- 启用SSH:在Umbrel Web界面的“Settings” -> “Umbrel OS”中,找到SSH设置并启用。它会提示你添加你的公钥。强烈建议使用SSH密钥对登录,禁用密码登录,这是最重要的安全实践之一。
- 连接:使用终端工具(如macOS的Terminal, Windows的PuTTY或WSL),通过
ssh umbrel@<你的umbrel设备IP>连接。 - 常用命令:
docker ps:查看所有正在运行的容器状态。这是检查应用是否正常启动的第一命令。docker logs <容器名或ID>:查看特定容器的日志输出,是排查应用启动失败、报错的最直接方式。例如docker logs nextcloud。docker-compose -f /umbrel/apps/<app-name>/docker-compose.yml logs:查看指定应用的Compose日志。df -h:查看磁盘空间使用情况。自托管服务很容易吃满硬盘。htop:查看实时系统资源(CPU、内存)占用情况。需要先安装(sudo apt install htop)。
6.2 常见问题与排查实录
问题1:应用安装失败或一直显示“安装中”
- 可能原因:Docker镜像拉取超时(网络问题)、端口冲突、磁盘空间不足。
- 排查步骤:
- 检查日志:通过SSH进入,使用
docker logs umbrel-app-store查看应用商店容器的日志,或者直接查看对应应用的日志。 - 检查端口:使用
sudo netstat -tulpn | grep :端口号检查应用想用的端口是否已被占用。 - 清理Docker:有时拉取镜像不完整会导致问题。可以尝试
docker system prune -a清理所有未使用的镜像、容器和网络,然后重试安装(注意:这会删除所有未运行的容器和未使用的镜像,请谨慎操作)。
- 检查日志:通过SSH进入,使用
问题2:访问应用时出现“502 Bad Gateway”或“连接被拒绝”
- 可能原因:应用容器没有成功启动,或者Caddy反向代理配置错误。
- 排查步骤:
docker ps确认该应用的容器状态是否为“Up”。如果不是,用docker logs查原因。- 检查Caddy容器日志:
docker logs umbrel-caddy。看它是否成功生成了该应用的代理配置。 - 重启应用或重启Umbrel服务:有时简单的重启能解决临时性问题。
问题3:系统运行一段时间后变卡顿
- 可能原因:内存不足、磁盘IO瓶颈(尤其是树莓派用SD卡)、某个应用崩溃占用大量资源。
- 排查步骤:
- 运行
htop,按内存(MEM%)或CPU(CPU%)排序,找出“罪魁祸首”。 - 运行
df -h和iostat -x 5(需安装sysstat)查看磁盘空间和IO等待情况。如果%util持续接近100%,说明磁盘是瓶颈。 - 针对树莓派:检查CPU温度(
vcgencmd measure_temp),过热会导致降频。确保散热良好。 - 考虑为Umbrel设备增加虚拟内存(Swap),在内存不足时提供缓冲。但Swap在SD卡上会加剧卡顿,仅在SSD上考虑此操作。
- 运行
问题4:如何更新Umbrel OS和应用?
- 应用更新:在Umbrel仪表板的“App Store”中,有更新的应用会显示“Update”按钮。一键更新即可。更新前,请务必确认该应用有可靠的备份机制,或者你已手动备份其数据。
- 系统更新:在“Settings” -> “Umbrel OS” -> “System”中,如果有可用的OS更新,会提示。Umbrel OS的更新通常比较稳定,但更新前强烈建议创建一个系统快照。
6.3 性能优化与资源限制
随着安装的应用越来越多,需要对资源进行管理,防止某个应用拖垮整个系统。
限制容器资源:你可以编辑应用的
docker-compose.yml文件,为容器添加资源限制。# 示例:在服务的定义下添加 services: nextcloud: image: nextcloud:latest deploy: # 注意:这是Docker Compose v3的语法,确保文件版本正确 resources: limits: cpus: '1.0' # 最多使用1个CPU核心 memory: 1G # 内存限制为1GB这可以防止一个应用(如媒体转码)吃光所有CPU和内存。
优化数据库:对于Nextcloud这类重度使用数据库的应用,如果使用SQLite,在数据量大时性能很差。建议通过应用内的设置或手动修改配置,将其迁移到MariaDB/PostgreSQL数据库容器中。
使用SSD并优化挂载参数:对于数据盘,在
/etc/fstab中为SSD添加noatime,nodiratime挂载选项,可以减少不必要的磁盘写入,延长寿命并轻微提升性能。
折腾Umbrel的乐趣,一半在于搭建,另一半在于持续的优化和调整。它不是一个设置好就一劳永逸的系统,而是一个随着你需求成长而不断演进的数字基地。从最初的一个比特币节点,到如今承载着我个人云、智能家居、广告过滤乃至家庭监控的集成平台,这个过程让我对“自我主权”有了更深的理解。数据在自己手里,麻烦确实也多一些,但那种掌控感和隐私保障,是任何云服务都无法给予的。如果你正准备踏上自托管之旅,Umbrel无疑是最平坦的起点。