블로그

유료 요금제가 나오는데도 tTerm의 코드를 공개하는 이유

이제 tTerm의 모든 코드는 MIT 대신 AGPL v3로 공개되고, 곧 유료 요금제도 나와요. 이 둘이 왜 서로 부딪히지 않는지, 그리고 왜 서버까지 공개했는지 설명할게요.

tTerm Web 안에서 직접 확인한 tTerm Web의 라이선스: 첫 버전부터 AGPL v3.

바뀐 점

10월 11일부터 tTerm의 모든 코드는 AGPL v3로 나와요: 페이지와 서버를 포함한 tTerm Web 전체, 컴퓨터용 에이전트, Telegram 봇, 그리고 이 사이트까지요. 지금 만들고 있는 컴퓨터용 tTerm은 첫 버전부터 이 라이선스를 따르고 있어요. 그전에는 봇, 에이전트, 사이트가 MIT로 나왔어요. 이미 MIT로 나온 버전은 그대로 MIT로 남아요. 라이선스는 나중에 소급해서 철회할 수 없으니까요. 새로 나오는 모든 것에는 AGPL이 적용돼요.

서버까지 공개한 이유

tTerm은 사용자의 머신에 연결해요. 서버에서는 sudo 권한을 가진 tterm 사용자로 로그인하는데, 이는 root 권한을 얻는다는 뜻이에요. 이런 권한을 가진 서비스라면 말만 믿고 쓰면 안 돼요. 그래서 이와 관련된 모든 것을 공개했어요: 코어, 인증서에 서명하는 별도 프로그램, 설치 스크립트, 에이전트.

메인 페이지에 적힌 약속은 모두 코드로 확인할 수 있어요. 인증서는 2분 동안만 유효하고 서버 하나에서만 쓸 수 있어요. CA 키는 네트워크가 없는 별도 프로세스에 보관돼요. 설치 스크립트는 authorized_keys에 한 줄을 추가할 뿐, sshd_config는 건드리지 않아요. app.tterm.net의 서버는 공개 저장소에서 바로 업데이트되기 때문에, GitHub에 있는 코드가 곧 실제로 실행되는 코드예요.

앱만 공개하고 서버는 비공개로 두는 경우가 많아요. 다른 사람의 머신에서 root 권한을 쥐는 터미널이 그렇게 하는 건 옳지 않다고 생각해요.

MIT가 아니라 AGPL인 이유

MIT는 거의 모든 것을 허용해요. 코드를 가져다 개선해서 비공개 서비스로 운영하는 것까지요. 그러면 그런 서비스에 서버를 연결한 사람들은 누구에게, 어떤 방식으로 root 권한을 넘겼는지 알 수 없어요.

AGPL은 그걸 허용하지 않아요. tTerm을 수정한 사본을 다른 사람을 위한 서비스로 운영하는 사람은 그 코드를 자기 사용자에게 공개해야 해요. 그래서 저희 코드로 만든 서비스는 모두 저희만큼 투명해요.

사용자에게는 아무 의무도 생기지 않아요. 머신을 연결하고, 작업하고, 자기 서버에 tTerm을 설치해도 돼요. 라이선스는 tTerm을 다른 사람에게 배포하거나, 수정한 버전을 그들을 위한 서비스로 운영할 때만 적용돼요.

그래도 돈을 내는 이유

돈은 코드에 접근하는 대가가 아니라 서비스에 대한 대가예요. tTerm을 매일 운영하려면 EU의 서버와 데이터베이스 사본, 이메일, 지원, 그리고 업데이트를 지켜보는 사람이 필요해요. 유료 요금제에서 나오는 돈은 거기에 쓰이고, 요금제는 미리 알려 드릴게요. tTerm이 베타인 동안에는 누구나 무료예요.

tTerm을 직접 운영할 수도 있어요. AGPL이 허용하니까요. 하지만 대부분의 사람에게 필요한 건 터미널이지, 직접 호스팅하고 업데이트하고 백업해야 하는 서비스가 하나 더 느는 게 아니에요.

다른 오픈 소스 프로젝트도 이런 방식으로 운영돼요. 2020년 Plausible은 기업들이 아무것도 돌려주지 않고 Plausible의 코드로 경쟁 서비스를 만드는 일을 막으려고 MIT에서 AGPL로 바꿨어요. 2021년에는 Grafana가 Apache 2.0에서 AGPL로 옮겼어요. 두 곳 모두 자신들의 오픈 소스 코드로 만든 클라우드 버전을 판매해요.

코드가 있는 곳

tTerm의 모든 코드는 GitHub의 한 조직에 있어요: 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분이면 연결돼요.

무료로 시작하기

블로그의 다른 글

모든 글
모든 글