10 GitHub Repositories to Master Self-Hosting

TL;DR · AI 摘要
这篇文章推荐了10个GitHub仓库,帮助开发者掌握自我托管技能,涵盖从发现工具到部署、自动化、监控和扩展服务的各个方面。
核心要点
- Awesome Selfhosted提供了数百种开源应用的分类列表,帮助了解自我托管生态系统。
- Coolify是一个开源平台即服务(PaaS),允许用户在自己的服务器上部署网站、API和数据库。
- Uptime Kuma是一个自我托管的监控系统,帮助维护生产系统的可见性和可靠性。
结构提纲
按章节快速跳转。
- §引言
自我托管不仅仅是运行工具,还涉及现代基础设施的方方面面,包括部署、网络、存储、监控、备份和系统可靠性。
Awesome Selfhosted是一个开源应用的分类列表,帮助了解自我托管生态系统。
Coolify是一个开源平台即服务(PaaS),允许用户在自己的服务器上部署网站、API和数据库。
n8n是一个开源工作流自动化平台,允许用户通过可视化工作流连接API、数据库和服务。
Uptime Kuma是一个自我托管的监控系统,帮助维护生产系统的可见性和可靠性。
Nextcloud Server是一个自我托管的文件同步和共享平台,帮助学习私有云系统的工作原理。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 自我托管
金句 / Highlights
值得收藏与分享的关键句。
Awesome Selfhosted是一个开源应用的分类列表,帮助了解自我托管生态系统。
Coolify是一个开源平台即服务(PaaS),允许用户在自己的服务器上部署网站、API和数据库。
Uptime Kuma是一个自我托管的监控系统,帮助维护生产系统的可见性和可靠性。

