私有化部署 Wiki
更新:
这是一个私有化部署的教程,旨在为第一次接触自托管应用的人,提供指导
📖 介绍
🤔 Why
秉着分享精神,我写了这篇教程,用简单易懂的语言,呈现了将开源项目部署到服务器的过程,帮助更多人入门,并让开源项目更受欢迎。(同时,这也有助于我自己梳理知识,如果有错误,欢迎指正)
💡 私有化部署是小众群体的折腾,大部分人只需要市面上各大厂商提供的产品服务即可
💡开源项目有可能会出现Bug、停止维护的情况,有能力的话可以参与其中,与开发者共创或者自己二次开发
❓FAQ
可以比喻为你自己做饭还是去餐厅吃饭的选择。
私有化部署就像你在家里自己做饭一样。你可以购买食材、使用自己的厨具和炉灶来准备食物。这样做的好处是你可以完全控制食材的质量和卫生情况,你可以根据自己的口味和需求来调整菜肴的味道和做法。此外,你也可以保护自己的隐私,因为你在自己的家中进行烹饪,没有其他人能够接触到你的食材和烹饪过程。然而,这样做需要你购买食材、清洁厨具和炉灶,并投入时间和精力来准备食物。
相反,如果你选择去餐厅吃饭,这就类似于使用公共云或第三方托管服务。你不需要自己购买食材或准备食物,而是将这些任务交给了餐厅。这样做的好处是你不需要花费太多的时间和精力来准备食物,而且餐厅通常会提供一定的服务和便利。然而,你无法完全控制食材的质量和卫生情况,也无法调整菜肴的味道和做法,因为这是由餐厅决定的。此外,在餐厅用餐可能会有其他客人,你的隐私可能会受到一定程度的影响。
所以,私有化部署提供了更高的控制权和定制性,就像在家里自己做饭一样。但与此同时,它也需要更多的成本和精力来配置和维护系统,就像你需要购买食材和准备食物一样。而使用公共云或第三方托管服务则更加方便,但你可能会失去一部分控制权和定制性,就像去餐厅吃饭一样。
反内容审查、数据掌握在自己手中,一图胜千言万语
开源性质:开源项目是指代码是公开的,任何人都可以查看和使用。市面上的产品通常是闭源的,代码不对外公开。
(开源项目就像一本开放的教科书,任何人都可以阅读、学习和做笔记。市面上的产品则像一本密封的书,只有作者可以看到里面的内容。)
社区参与:开源项目有一个活跃的社区,社区成员可以提供反馈和帮助改进项目。市面上的产品没有这样的社区参与机制。
(开源项目就像一个热闹的集市,有很多人参与其中,提供意见和改进建议。市面上的产品就像一个商店,用户只能从货架上选购商品,没有机会参与到产品的改进过程中。)
授权和许:开源项目使用开源许可证,允许用户自由使用和修改代码。市面上的产品使用专有许可证,限制用户对代码的使用和修改。
(开源项目就像一把自由使用的工具,你可以随意使用和改造它来满足自己的需求。市面上的产品则像一把专利保护的工具,你只能按照规定的方式使用,不能进行修改和定制。)
可定制性:由于开源项目的代码是公开的,用户可以根据自己的需求进行修改和定制。市面上的产品通常有一定的定制性能,但不如开源项目灵活。
(开源项目就像一张白纸,你可以任意涂画和改写上面的内容。市面上的产品则像一幅精美的画作,你可以选择挂在墙上,但无法改变画中的元素和颜色。)
支持和维护:开源项目由社区成员提供支持和维护,市面上的产品由开发者或公司提供支持和维护。 总的来说,开源项目和市面上的产品在代码公开性、社区参与、授权和许可、可定制性以及支持和维护等方面存在区别。选择使用哪种取决于您的需求和偏好。
(开源项目就像一个充满热情的社区,有很多人愿意帮助解决问题和提供支持。市面上的产品则像一个专业的客服团队,他们会提供你所需的支持和维护服务。)
最后举例说明:Memos 到底想做成什么产品,不得而知,项目页面上也没有看到 Roadmap,用户提 issue 想添加新功能,开发者觉得可以,就添加上了。用韩宇的话来说,Memos 是一个项目,Flomo 是一个产品,两者之间相差悬殊。项目是代码写出来的,产品是思考+代码写出来的,两者之间相差一个最重要的 “思考” 环节。
商业化产品,从服务端到客户端都是由开发商提供的,资料也存储在开发商的服务器上,并且代码都是闭源。换句话说,孩子要代码或者服务器出了什么岔子,倒霉的就是用户。而开源产品就意味着可以自托管在自己的服务器,隐私性更好,但折腾。
同时商业化产品聚集了资金和人才,这一点,是开源项目难以比拟的。
⏳ 准备
- 查看《如何开启自托管之路》(努力编写中…)
- 服务器 + 域名 + 一颗爱折腾的心