TinyIce: 단일 바이너리 Icecast2 호환 서버 (자동 HTTPS, 멀티 테넌트)

발행: (2026년 2월 18일 오후 03:00 GMT+9)
6 분 소요

Source: Hacker News

Source:

TinyIce ❄️

Run it, and you’ll have a ready Icecast server in seconds.

주의: 이것은 부수 프로젝트입니다. 스스로의 책임 하에 사용하십시오. 보안 모범 사례 지침을 따르고 있지만, 독립적인 감사를 거치지는 않았습니다.

TinyIce는 Go로 작성된 가볍고 고성능이며 안전한 Icecast 2‑호환 스트리밍 서버입니다. 자체 포함형이며 배포가 간편하고, 관리자와 청취자를 위한 현대적인 웹 인터페이스를 제공합니다.

스크린샷

TinyIce 대시보드TinyIce 플레이어
대시보드플레이어

배지

Go Report Card
License: Apache 2.0

왜 TinyIce인가?

전통적인 스트리밍 서버는 설정이 복잡하고 리소스를 많이 소모합니다. TinyIce는 다음과 같은 방법으로 이를 해결합니다:

  • 즉시 배포 – 모든 자산(템플릿, 아이콘)이 포함된 단일 바이너리.
  • 무설정 보안 – 첫 실행 시 자동으로 고유한 보안 자격 증명이 생성됩니다.
  • 멀티 테넌트 지원 – 각자 자신의 마운트 포인트만 관리할 수 있는 여러 관리자 사용자 생성 가능.
  • 엣지 준비 릴레이 – 자동 재연결 및 스트림 내 ICY 메타데이터 파싱을 지원하며 다른 서버에서 스트림을 끌어옵니다.
  • 보안 및 강화 – 솔트가 적용된 bcrypt 비밀번호 해싱, CSRF 방지, HTTP 리소스 강화.
  • 자동 HTTPSACME (Let’s Encrypt) 를 통한 무설정 SSL 인증서 지원 내장.
  • 실시간 인사이트 – SSE 기반 대시보드와 부드러운 하드웨어 가속 트래픽 차트 제공.
  • 관측성 – 내장 Prometheus 메트릭 엔드포인트와 구조화된 로깅.

Features {#features}

  • Icecast2 호환 – 표준 소스 클라이언트(BUTT, OBS, Mixxx, LadioCast)와 플레이어(VLC, 웹 브라우저)에서 작동합니다.
  • 스트림 릴레이 – 원격 서버에서 스트림을 가져와 엣지 노드 역할을 합니다.
  • 듀얼 프로토콜 아키텍처 – 청취자에게 HTTPS를 제공하면서 레거시 인코더가 일반 HTTP로 스트리밍할 수 있게 합니다.
  • 공개 디렉터리 목록 – Icecast YP 프로토콜에 대한 내장 지원(예: dir.xiph.org).
  • 동적 관리 – 마운트 포인트, 사용자, 릴레이를 실시간으로 추가, 업데이트, 비활성화 또는 제거합니다.
  • IP 차단 – 악성 IP가 스트리밍하거나 청취하는 것을 즉시 차단합니다.
  • 레거시 API – 기존 Icecast 도구와 호환성을 위해 /status-json.xsl을 지원합니다.
  • 현재 재생 메타데이터 – 방송 소프트웨어에서 푸시하거나 릴레이에서 가져온 곡 제목을 실시간으로 표시합니다.

시작하기

1. 빌드

요구 사항: Go 1.21 이상.

go build -o tinyice

2. 실행

./tinyice

첫 실행 시, TinyIce는 고유한 무작위 비밀번호가 들어 있는 tinyice.json 파일을 생성합니다. 터미널 출력에 표시된 비밀번호를 반드시 복사해서 저장하세요!

3. 스트리밍

인코더(예: BUTT)를 다음 설정으로 구성합니다:

설정
서버 유형Icecast 2
주소your-server-ip
포트8000
비밀번호생성된 소스 비밀번호
마운트/live

이제 스트리밍을 시작할 준비가 되었습니다!

명령줄 사용법

./tinyice -host 0.0.0.0 -port 8000 -daemon -log-file tinyice.log
옵션설명기본값
-host바인딩할 네트워크 인터페이스0.0.0.0
-port수신 대기할 포트 번호
-config설정 파일 경로
-log-file로그 출력을 위한 파일 경로
-log-level로그 레벨: debug, info, warn, error
-json-logs구조화된 JSON 로그 활성화
-daemon프로그램을 백그라운드에서 실행
-pid-file프로세스 ID를 기록할 파일 경로

성능

자세한 하드웨어 및 트래픽 추정치는 PERFORMANCE.md 파일을 확인하십시오.

License

Apache License 2.0에 따라 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.

개발자: DatanoiseTV.

0 조회
Back to Blog

관련 글

더 보기 »

EDuke32 – Duke Nukem 3D (오픈소스)

이제는 거침없이 행동하고 버블껌을 씹을 시간이며, 나는 껌이 다 떨어졌다! !Polymer renderer screenshot/images/shots/polymer2.jpg 픽셀당 동적 조명 및 실시간 그림자...