付费方案即将推出,为何仍开源
tTerm 的全部代码现在采用 AGPL v3,而不再是 MIT,付费方案也即将推出。下面说说为什么两者并不冲突,以及我们为什么连服务器都开源了。
有什么变化
从 10月11日起,tTerm 的全部代码都以 AGPL v3 发布:完整的 tTerm Web(包括页面和服务器)、电脑代理、Telegram 机器人和这个网站。我们正在开发的电脑版 tTerm,从第一个版本起就采用这个许可证。在此之前,机器人、代理和网站以 MIT 发布。已经以 MIT 发布的版本仍然适用 MIT:许可证无法事后收回。AGPL 适用于此后的所有新代码。
为什么连服务器也开源
tTerm 会连接到你的机器。在服务器上,它以带 sudo 权限的 tterm 用户登录,也就是拥有 root 权限。对于拥有这种访问权限的服务,不能光凭它自己的说法就信任它,所以与此相关的一切都是开源的:核心程序、负责签发证书的独立程序、安装程序和代理。
我们主页上的每一条承诺,都可以对照代码来核实。证书只有两分钟有效期,而且只对一台服务器有效。CA 密钥保存在一个不联网的独立进程中。安装程序只在 authorized_keys 中添加一行,不会改动 sshd_config。app.tterm.net 上的服务器直接从开源仓库更新,所以 GitHub 上的代码正是实际运行的代码。
很多产品只开源应用,服务器却保持闭源。对于一个在别人机器上拥有 root 权限的终端来说,我们认为这样做不对。
为什么是 AGPL 而不是 MIT
MIT 几乎允许一切,包括拿走代码、加以改进,再作为闭源服务运营。这样一来,把服务器接入这种服务的人,就无从知道自己把 root 权限交给了谁、是怎样交出去的。
AGPL 不允许这样:谁把修改过的 tTerm 作为服务提供给他人,就必须向自己的用户公开它的代码。任何基于我们代码的服务,都会和我们的一样透明。
这些都不会约束你。连接你的机器、正常工作、在自己的服务器上部署 tTerm,都没有问题:只有当你把 tTerm 分发给别人,或者把修改过的版本作为服务提供给他们时,许可证才会起作用。
那为什么还要付费
你付费购买的是服务,而不是代码的访问权。让 tTerm 每天正常运行,需要欧盟的服务器和数据库副本、邮件、技术支持,还需要有人盯着更新。付费方案的收入就用在这些地方,具体方案我们会提前告诉你。tTerm 公测期间对所有人免费。
你可以运行自己的 tTerm 副本:AGPL 允许这样做。但大多数人需要的是一个终端,而不是又一个要自己托管、更新和备份的服务。
其他开源项目也是这样运作的。2020年,Plausible 从 MIT 改为 AGPL,以免其他公司在它的代码上搭建竞争服务却毫无回馈。2021年,Grafana 从 Apache 2.0 改为 AGPL。两者都在出售自己开源代码的云端版本。
代码在哪里
tTerm 的全部代码都在 GitHub 上的一个组织中:github.com/tterm-net。以下是它的各个仓库及其用途:
- tterm-web
tTerm Web,包括页面和服务器:让你的终端保持运行的核心程序、负责签发证书的独立程序,以及服务器和电脑的安装程序。 - tterm-app
电脑版 tTerm:同样的页面,放在独立的窗口里,用于这台电脑上的 shell。它的引擎用 Rust 编写,首先支持 macOS。 - tterm-agent
电脑代理:把 Mac 或 Linux 机器连接到 tTerm Web 和机器人。它主动向外连接,不开放任何端口。 - tterm-telegram
tTerm 最初就是从这个 Telegram 机器人起步的。 - site
这个网站。 - .github
组织在 GitHub 上的主页。
安装程序都很短:运行之前先读一读。