콘텐츠로 이동

직접 호스팅하기

tuckit의 핵심은 소스가 공개돼 있고 직접 돌릴 수 있습니다. 운영 환경에서도요. 이 페이지는 그중 AI를 직접 돌리는 서버에 연결시키는 부분만 다룹니다. 웹 화면 쪽은 다른 Django 앱과 똑같이 동작합니다.

찾다가 시간 버리지 마시라고 적어둡니다.

  • 설치 가이드와 환경 변수 목록이 없습니다. 앱을 띄우는 방법은 지금은 저장소의 README가 기준입니다.
  • HTTP API 문서가 없습니다. AI는 MCP로 붙고, 문서화된 REST 인터페이스는 없습니다.

아래에 적은 것들은 문서가 있어서가 아니라, 조용히 깨지기 때문에 적었습니다.

/mcptuckit.asgi:app이 붙여줍니다. manage.py runserver와 WSGI 진입점은 웹 화면만 서빙합니다. 그래서 그 엔드포인트가 404를 내고, AI는 설정 문제가 아니라 연결 실패로 보고합니다.

Terminal window
uvicorn tuckit.asgi:app --host 0.0.0.0 --port 8000

TUCKIT_MCP_ALLOWED_HOSTS를 설정하세요

섹션 제목: “TUCKIT_MCP_ALLOWED_HOSTS를 설정하세요”

tuckit은 DNS 리바인딩을 막으려고 /mcp에 허용 목록을 두는데, 기본값은 localhost뿐입니다. 실제 도메인이나 리버스 프록시 뒤에 두면 호스트를 목록에 넣기 전까지 모든 요청이 421Invalid Host header를 냅니다.

Terminal window
export TUCKIT_MCP_ALLOWED_HOSTS="tuckit.example.com"

이건 Django의 ALLOWED_HOSTS와 별개입니다. 한쪽을 설정해도 다른 쪽은 설정되지 않습니다. 그리고 증상(허용은 잘 되는데 그 뒤 모든 호출이 실패)이 호스트 헤더 문제처럼 전혀 안 보입니다.

TLS를 프록시에서 끊는다면 TUCKIT_OAUTH_ISSUER를 고정하세요

섹션 제목: “TLS를 프록시에서 끊는다면 TUCKIT_OAUTH_ISSUER를 고정하세요”

TLS가 프록시에서 끝나면 앱은 평문 HTTP를 보게 되고, 인증 정보에 http:// 주소를 알립니다. 그러면 클라이언트가 거부합니다. 공개 주소로 고정하세요.

Terminal window
export TUCKIT_OAUTH_ISSUER="https://tuckit.example.com"

에이전트 연결하기의 내용이 그대로 적용됩니다. app.tuckit.dev 자리에 본인 주소를 넣으시면 됩니다. 두 가지만 따로 적습니다.

Claude Code 플러그인, 물어보지 않게 하려면. 설치할 때 주소를 같이 주면 됩니다.

Terminal window
claude plugin install tuckit@tuckit-plugins --scope user \
--config mcp_url="https://tuckit.example.com/mcp"

Codex. plugins/codex/.mcp.jsonurl을 고치거나, 에이전트 연결하기에 나온 대로 ~/.codex/config.toml에 직접 설정하세요.

핵심은 Business Source License 1.1 아래 소스가 공개돼 있습니다. 읽을 수 있고 돌릴 수 있지만 OSI 기준의 오픈소스는 아니고, 그 점을 흐리기보다 그대로 말하는 편을 택했습니다. 운영 환경 포함해서 직접 호스팅하실 수 있고, 라이선스가 막는 건 tuckit 자체를 제3자에게 호스팅 서비스로 제공하는 것 하나입니다. 각 릴리스의 라이선스는 정해진 날짜에 Apache 2.0으로 바뀝니다.

여기 적힌 게 틀렸거나 빠졌다면 알려주세요. 명령어가 안 돌아가는 건 버그로 칩니다.