
실시간 채팅
채널·DM·스레드, 리액션·멘션·안 읽음 표시·접속 상태를 WebSocket 하나로 받습니다. 검색, 파일 업로드, 웹 푸시, 설치형 PWA까지.
termspace는 팀을 위한 채팅·태스크·위키입니다. 직접 설치하도록 만들었고, 소스 코드는 곧 공개됩니다. 데스크톱 앱에는 모든 명령을 블록으로 다루는 터미널이 들어 있고, 블록은 시크릿을 가린 채 팀에 공유됩니다.
셸 통합이 프롬프트·명령·출력의 시작과 끝을 표시하므로, 터미널은 스크롤 덩어리가 아니라 명령 단위로 기억합니다.

팀이 매일 쓰는 도구가 하나의 블록 문서 모델을 공유합니다. 명령 블록은 메시지에서도, 태스크 카드에서도, 위키 페이지에서도 똑같이 보입니다.

채널·DM·스레드, 리액션·멘션·안 읽음 표시·접속 상태를 WebSocket 하나로 받습니다. 검색, 파일 업로드, 웹 푸시, 설치형 PWA까지.

프로젝트마다 API-1 같은 키가 붙고, 채팅에 키를 쓰면 링크가 됩니다. 종류·우선순위·라벨·상위 태스크·링크·워처와 전체 변경 이력.

옮길 수 있는 페이지 트리, diff가 있는 버전 기록, 휴지통, 백링크, 페이지 링크. 사용자나 그룹별로 보기·편집을 제한합니다.
워크플로는 이름 붙은 인자가 있는 명령 템플릿입니다. 한 번 저장하면 워크스페이스의 모두가 씁니다.
{{namespace}} 같은 인자는 기본값과 선택지가 있는 폼이 됩니다. 완성된 명령은 입력줄에 들어가고, Enter를 눌러야 실행됩니다. TUI 클라이언트도 같은 목록을 보여 주고 결과를 클립보드에 복사합니다.

termspace 앱은 등록한 termspace 서버마다 창을 따로 열고, 팀 채팅 옆에서 내 PC의 진짜 셸을 실행합니다.

