홈
XtreamUIPro

설정 가이드

스포츠 클럽·아카데미 설정 가이드

플랫폼을 클럽이나 아카데미의 영상 서비스로 구성합니다. 경기와 훈련 피드, 팀별 분석 라이브러리, 시즌을 따르는 회원과 가족 액세스.

이 가이드는 산업의 개념을 플랫폼에 현재 있는 객체(부케, 라인, 패키지, 파트너 계정, 노드, API)에 대응시킵니다. 이는 개념적 대응이며 산업 전용 기능이 아닙니다. 또한 파트너 계정은 위임 계정이며 격리된 테넌트가 아닙니다.

개념적 대응

패널에는 팀이나 회원이라는 이름의 항목이 없습니다. 표는 어떤 객체가 어떤 역할을 하는지 보여주며, 아래 장들은 그 순서대로 설정합니다.

내 산업에서는플랫폼에서는패널에서의 위치
경기 또는 훈련 피드실시간 채널: 소스, EPG, 출력 형식을 가진 스트림Streams → 실시간 스트림 추가(소스 URL 또는 RTMP 푸시)
분석·다시보기 라이브러리VOD 카탈로그: 시즌과 에피소드가 있는 영화와 시리즈, 카테고리, 메타데이터Movies와 Series, 또는 VOD 인제스트 작업
팀 또는 대회 패키지부케: 패키지가 부여하는 채널, 영화, 시리즈의 이름 있는 묶음Bouquets, Streams와 Movies / Series에서 생성
회원 또는 가족 액세스라인: 패키지, 부케, 만료일, 연결 제한, 출력을 가진 하나의 액세스Lines → 추가, 또는 활성화 코드, 또는 Reseller API
시즌 또는 회원 기간라인의 만료일. 패키지, 크레딧 또는 API로 갱신됩니다라인의 만료일과 패키지의 기간
팀 또는 아카데미 직원 계정파트너 계정(리셀러): 크레딧, 권한, 자체 라인을 가진 위임 대시보드Users → 리셀러 추가, 권한은 Groups에서 설정
쇼핑몰 또는 클럽 관리 연동Reseller API와 웹훅: 자체 시스템에서 수행하는 패널의 작업리셀러 대시보드의 Reseller API 키와 웹훅

사전 준비

설치 전에 준비할 것.

  1. 공개 주소 또는 도메인이 있는 서버(Ubuntu 22.04 또는 24.04)와 스트리밍할 경기에 충분한 업스트림 대역폭.
  2. RTMP를 푸시할 수 있는 경기장의 카메라와 인코더, 코치가 이미 보관 중인 훈련·분석 녹화 파일.
  3. 누가 무엇을 볼지에 대한 결정. 어떤 팀이 자료를 공유하는지, 어떤 경기를 회원 전용으로 할지, 직원 중 누구에게 패널 계정을 줄지.

인프라 구축

먼저 아카데미, 경기일에 필요하면 노드.

  1. 아카데미 서버에서 설치 프로그램을 실행하고 패널을 TLS가 적용된 리버스 프록시 뒤에 둡니다. 신뢰할 프록시를 설정해 로그와 IP 규칙이 시청자의 실제 주소를 보게 합니다.
  2. 재생 기본 주소를 시청자가 접속하는 공개 주소로 설정해, 패널이 발급하는 링크가 집에서도 작동하게 합니다.
  3. 많은 가족이 같은 경기를 본다면 Servers에서 노드를 등록합니다. 패널이 SSH로 설치하고 그 노드에서 실시간 채널을 분배합니다.
  4. 코칭 스태프용으로 카탈로그 권한은 있고 회원 라인 권한은 없는 파트너 계정(리셀러)을 만듭니다.

콘텐츠 정리

팀과 시즌은 카테고리로, 액세스는 부케로.

  1. 연령대와 시즌별로 카테고리를 만들고, 대회마다 경기당 에피소드 하나인 시리즈를 만듭니다.
  2. 팀별 분석 자료용 부케, 실시간 경기 채널용 부케, 아카데미 전체용 부케를 하나씩 만듭니다.
  3. 회원권 종류마다 패키지 하나를 만듭니다. 부여할 부케, 기간으로서의 시즌, 직원이 판매하는 경우의 크레딧 가격을 설정합니다.
  4. 부케에 해당 팀이나 대회의 이름을 붙여, 직원이 가족에게 어떤 패키지를 줘야 하는지 알 수 있게 합니다.

파트너(리셀러) 설정

