2025 年的自托管(Self-Hosting)

2025 年的自托管(Self-Hosting)

原文:Self Hosting Like Its 2025kiranet.org)· 中文翻译

原文链接:kiranet.org/posts/self-...

在近几年,自托管(Self-Hosting)已经兴起,成为替代"老大哥"式数据收集服务的热门选择。坦白说,有一段时间我几乎沉迷于尝试新软件、搭建各种仪表盘、安装一堆我其实并不需要的应用。如今我的这套环境已经基本保持不变地稳定运行了一年多,我想借此机会总结一下自己学到的东西,并介绍一些我个人觉得特别有用、但还没有被广泛知晓的软件。(而且这也正好给了我一个写第一篇博客文章的话题,哈哈 ^^)。我并不是想把任何东西包装成"最佳方案"------毕竟问题各不相同,解决方案也各有千秋。这篇文章也不为任何软件打广告。

容器运行时(Container Runtimes)

如今,容器已经成为了托管的默认选择,传统部署方式越来越少见。这对 Homelab 爱好者来说是个好消息,因为容器不仅能简化软件部署,而且在性能效率上也优于虚拟机。虽然 Docker 似乎是几乎所有人心中的首选,但我很乐意探索其他替代方案。需要说明的是,我关注的是这些运行时在家用环境中的使用,而不是企业级场景。

Docker

作为最早被广泛采用的容器运行时,Docker 在其领域是一个巨头。得益于它详尽的文档,即使是 IT 技能不太高的人,通常也能从 GitHub 上复制粘贴一份 docker-compose.yml 文件轻松上手。当然,安全方面的考量则是另一个话题。

Podman

Podman 是一个新兴的容器运行时,凭借其无根(rootless)架构和对 Docker CLI 的兼容性逐渐受到关注。对于重视安全、又不想运行守护进程(或者想为工作学习这些知识)的人来说,它是一个很有吸引力的选择。Podman 允许用户用几乎相同的命令管理容器,甚至提供别名让你可以继续使用 docker 命令,从原生 Docker 迁移的过程相当平滑。随着社区支持和文档的不断增长,它变得越来越易用------尽管一开始可能会有点令人抓狂。此外,还有 Podman Quadlets,可以让你通过 systemd 以声明式方式管理容器,用来替代 docker compose。

Kubernetes

对于喜欢折腾的自托管爱好者来说,Kubernetes 可能有些大材小用,但它确实是一个迷人的工具,能以一种"管理一整群实例"的优雅方式来管理你的容器化应用。Kubernetes 常常因能编排复杂、可扩展的部署而备受赞誉,对于那些想把企业级能力带进家庭实验室的人来说,它是一个很有成就感的挑战。不过,在家里使用 Kubernetes 的主要价值在于学习本身------它很复杂,而且它的大多数功能对多数用户来说都用不上。

通过 Web 界面管理容器

有些用户可能更喜欢在硬盘上堆放一堆 compose 文件;但如果你不想每次容器崩溃、需要查看日志时都 SSH 进服务器,那么也有不少基于 Web 的工具可以让这件事变得更舒适。

Portainer

我已经使用 Portainer 相当长一段时间了。它在 Homelab 和专业环境中的广泛采用,使它成为通过实践来学习的好工具。在我看来,它是最稳定的 Web 管理容器控制界面。它与 Docker、Kubernetes 甚至 Podman 都能无缝集成。Portainer 提供开源社区版,以及带有更多功能的企业版------企业版可以免费获得三个许可证。

Dockge

Dockge 相对较新,出自 Uptime Kuma(一个非常棒的工具)的开发者之手。虽然它还没有达到 Portainer 那样的成熟度,但 Dockge 在简洁性上确实非常出色。它更新也很勤快,开发者在 GitHub 上处理问题相当及时。

反向代理与 VPN

想随时随地访问你的自托管应用,主要有两种方式:把它们暴露到公网上,或者通过 VPN 访问。VPN 更安全,而把服务暴露到公网当然更方便------前提是你清楚自己在做什么。

