ブログ

有料プランを予定していても tTerm のコードを公開する理由

tTerm のコードはすべて、MIT に代わって AGPL v3 で公開されるようになりました。有料プランもまもなく始まります。この 2 つが両立する理由と、サーバーまで公開した理由を説明します。

tTerm Web のライセンスを、tTerm Web 自身で確認:最初のバージョンから AGPL v3 です。

変わったこと

10月11日から、tTerm のコードはすべて AGPL v3 で公開しています。対象は tTerm Web の全体(ページとサーバーの両方)、コンピューター用のエージェント、Telegram ボット、そしてこのサイトです。現在開発中のコンピューター用 tTerm は、最初のバージョンから AGPL v3 です。それ以前は、ボット、エージェント、サイトを MIT で公開していました。すでに MIT でリリースしたバージョンは MIT のままです。ライセンスを後からさかのぼって取り消すことはできないためです。新しいものにはすべて AGPL が適用されます。

サーバーまで公開する理由

tTerm はお使いのマシンに接続します。サーバーには sudo 権限を持つユーザー tterm としてログインするので、事実上 root を得ることになります。それほどのアクセス権を持つサービスを、言葉だけで信用すべきではありません。だからこそ、コア、証明書に署名する独立したプログラム、インストーラー、エージェントと、アクセスに関わるものはすべて公開しています。

トップページに書いた約束は、どれもコードで確かめられます。証明書の有効期間は 2 分で、使えるのは 1 台のサーバーだけです。CA の鍵は、ネットワークにつながっていない別のプロセスに保管されています。インストーラーは authorized_keys に 1 行を追加するだけで、sshd_config には触れません。app.tterm.net のサーバーは公開リポジトリから直接更新されるので、GitHub にあるコードがそのまま実際に動いているコードです。

アプリだけを公開し、サーバーは非公開にしておくことはよくあります。しかし、他人のマシンで root を持つターミナルにとって、それは正しくないと私たちは考えています。

MIT ではなく AGPL にした理由

MIT ではほぼ何でも許されます。コードを持ち出して改良し、非公開のサービスとして運営することもできます。そうなると、そのサービスに自分のサーバーをつないだ人たちには、誰に、どのように root を渡したのかを知るすべがありません。

AGPL ではそれが許されません。tTerm を改変したコピーを他人向けのサービスとして運営する人は、そのコードを利用者に公開しなければなりません。私たちのコードをもとにしたサービスは、どれも私たちと同じように透明であり続けます。

これによって利用者が何かに縛られることはありません。マシンを接続して作業するのも、自分のサーバーに tTerm を立てるのも自由です。ライセンスが関わってくるのは、tTerm をほかの人に配布する場合や、改変したバージョンをほかの人向けのサービスとして運営する場合だけです。

では、なぜ料金を払うのか

料金は、コードへのアクセスではなくサービスに対して払うものです。tTerm を毎日動かし続けるには、EU のサーバーとデータベースのバックアップ、メール、サポート、そして更新に目を配る人が必要です。有料プランの収益はそこに使います。プランについては前もってお知らせします。tTerm がベータ版のあいだは、どなたでも無料です。

tTerm を自分で動かすこともできます。AGPL はそれを認めています。ただ、たいていの人に必要なのはターミナルであって、自分でホストし、更新し、バックアップするサービスがもう 1 つ増えることではありません。

ほかのオープンなプロジェクトも、同じやり方を取っています。2020年、Plausible は、企業が何も還元しないままそのコードで競合サービスを作ることのないよう、MIT から AGPL に移行しました。2021年には Grafana が Apache 2.0 から AGPL に移行しています。どちらも、オープンなコードのクラウド版を販売しています。

コードの場所

tTerm のコードはすべて、GitHub 上の 1 つの組織にあります:github.com/tterm-net。各リポジトリとその役割は次のとおりです。

  • tterm-web
    tTerm Web のページとサーバー:ターミナルを動かし続けるコア、証明書に署名する独立したプログラム、サーバー用とコンピューター用のインストーラー。
  • tterm-app
    コンピューター用の tTerm:同じページを専用のウィンドウで開き、そのコンピューターのシェルを扱います。エンジンは Rust で書かれていて、まず macOS から対応します。
  • tterm-agent
    コンピューター用のエージェント:Mac や Linux マシンを tTerm Web とボットに接続します。自分から外へ接続し、ポートは開けません。
  • tterm-telegram
    tTerm の出発点となった Telegram ボット。
  • site
    このサイト。
  • .github
    GitHub 上の組織ページ。

インストーラーは短いので、実行する前にぜひ読んでください。

tTerm Web を試す

メールアドレスでサインインします。コードが届き、それ以降は自分のデバイスなら短いコードだけで済みます。最初のサーバーは 1 分で接続できます。

無料で始める

ブログのほかの記事

すべての記事
すべての記事