termal.in

← 소식

스스로 업데이트하는 Connector, 그리고 데이터베이스 백업

v0.1.50

손이 가야 했던 두 가지가 이제 알아서 처리됩니다. Connector가 스스로 업데이트되고, 백업이 파일과 함께 데이터베이스까지 담을 수 있습니다. 이번 릴리스는 한 줄 Linux 설치와 데스크톱 앱 수정 모음도 함께 가져옵니다.

Connector가 스스로 업데이트됩니다

지금까지는 Connector의 새 버전이 나오면 서버마다 설치 명령을 다시 실행해야 했습니다. Connector 0.2.0부터는 그 일이 저절로 이루어집니다. 각 Connector가 자신의 버전을 보고하고, 캐비닛은 Connector마다 업데이트 있음 또는 최신을 표시하며, 자동 업데이트 스위치(기본값 켜짐)와 지금 업데이트 버튼을 함께 보여 줍니다.

Connector는 무엇을 설치할지 신중합니다. 서명된 버전 목록, 다운로드의 크기와 체크섬, 바이너리 자체의 서명을 확인한 다음, 전환하기 전에 시험 실행을 해 봅니다. 일상적인 업데이트는 먼저 열려 있는 세션이 끝나도록 최대 한 시간까지 기다립니다. 그리고 새 버전이 10분 안에 연결되지 못하면, Connector가 스스로 잘 동작하던 버전으로 되돌아갑니다 — 그 버전은 이후 7일간 건너뛰므로, 잘못된 빌드가 반복해서 시도되는 일이 없습니다.

이번 릴리스 이전에 설치한 Connector는 새 방식을 받아들이려면 수동 업데이트를 한 번 해야 합니다. 한 줄짜리 명령은 캐비닛에 표시됩니다. 그 명령을 실행하기 전까지는 예전과 똑같이 계속 동작합니다.

파일만이 아니라 데이터베이스까지 백업

이제 백업 작업이 PostgreSQL과 MySQL/MariaDB를 파일과 같은 암호화된 아카이브에 함께 덤프할 수 있습니다. 서버에서든 Docker 컨테이너 안에서든, 데이터베이스 하나든 전부든 가능하며, 복원 방법을 적은 README를 아카이브 안에 넣어 둡니다.

데이터베이스 비밀번호는 Termalin에 저장되지 않습니다. 백업은 서버 자체의 로컬 신뢰로 로그인합니다. 즉 로컬 데이터베이스 사용자로서, 서버의 자격 증명 파일(.pgpass나 my.cnf)을 통해, 또는 컨테이너 자체 설정으로 접속합니다. 데이터베이스 백업은 Linux와 macOS 서버에서 돌아가며(Windows에서는 지금은 백업이 파일 전용으로 유지됩니다), 덤프는 실행되는 동안 서버에 자기 크기만큼의 여유 디스크가 필요합니다.

백업의 나머지는 모두 그대로입니다. 아카이브는 오직 나만 가진 키로 암호화되며, Termalin 스토리지, 내 S3 버킷, 또는 Connector를 통한 또 다른 내 서버로 보내집니다. 전체 그림은 서버 백업 페이지에 있습니다.

AI 앱이 백업 작업의 초안을 만들게 하기

연결된 어시스턴트에게 어느 서버의 백업을 설정해 달라고 하면, 이제 새 MCP 도구 backup_job_create로 그 수고를 대신합니다 — 호스팅 도구는 모두 22개가 됩니다. 어시스턴트가 나를 위해 작업 초안을 만듭니다. 어떤 파일과 데이터베이스를, 얼마나 자주, 몇 개를 보관하고, 어디에 저장할지를요.

초안은 혼자서 실행되는 법이 없습니다. 캐비닛에서 클릭 한 번으로 확인하면 — 다른 모든 백업과 마찬가지로, 암호화 키는 바로 그때 내 브라우저에서 만들어집니다 — 그제야 시작됩니다. 초안은 7일 후 만료되고 요금제의 작업 한도에 포함되며, 이 도구는 Connector에서 전체 액세스가 필요합니다. MCP 도구 레퍼런스(영어)에 전체가 나와 있습니다.