클럽이 원하는 경우, 자기 회원을 관리하는 직원.

  1. 코치용으로 카탈로그 권한이 있는 그룹을, 회원 담당자용으로 라인 권한이 있는 그룹을 만듭니다.
  2. 각각을 해당하는 그룹의 리셀러로 추가합니다. 회원권을 패널로 판매하는 경우에만 담당자에게 크레딧을 줍니다.
  3. 자체 회원을 가진 위성 아카데미나 서포터즈 클럽에는 자체 파트너 계정과 자체 패키지를 줍니다.

회원·가족 액세스 설정

회원마다 또는 가족마다 라인 하나.

  1. 쇼핑몰 또는 클럽 관리 시스템용 Reseller API 키를 만들어 그 시스템의 비밀 저장소에 보관합니다.
  2. 등록 시 시스템이 회원권의 패키지와 요청 ID로 action=create_line을 호출합니다. 시즌이 패키지의 기간입니다.
  3. 하나의 회원권이 가구를 넘어 공유되지 않도록 최대 연결 수를 가족에게 필요한 기기 수(보통 3~4개)로 설정합니다.
  4. 체험 경기일에는 Lines → 추가에서 체험 패키지로 라인을 추가하거나, 관중석의 서포터를 위한 활성화 코드를 인쇄합니다.

분석·다시보기 라이브러리

경기와 훈련을 주문형으로.

  1. 각 경기나 훈련을 에피소드의 소스로 업로드하거나 VOD 인제스트 작업으로 인제스트합니다. 제목에 날짜, 상대, 팀을 넣어 둡니다.
  2. 녹화본을 시리즈를 통해 팀의 부케에 연결해, 그 팀의 라인에만 보이게 합니다.
  3. 회원권별 테스트 라인으로 재생을 확인해 누구에게 무엇이 보이는지 확인합니다.

경기·훈련 피드

경기장 카메라를 실시간 채널로.

  1. 경기장의 인코더(RTMP 푸시)마다 실시간 스트림을 추가하고 경기일 부케에 넣습니다.
  2. 캐치업을 활성화해 늦게 합류한 가족이 되감을 수 있게 하고, 경기 종료 후 녹화본을 라이브러리에 추가합니다.
  3. 경기일이 붐빌 때 노드가 채널을 오리진에서 한 번만 받아 연결된 시청자에게 전송하는지 확인합니다.

회원권 만료

액세스는 시즌을 따릅니다.

  1. 라인은 패키지 기간이 끝나면 만료됩니다. 다음 시즌 회비가 납부되면 쇼핑몰이 action=renew_line으로 갱신합니다.
  2. 쇼핑몰을 웹훅에 등록해 line.expiring 시 알림을 보내고 line.expired 시 회원권을 종료합니다.
  3. 시즌 중간에 탈퇴한 선수는 쇼핑몰이 action=disable_line으로 비활성화합니다. 라인은 기록을 위해 보관됩니다.

쇼핑몰·클럽 소프트웨어와의 연동

시스템이 액세스를 제어하고 플레이어가 재생합니다.

  1. 커머스 플랫폼(WooCommerce, Shopify 등)의 커넥터를 쇼핑몰 쪽에 설치해, 구매하면 라인이 생성되고 결제하면 갱신되게 합니다.
  2. 클럽 관리나 티켓 판매 시스템은 Reseller API와 웹훅으로 연결합니다. 이를 위한 기본 커넥터는 없습니다.
  3. 시청자용 싱글 사인온은 없습니다. 회원은 쇼핑몰이 보낸 자신의 라인 자격 증명으로 플레이어에 로그인합니다.

보안 고려 사항

팀 자료는 팀에게만.

  1. 패널과 재생 기본 주소는 TLS로 제공하고 TRUSTED_PROXIES를 리버스 프록시로 설정합니다.
  2. 모든 패널 계정에 2단계 로그인을 적용하고, 회원 담당자는 카탈로그를 변경할 수 없고 코치는 라인을 볼 수 없도록 권한 그룹을 둡니다.
  3. 서명되고 만료되는 재생 링크, 라인별 연결 제한, 직원 라인의 IP 또는 국가 고정.
  4. 오프사이트 사본이 있는 암호화된 데이터베이스 백업과, 라인과 카탈로그의 모든 변경을 기록하는 감사 로그.

문제 해결

가장 먼저 확인할 일반적인 항목.

  1. 학부모에게 1군의 분석이 보임: 라인의 패키지와 그것이 부여하는 부케를 확인합니다.
  2. 새 회원이 결제 후에도 액세스가 없음: Reseller API 호출 로그에서 쇼핑몰의 요청과 라인의 만료일을 확인합니다.
  3. 킥오프 때 경기 피드가 끊김: 경기장 인코더의 업로드와, 노드가 시청자에게 전송 중이라면 노드의 하트비트를 확인합니다.
  4. 감사 로그에 프록시의 주소가 표시됨: TRUSTED_PROXIES를 그 프록시로 설정하고 패널을 재시작합니다.