계열사나 파트너 회사와 채널 하나만 공유합니다. 두 회사가 모두 수락해야 채널이 열립니다.
채널과 연결된 프로젝트를 소유합니다.
수락한 뒤 게스트로 참여합니다.
termspace는 Go 바이너리 하나와 PostgreSQL로 돌아갑니다. Docker Compose나 systemd로 띄우고, DB 마이그레이션은 기동할 때 적용됩니다. 저장소와 설치 가이드는 곧 공개되며, 아래는 공개된 뒤 실행할 절차입니다.
deploy/compose/.env.example을 .env로 복사합니다.POSTGRES_PASSWORD를 정합니다. 예: openssl rand -hex 24docker compose up -d --build --wait를 실행합니다. 앱은 127.0.0.1:8080에서 열립니다.--profile tls는 자동 HTTPS용 Caddy를 더하며, 이 호스트를 가리키는 TERMSPACE_DOMAIN, 열린 80·443 포트, TERMSPACE_PUBLIC_URL, TERMSPACE_TRUST_PROXY=1이 필요합니다. --profile s3는 MinIO를 더하며 MINIO_ROOT_PASSWORD와 TERMSPACE_S3_* 설정이 필요합니다.백업·systemd 유닛·업그레이드와 모든 TERMSPACE_* 설정은 저장소의 설치 가이드에 있습니다. 이미지는 amd64·arm64로 빌드됩니다.
빠른 시작 (저장소 공개 후)
git clone https://github.com/choibongseok/termspace
cd termspace/deploy/compose
cp .env.example .env && chmod 600 .env
# 먼저 .env에 POSTGRES_PASSWORD를 채운다
docker compose up -d --build --wait
curl -s localhost:8080/readyz # {"status":"ok"}
구성
# deploy/compose/docker-compose.yml (excerpt)
services:
db:
image: postgres:16-alpine@sha256:aa6c…5139
environment:
POSTGRES_USER: termspace
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?…}
POSTGRES_DB: termspace
volumes:
- pgdata:/var/lib/postgresql/data
# … healthcheck, logging
termspaced:
image: ${TERMSPACE_IMAGE:-termspace:local}
build:
context: ../..
depends_on:
db:
condition: service_healthy
# … env_file: .env (every TERMSPACE_* setting)
environment:
TERMSPACE_ADDR: ":8080"
TERMSPACE_DATA_DIR: /data
TERMSPACE_DATABASE_URL: postgres://termspace:…@db:5432/…
ports:
- "${TERMSPACE_HTTP_BIND:-127.0.0.1:8080}:8080"
# … healthcheck on /readyz, logging
# … caddy (profile tls), minio (profile s3)
termspace는 한 가지 원칙으로 만들었습니다. 서버는 내가 공유하기로 한 것만 저장하고, 셸은 절대 갖지 않습니다.
서버에는 터미널 경로가 없습니다. 셸은 데스크톱 앱이 내 PC에서 엽니다.
어떤 서버의 페이지가 로컬 터미널을 열기 전에, 데스크톱 앱이 그 서버를 허락할지 묻습니다.
브라우저 사용자는 공유된 블록을 읽기만 하고 실행할 수 없습니다. 입력줄에 다시 넣기는 데스크톱 기능이며 실행하지 않습니다.
공유 창에서 한 번, 메시지·태스크 설명·위키 페이지를 저장할 때 서버에서 한 번 더 가립니다.
Ctrl+R 명령 기록은 내 기기에만 있고 서버로 보내지 않습니다.
termspace는 한 서버에 여러 회사가 있는 것을 전제로, 회사마다 별도 테넌트로 설계했습니다.
termspace는 오픈코어 모델을 따를 예정입니다. 오픈소스 에디션은 팀 규모와 상관없이 완전한 제품을 목표로 하고, 유료 에디션은 관리·컴플라이언스·규모 기능을 더할 예정입니다.
표를 옆으로 밀면 모든 에디션을 볼 수 있습니다.
| 기능 | 오픈소스직접 설치, 사용자 무제한 | Basic성장하는 팀 | Pro관리와 보안 | Enterprise컴플라이언스와 규모 |
|---|---|---|---|---|
| 가격 | 무료 | 가격 공개 예정 | 가격 공개 예정 | 문의 |
| 워크스페이스 | ||||
| 채팅·스레드·리액션·검색 | 포함 | 포함 | 포함 | 포함 |
| 태스크와 프로젝트 | 포함 | 포함 | 포함 | 포함 |
| 버전과 페이지 권한이 있는 위키 | 포함 | 포함 | 포함 | 포함 |
| 다른 회사와 connect 채널 | 포함 | 포함 | 포함 | 포함 |
| 웹·PWA·데스크톱·TUI 클라이언트 | 포함 | 포함 | 포함 | 포함 |
| 개인 데이터 내보내기 | 포함 | 포함 | 포함 | 포함 |
| 터미널 | ||||
| 탭·분할·블록이 있는 로컬 터미널 | 포함 | 포함 | 포함 | 포함 |
| 시크릿을 가린 블록 공유 | 포함 | 포함 | 포함 | 포함 |
| 워크스페이스 워크플로 | 포함 | 포함 | 포함 | 포함 |
| 관리 | ||||
| 회사 전체 워크플로 라이브러리 예정 | 미포함 | 포함 | 포함 | 포함 |
| SAML·OIDC 싱글 사인온 예정 | 미포함 | 미포함 | 포함 | 포함 |
| 감사 로그 내보내기와 보존 정책 예정 | 미포함 | 미포함 | 포함 | 포함 |
| 터미널 관리 정책과 커스텀 마스킹 규칙 예정 | 미포함 | 미포함 | 포함 | 포함 |
| SCIM 프로비저닝 예정 | 미포함 | 미포함 | 미포함 | 포함 |
| 컴플라이언스 내보내기와 법적 보존 예정 | 미포함 | 미포함 | 미포함 | 포함 |
| 계열사 통합 관리 예정 | 미포함 | 미포함 | 미포함 | 포함 |
에디션 경계는 제안이며 출시 전에 바뀔 수 있고, 가격은 아직 정하지 않았습니다. 지금은 아무것도 막혀 있지 않습니다. 현재 있는 기능은 모두 라이선스 키 없이 동작합니다.
공개될 예정입니다. 소스 코드는 github.com/choibongseok/termspace에서 공개됩니다. 코어 라이선스는 아직 정하는 중이며 저장소를 공개할 때 알립니다.
아니요. 셸은 내 PC의 데스크톱 앱 안에서만 돕니다. 터미널에서 서버로 가는 것은 내가 공유하기로 한 블록과 워크플로뿐입니다.
명령, 종료 코드, 소요 시간, 셸, 홈을 ~로 바꾼 작업 디렉터리, 그리고 남겨 두었다면 출력입니다. 출력은 20,000바이트로 자릅니다. 시크릿은 공유 창과 서버에서 두 번 가립니다. 호스트명은 직접 켤 때만 들어갑니다.
네. 채팅·태스크·위키·워크플로 관리는 브라우저와 설치형 PWA에서 됩니다. 공유된 터미널 블록은 읽기 전용이고, 터미널 자체는 데스크톱 앱이 필요합니다.
Linux에서 검증했습니다. macOS·Windows 빌드는 실험 단계이고, Windows에서는 아직 명령 블록 없이 터미널만 씁니다. 설치 파일은 아직 배포하지 않습니다.
아직 없습니다. 호스팅 클라우드를 준비하고 있으며, 직접 설치(Docker Compose·systemd)가 먼저입니다.
오픈소스 에디션은 사용자 수 제한 없이 무료로 제공될 예정입니다. Basic·Pro·Enterprise 가격은 아직 정하지 않았습니다.
Docker가 있는 Linux 서버, 또는 바이너리와 PostgreSQL 16이면 됩니다. 첨부 파일은 디스크나 MinIO·Cloudflare R2·Amazon S3 같은 S3 호환 스토리지에 저장합니다. HTTPS는 앞에 Caddy나 다른 프록시를 둡니다.