引言
自我托管通常始于一个简单的目标:在自己的服务器上运行工具,而不是依赖第三方服务。但很快它就发展成了更大的东西。当你开始托管自己的应用程序时,你会自然而然地学习现代基础设施的工作原理,从部署和网络到存储、监控、备份和系统可靠性。
培养这些技能的最佳方法是通过实际项目来实践。幸运的是,许多开源社区直接在 GitHub 上记录了他们的工具、部署工作流和基础设施实践。这些仓库通常包含指南、配置示例和现实世界的设置,展示了人们如何在其自有基础设施上运行服务。
本文中,我们重点介绍了 10 个 GitHub 仓库,它们从多个角度帮助你掌握自我托管。有些帮助你发现自我托管生态系统中存在的工具,而另一些则教你部署平台、工作流自动化、监控、私有云存储、基础设施管理和安全网络访问。它们共同提供了一条实用的学习路径,帮助你了解如何发现、部署、操作和扩展自己的自托管服务。
#### //1. Awesome Selfhosted
[awesome-selfhosted/awesome-selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) 仓库是探索自我托管世界的一个绝佳起点。这是一个经过精心整理的免费和开源应用程序列表,可以在自己的服务器上托管。该仓库按类别组织了数百种工具,包括文件存储、密码管理器、媒体服务器、监控工具、笔记应用、自动化平台和开发人员工具。
与其专注于一种工具或工作流,Awesome Selfhosted 帮助你理解更广泛的生态系统。它作为一个发现层,展示人们通常自行运行的服务类型,并帮助你识别可能希望在自己基础设施中部署的工具。
#### //2. Coolify
[coollabsio/coolify](https://github.com/coollabsio/coolify) 仓库以实用的方式帮助你学习现代应用程序部署和基础设施管理。Coolify 是一个开源的自托管平台即服务 (PaaS),允许你在自己的服务器上部署网站、API、数据库和全栈应用程序,同时使用类似于现代云平台的工作流。
其特别有用之处在于,该项目不仅仅包含核心平台。Coolify 维护了详尽的文档和一个包含可部署应用程序的 coolify-examples 仓库,使你能不仅了解平台的工作原理,还能理解生产就绪的应用程序是如何构建和部署的。
#### //3. n8n
[n8n-io/n8n](https://github.com/n8n-io/n8n) 仓库展示了自我托管如何超越应用程序扩展到自动化基础设施。n8n 是一个开源的工作流自动化平台,允许你通过可视化工作流连接 API、数据库和服务,构建自动化流程。
该项目也旨在便于学习。它包括详尽的文档、数百个内置集成、示例工作流以及使用 LangChain 等工具构建 AI 驱动自动化的指南。这些资源帮助用户了解现代自动化系统的构建方式,同时确保工作流和数据完全处于用户的控制之下。
#### //4. Uptime Kuma
[louislam/uptime-kuma](https://github.com/louislam/uptime-kuma) 仓库帮助你学习自我托管的监控和可靠性方面。Uptime Kuma 是一个自我托管的监控系统,允许你通过正常运行时间检查、状态仪表板和警报系统跟踪网站、API 和服务。
除了应用程序本身,该项目还包括文档、配置指南和通知、状态页面及服务监控的示例。与这些资源一起工作有助于你理解生产系统在服务部署后如何保持可见性和可靠性。
#### //5. Nextcloud Server
[nextcloud/server](https://github.com/nextcloud/server) 仓库是数据所有权自我托管的一个最清晰的例子。Nextcloud 是一个自托管的文件同步和共享平台,其官方文档涵盖了从安装和服务器配置到文件管理、用户管理以及通过桌面和移动客户端进行同步的所有内容。这为你提供了一种实用的方法,学习私有云系统的工作原理,而不是完全依赖像 Google Drive 或 Dropbox 这样的服务。
其特别有用之处在于它不仅仅是简单的文件托管。使用 Nextcloud 可以帮助你理解持久存储、用户访问、同步、通过 occ 的命令行管理以及日常依赖的服务的运营方面。其管理员和用户手册使你更容易将产品本身与自我托管背后的更广泛的基础设施概念联系起来。
//6. Immich
[immich-app/immich](https://github.com/immich-app/immich) 仓库展示了如何用高质量、现代的体验取代消费者云服务。Immich 是一个自托管的照片和视频备份平台,设计为 Google Photos 等服务的替代品,让用户可以管理和访问他们的媒体,同时完全掌控自己的数据。
该项目还包括清晰的文档、设置指南和配置说明,使其成为学习如何部署和维护媒体密集型应用程序的有用工具。通过使用 Immich,您开始了解诸如存储管理、备份策略、性能考虑以及自托管服务如何支持日常实际使用等实用主题。
#### //7. Memos
[usememos/memos](https://github.com/usememos/memos) 仓库展示了如何通过轻量级、专注且完全由您控制的解决方案来替代消费者云服务。Memos 是一个开源的自托管笔记工具,围绕以时间线为主的界面设计,旨在快速捕捉笔记。笔记以 Markdown 格式存储,没有遥测数据,默认情况下您的数据保持便携性。
它作为自托管的一个良好起点的原因在于其极简的设计。整个应用程序作为一个大约 20MB 的 Docker 镜像中的单个 Go 可执行文件提供,并可以通过一条命令部署到 SQLite、MySQL 或 PostgreSQL。使用 Memos 可以让您接触核心的自托管概念——容器化部署、持久卷挂载以及在自己的基础设施上运行真实的服务——而无需处理更复杂平台的操作复杂性。
#### //8. Proxmox VE 辅助脚本
[community-scripts/ProxmoxVE](https://github.com/community-scripts/ProxmoxVE) 仓库帮助您从应用层面深入到自托管的基础设施层。该项目是一个社区驱动的脚本集合,用于在 Proxmox VE (PVE) 上创建和配置 LXC 容器和虚拟机,这使得它特别适合学习自托管者如何组织他们运行的服务所依赖的平台。
它的价值在于不仅仅是一堆脚本。该项目还拥有一个专门的网站和维基,包含数百个脚本、指南和示例,用于更高效地管理 Proxmox 环境。与之合作可以帮助您以更加实践的方式理解虚拟化、容器和家庭实验室结构。
#### //9. Awesome Tunneling
[anderspitman/awesome-tunneling](https://github.com/anderspitman/awesome-tunneling) 仓库帮助您学习自托管中最难的部分之一:如何安全地让服务在本地网络之外可访问。这是一个针对自托管者和开发者的隧道解决方案精选列表,尤其是用于通过公共域名暴露本地 Web 服务器,甚至在 NAT 或其他网络限制后面也能自动提供 HTTPS 的用例。
通过探索这些工具,您将开始理解远程访问、服务暴露和更安全的连接选项的不同方法——这往往是初学者在从本地实验转向现实世界自托管时遇到困难的地方。
#### //10. 自托管指南
[mikeroyal/Self-Hosting-Guide](https://github.com/mikeroyal/Self-Hosting-Guide) 仓库有助于连接自托管的整体图景。它不是专注于一个应用程序,而是一个广泛的参考指南,帮助您了解有关自托管设备、软件、硬件以及在自己的基础设施上运行服务所涉及的工具。
它帮助读者探索自托管相关的类别、概念和支持技术,对于将分散的实验转变为对这一领域的更清晰认知模型特别有帮助。
#仓库概览
此表提供了每个仓库教授的内容以及最适合的人群的快速概览。这些项目共同涵盖了自托管旅程的方方面面,从发现工具和部署应用程序到管理基础设施和确保远程访问的安全性。
| 仓库 | 您将学到的内容 | 最适合的人群 | | --- | --- | --- | | Awesome Selfhosted | 发现跨存储、媒体、自动化、开发者工具和监控等类别的自托管软件生态系统 | 探索可以自托管的工具的初学者 | | Coolify | 使用类似 PaaS 的平台在自己的基础设施上托管应用程序、数据库和服务的现代部署工作流 | 希望实现更简单的自托管部署的开发人员 | | n8n | 工作流自动化、API 集成以及构建具有数百种集成的自托管自动化管道 | 替代 SaaS 自动化平台的用户 | | Uptime Kuma | 服务监控、正常运行时间跟踪、健康检查、警报和可靠性管理,适用于托管服务 | 运行多个自托管应用程序的任何人 | | Nextcloud Server | 构建具有文件存储、同步、协作工具和用户访问管理功能的私有云 | 替代 Google Drive 或 Dropbox 的用户 | | Immich | 运行一个具有真实存储、备份和媒体组织需求的自托管照片和视频管理平台 | 替代 Google Photos 的用户 | | Memos | 轻量级的笔记和知识管理自托管 | 开始使用简单自托管应用程序的初学者 | | Proxmox VE 辅助脚本 | 使用 Proxmox 进行虚拟化、容器和家庭实验室组织的基础设施管理 | 构建严肃自托管环境的用户 | | Awesome Tunneling | 安全的远程访问、服务暴露和连接本地服务到互联网的隧道工具 | 学习网络和安全外部访问的用户 | | 自托管指南 | 涉及运行自托管基础设施的工具、硬件和概念的广泛参考 | 构建完整自托管思维模型的读者 |
[](https://abid.work/)**阿比德·阿里·阿万 (Abid Ali Awan)** (@1abidaliawan) 是一名认证数据科学家,热爱构建机器学习模型。目前,他专注于内容创作,并撰写关于机器学习和数据科学技术的博客。阿比德拥有技术管理硕士学位和电信工程学士学位。他的愿景是使用图神经网络为患有精神疾病的学生产生一款人工智能产品。