직접 호스팅하기
tuckit의 핵심은 소스가 공개돼 있고 직접 돌릴 수 있습니다. 운영 환경에서도요. 이 페이지는 그중 AI를 직접 돌리는 서버에 연결시키는 부분만 다룹니다. 웹 화면 쪽은 다른 Django 앱과 똑같이 동작합니다.
아직 안 쓴 것
섹션 제목: “아직 안 쓴 것”찾다가 시간 버리지 마시라고 적어둡니다.
- 설치 가이드와 환경 변수 목록이 없습니다. 앱을 띄우는 방법은 지금은 저장소의 README가 기준입니다.
- HTTP API 문서가 없습니다. AI는 MCP로 붙고, 문서화된 REST 인터페이스는 없습니다.
아래에 적은 것들은 문서가 있어서가 아니라, 조용히 깨지기 때문에 적었습니다.
ASGI 앱을 띄워야 합니다
섹션 제목: “ASGI 앱을 띄워야 합니다”/mcp는 tuckit.asgi:app이 붙여줍니다. manage.py runserver와 WSGI 진입점은
웹 화면만 서빙합니다. 그래서 그 엔드포인트가 404를 내고, AI는 설정 문제가 아니라
연결 실패로 보고합니다.
uvicorn tuckit.asgi:app --host 0.0.0.0 --port 8000TUCKIT_MCP_ALLOWED_HOSTS를 설정하세요
섹션 제목: “TUCKIT_MCP_ALLOWED_HOSTS를 설정하세요”tuckit은 DNS 리바인딩을 막으려고 /mcp에 허용 목록을 두는데, 기본값은
localhost뿐입니다. 실제 도메인이나 리버스 프록시 뒤에 두면 호스트를 목록에 넣기
전까지 모든 요청이 421과 Invalid Host header를 냅니다.
export TUCKIT_MCP_ALLOWED_HOSTS="tuckit.example.com"이건 Django의 ALLOWED_HOSTS와 별개입니다. 한쪽을 설정해도 다른 쪽은 설정되지
않습니다. 그리고 증상(허용은 잘 되는데 그 뒤 모든 호출이 실패)이 호스트 헤더
문제처럼 전혀 안 보입니다.
TLS를 프록시에서 끊는다면 TUCKIT_OAUTH_ISSUER를 고정하세요
섹션 제목: “TLS를 프록시에서 끊는다면 TUCKIT_OAUTH_ISSUER를 고정하세요”TLS가 프록시에서 끝나면 앱은 평문 HTTP를 보게 되고, 인증 정보에 http:// 주소를
알립니다. 그러면 클라이언트가 거부합니다. 공개 주소로 고정하세요.
export TUCKIT_OAUTH_ISSUER="https://tuckit.example.com"직접 돌리는 서버에 AI 붙이기
섹션 제목: “직접 돌리는 서버에 AI 붙이기”에이전트 연결하기의 내용이 그대로 적용됩니다.
app.tuckit.dev 자리에 본인 주소를 넣으시면 됩니다. 두 가지만 따로 적습니다.
Claude Code 플러그인, 물어보지 않게 하려면. 설치할 때 주소를 같이 주면 됩니다.
claude plugin install tuckit@tuckit-plugins --scope user \ --config mcp_url="https://tuckit.example.com/mcp"Codex. plugins/codex/.mcp.json의 url을 고치거나,
에이전트 연결하기에 나온 대로
~/.codex/config.toml에 직접 설정하세요.
라이선스
섹션 제목: “라이선스”핵심은 Business Source License 1.1 아래 소스가 공개돼 있습니다. 읽을 수 있고 돌릴 수 있지만 OSI 기준의 오픈소스는 아니고, 그 점을 흐리기보다 그대로 말하는 편을 택했습니다. 운영 환경 포함해서 직접 호스팅하실 수 있고, 라이선스가 막는 건 tuckit 자체를 제3자에게 호스팅 서비스로 제공하는 것 하나입니다. 각 릴리스의 라이선스는 정해진 날짜에 Apache 2.0으로 바뀝니다.
여기 적힌 게 틀렸거나 빠졌다면 알려주세요. 명령어가 안 돌아가는 건 버그로 칩니다.