백그라운드 작업이 이제 Windows 서버에서 실행됩니다

백그라운드 작업 도구(job_start, job_status, job_stop, job_list)가 이제 Windows Connector에서도 PowerShell로 동작합니다. Linux와 macOS에서처럼, 작업은 그것을 시작한 세션이 닫힌 뒤에도 계속 실행되므로, 오래 걸리는 빌드나 마이그레이션이 스스로 끝까지 진행됩니다.

비밀번호 없는 계정 삭제하기

Google, GitHub, Apple 로그인으로(또는 AI 앱의 연결 페이지에서) 만든 계정은 비밀번호가 없어, 스스로를 삭제할 수 없었습니다. 이제 이메일로 보낸 확인 링크로 어떤 계정이든 캐비닛이나 데스크톱 앱에서 삭제할 수 있습니다.

Linux를 위한 한 줄 설치

이제 Linux에도 다른 플랫폼이 써 온 것과 같은 빠른 설치 경로가 생겼습니다.

curl -fsSL https://termal.in/install.sh | bash

root 없이 홈 폴더에 설치되고, 메뉴와 KRunner 항목, 그리고 termalin 명령을 추가합니다. 업데이트하려면 다시 실행하고, 제거하려면 --uninstall을 붙이세요. 모든 옵션은 다운로드 페이지를 참고하세요.

데스크톱 앱 전반의 수정

  • Termius 등에서 내보낸 OpenSSH 키가 가져와집니다. “length invalid”로 거부되던 키(키를 조금 다르게 패딩하는 경우)가 이제 OpenSSH가 받아들이는 것과 같은 방식으로 로드됩니다.
  • Windows: Scoop 설치가 다시 작동합니다. Scoop으로 설치하면 0.1.47부터 시작되지 않았습니다. 이미 설치한 경우 scoop update termalin --force로 업데이트하세요.
  • Linux: 앱 내 업데이트가 더는 “Text file busy”로 실패하지 않으며, 다운로드한 업데이트는 다시 받지 않고 재시도를 위해 보관됩니다.
  • Linux: 키링이 잠겨 있거나 늦게 시작해도 로그인이 유지됩니다. KWallet이나 GNOME Keyring을 쓸 수 없어도 앱이 더는 로컬 데이터를 잃지 않습니다. 이제 세션은 모든 플랫폼에서 30일 후 만료되는 대신 스스로 갱신됩니다.
  • Linux: ssh-agent를 통한 SSH가 데스크톱의 에이전트를 찾습니다. 앱을 메뉴에서 시작했을 때도 마찬가지이며, 찾지 못할 때는 오류가 그 이유를 설명합니다.
  • 전체 화면 터미널 앱이 셸을 그대로 남겨 둡니다. btop 같은 앱을 종료하면 셸의 색과 화면이 복원됩니다.
  • 셸에서 exit하면 터미널 탭이 닫힙니다(설정 항목). 연결이 끊긴 경우에는 탭이 그대로 남고 재연결 버튼이 표시됩니다.

자잘한 것들

백업 양식이 더 깔끔해졌습니다. 필드가 가지런히 정렬되고, 휴대폰 너비에서도 잘 맞으며, 9개 언어로 모두 번역됐습니다. 호스트 양식은 이제 192.168.1.10이나 localhost 같은 사설 주소는 termal.in에서 닿을 수 없다고 알려 주고, AI가 그 서버를 다루려면 서버에 Connector를 설치하라고 안내합니다. 체험 안내 문구는 체험이 끝나면 계정이 Free로 바뀐다는 점을 분명히 밝힙니다 — 영구 무료이며 아무것도 청구되지 않습니다. 그리고 평생 라이선스는 이제 Pro · 평생으로 표시됩니다. 내부 사이트 초대 이메일은 이 양식이 스팸 발송에 쓰이지 못하도록 전송 빈도가 제한됩니다.

언제나처럼 데스크톱 앱은 다음에 열 때 업데이트를 안내하며, 전체 목록은 변경 기록(영어)에 있습니다.

— Termalin 팀

업데이트를 받으세요.

Termalin은 스스로 업데이트됩니다. 새로 설치해도 1분이면 됩니다.

Google에서 Termalin을 선호 소스로 추가