突然有一个idea:可以做一个让小白一键搭建misskey或者别的服务的工具,基于NixOS和周围的社区项目。用户只需要保存好一个json或者yaml文件就可以,文件只包含少量配置(例如自己要用的域名、cloudflare的api token,以及要用的配置的git commit id)。和基于docker的方案相比的优势是,NixOS可以做到全链路的可复现(包括nginx的反代、dns的设置、文件系统的选用,等)。
Uncategorized
9
Posts
3
Posters
0
Views
-
突然有一个idea:可以做一个让小白一键搭建misskey或者别的服务的工具,基于NixOS和周围的社区项目。用户只需要保存好一个json或者yaml文件就可以,文件只包含少量配置(例如自己要用的域名、cloudflare的api token,以及要用的配置的git commit id)。
和基于docker的方案相比的优势是,NixOS可以做到全链路的可复现(包括nginx的反代、dns的设置、文件系统的选用,等)。 -
System shared this topic
-
突然有一个idea:可以做一个让小白一键搭建misskey或者别的服务的工具,基于NixOS和周围的社区项目。用户只需要保存好一个json或者yaml文件就可以,文件只包含少量配置(例如自己要用的域名、cloudflare的api token,以及要用的配置的git commit id)。
和基于docker的方案相比的优势是,NixOS可以做到全链路的可复现(包括nginx的反代、dns的设置、文件系统的选用,等)。@chn@xn--s8w913fdga.chn.moe 会不会有鸡生蛋问题,就是既需要用 nix 来管理这个服务器面板,又需要用这个服务器面板来管理 nix ?(指望小白直接编辑配置文件还不如直接帮他们部署,而一般的服务器面板的话也有 yunohost 这种解决方案已经有了 misskey 部署集成) -
@chn@xn--s8w913fdga.chn.moe 会不会有鸡生蛋问题,就是既需要用 nix 来管理这个服务器面板,又需要用这个服务器面板来管理 nix ?(指望小白直接编辑配置文件还不如直接帮他们部署,而一般的服务器面板的话也有 yunohost 这种解决方案已经有了 misskey 部署集成)
-
@chn@xn--s8w913fdga.chn.moe 会不会有鸡生蛋问题,就是既需要用 nix 来管理这个服务器面板,又需要用这个服务器面板来管理 nix ?(指望小白直接编辑配置文件还不如直接帮他们部署,而一般的服务器面板的话也有 yunohost 这种解决方案已经有了 misskey 部署集成)@Candinya@nya.one 我倾向于不做面板,高权限的面板很容易有安全漏洞。用一个pwa或者客户端来辅助编辑yaml足矣;部署就走ssh。
这一套最大的卖点可能是,一方面容易理解和部署(隐藏技术细节),一方面相对比较隐私(可以明确把信息分成三类:服务器端要用的密码或者密钥、本地要用的密码或者密钥、可以公开的信息,第三方服务器不用保存任何密码)。
当然要真做的话,首先要考虑的一个问题就是,别的同样想到这个事情的人可能遇到了什么麻烦而做不下去,这个麻烦我能不能克服。 -
@XYenon@pleroma.xyenon.bid @Candinya@nya.one 可能是类似于宝塔面板那样的东西。
-
@Candinya@nya.one 我倾向于不做面板,高权限的面板很容易有安全漏洞。用一个pwa或者客户端来辅助编辑yaml足矣;部署就走ssh。
这一套最大的卖点可能是,一方面容易理解和部署(隐藏技术细节),一方面相对比较隐私(可以明确把信息分成三类:服务器端要用的密码或者密钥、本地要用的密码或者密钥、可以公开的信息,第三方服务器不用保存任何密码)。
当然要真做的话,首先要考虑的一个问题就是,别的同样想到这个事情的人可能遇到了什么麻烦而做不下去,这个麻烦我能不能克服。 -
@XYenon@pleroma.xyenon.bid @Candinya@nya.one 是的,关键的地方社区都有成熟实现了,似乎只剩一些边角的东西,就能把这套流程跑通了。
-
@Candinya@nya.one 我倾向于不做面板,高权限的面板很容易有安全漏洞。用一个pwa或者客户端来辅助编辑yaml足矣;部署就走ssh。
这一套最大的卖点可能是,一方面容易理解和部署(隐藏技术细节),一方面相对比较隐私(可以明确把信息分成三类:服务器端要用的密码或者密钥、本地要用的密码或者密钥、可以公开的信息,第三方服务器不用保存任何密码)。
当然要真做的话,首先要考虑的一个问题就是,别的同样想到这个事情的人可能遇到了什么麻烦而做不下去,这个麻烦我能不能克服。@chn@xn--s8w913fdga.chn.moe 我遇到过用记事本编辑代码的小白,遇到过说服务器系统装完之后只有一个大黑框框是不是坏了的小白,遇到过 SSH 软件还要去找破解版的 SecureCRT 的小白(当然也不全是,我们老师以前要求我们用这个)。指望小白通过比较底层但功能强大的工具来控制服务器需要积累非常丰富的前置知识,而当拥有了这些知识之后反而倒是不需要什么一键脚本了。现在很多服务器面板的设计都是一键脚本启动(或者和服务商合作推出预安装系统镜像)然后全部转向图形化交互,试图绕开这条路的话好像算是新的领域了
-
@chn@xn--s8w913fdga.chn.moe 我遇到过用记事本编辑代码的小白,遇到过说服务器系统装完之后只有一个大黑框框是不是坏了的小白,遇到过 SSH 软件还要去找破解版的 SecureCRT 的小白(当然也不全是,我们老师以前要求我们用这个)。指望小白通过比较底层但功能强大的工具来控制服务器需要积累非常丰富的前置知识,而当拥有了这些知识之后反而倒是不需要什么一键脚本了。现在很多服务器面板的设计都是一键脚本启动(或者和服务商合作推出预安装系统镜像)然后全部转向图形化交互,试图绕开这条路的话好像算是新的领域了
@Candinya@nya.one 我理解的话,小白其实分两类:一类是“我管你这个那个,能让我少动脑子把东西跑起来就行”,这类占大多数,完全图形化的方案是最好的,最好是不要让他碰服务器,要碰也用你说的面板;还有一类算是有点追求的小白,他不仅需要功能能跑起来,还会有一些别的追求,例如我要“今天能跑起来、明天一定也能跑起来”(可复现),明确知道哪些是secrets哪些是可以或者必须公开的数据(有安全、隐私感),明确参与到服务器的每一次改动中(有参与感);但同时,也不能暴露太多的细节,否则一方面学习成本太高,一方面理解有误的时候容易把服务干坏。
nix做这个事情,相比于其它的方案,它 1.(基本上)可复现 2. 把全“产业链”都包干了(从DNS到OS) 3. 方便控制暴露多少细节给用户。
第三点可以降低学习门槛(虽然降不到面板的程度,但学习如何编辑纯文本文件、用自己觉得安心的方法保存密钥,也不算太难),如果小白后续想要继续学习也有明确的学习路径;第 1 和 2 点可以让用户快速把整套跑起来用起来尝到甜头,即使某个版本有小bug也可以方便地尝试前一个或者后一个版本。