Pangolin

这是一个新颖的解决方案,它把 VPN 和反向代理无缝地整合进一个易于部署的软件包中。它就像是自托管的 Cloudflare。你只需要一台 VPS 或类似的环境来托管入口服务器(ingress server),就可以在任何运行着你应用的环境中安装 VPN 客户端。它还集成了 Crowdsec,并具备基础的 SSO(单点登录)能力。事实上,写这篇文章的动机正是源于我对这款软件的热情------我真的觉得它非常出色,假以时日,它很有可能成为替代现有方案的新标准。

Nginx Proxy Manager

我注意到很多人都在用这个软件,但我个人不太喜欢它。它是 Nginx 的一个略显毛病的 Web 前端,用于创建 TCP/UDP/HTTP(S) 代理。虽然它宣称功能丰富,还提供了用户友好的 Web 管理界面,但我发现它有些功能------比如密码保护------不太可靠。我始终没能让它持续稳定地运行。话说回来,它是我尝试过的第一个同类软件,而且当它正常工作时,它确实能很高效地完成任务。

Caddy

如果你想避开花哨的 Web 界面,更愿意编辑一个直白的配置文件,让服务器自己搞定从反向代理到 Let's Encrypt HTTPS 的一切事务,那么 Caddy 就是你的选择。不过,由于没有 Web 界面,我不太推荐完全没基础的新手直接用。但如果你欣赏 UNIX 式的简约工具链,Caddy 是一个非常出色的选择。

NetBird

如果你熟悉 Tailscale,那你用起 NetBird 来会非常顺手。它充当着一个替你打理 WireGuard 网络的 VPN 服务器,大大降低了复杂度。你可以选择自托管,也可以使用他们在云端提供的慷慨免费套餐。

Uptime Kuma

如果你只想要简单直接的监控,又觉得搭一整套 Zabbix 或 Grafana 太吓人,那这款软件简直是救星。只需要一次部署,你就能监控自己的服务,并通过各种各样的渠道接收通知,包括......

Gotify

Gotify 是一个通知管理软件。你可以在手机上安装它的应用,然后通过一个简单的 Web 请求就能触发通知。它还与很多其他自托管软件有集成,比如 Uptime Kuma。非常实用。

其他有用的资源:帮你找到更多应用

Awesome-Selfhosted

这是一个收集了各类软件的大合集,不过内容有点缺乏整理,而且里面也列出了一些已经完全停止开发的项目。

Selfh.st

这是所有资源里我最喜欢的一个。它是一份很棒的每周通讯,会推荐一些非常小众的软件,还有一个可排序的大型应用目录。非常好的网站!

awesome-docker-compose

这是一个"拿来即用"的 compose 文件合集。它们不一定总是最佳选择,因为有些应用在更新时会引入破坏性变更,但总的来说,它依然是一个相当不错的合集。

相关推荐
叶总没有会2 小时前
Docker 基础+实战
运维·docker·云原生·容器
j7~3 小时前
【C++微服务项目开发脚手架】(环境篇)虚拟机 + Docker + MySQL/Redis/RabbitMQ/ES/etcd/FastDFS 全套配齐
linux·c++·ubuntu·docker·vmware·项目开发·微服务脚手架
天天喝旺仔3 小时前
Go 泛型实战:从类型参数、约束到可复用泛型容器与函数
数据结构·算法·容器·go
小马同学-3 小时前
docker容器
docker·容器
DarkAthena3 小时前
拒绝Docker Desktop-在win11上运行docker容器的替代方案
docker
羑悻的小杀马特4 小时前
从写 YAML 到集群自愈:KES-Operator 把 KES 集群接进 Kubernetes 原生体系
运维·数据库·容器·kubernetes
bosins13 小时前
彻底解决 WSL 2.7+ 空闲自动关闭/内存回收导致 Docker 中断的问题
linux·docker·wsl·dashboard
orangapple15 小时前
在docker里启动 orthancteam/orthanc
docker
fengkai454517 小时前
八、Docker详解4-5
运维·docker