Dasturlash

TinyIce: Yagona Binarli Audio Streaming Serveri – Tez, Xavfsiz, Kengaytirilgan

30-mart, 2026, 02:006 ko'rish3 daqiqa o'qish
TinyIce: Yagona Binarli Audio Streaming Serveri – Tez, Xavfsiz, Kengaytirilgan

Audio oqimlarini (streaming) internet orqali millionlab tinglovchilarga yetkazish hozirgi kunda ko‘plab radio va podkast operatorlari uchun muhim vazifa bo‘lib qolmoqda. TinyIce ushbu jarayonni soddalashtiradi: bitta binar fayl, minimal sozlamalar va zamonaviy funksiyalar bilan yuqori samaradorlikni ta’minlaydi.

Umumiy ko‘rinish

TinyIce – Go dasturlash tilida yozilgan, open source (ochiq kodli) audio streaming serveridir. U Icecast2 protokoli bilan to‘liq mos keladi, shuning uchun BUTT, OBS, Mixxx kabi mashhur kodlovchilarni bevosita ulash mumkin. Server bir fayl sifatida tarqatiladi, shu sababli instant deployment – ya’ni bir necha soniya ichida ishga tushirish imkonini beradi.

Asosiy xususiyatlari

  • Auto‑HTTPS – Let's Encrypt orqali avtomatik SSL sertifikatlari yaratilib, xavfsiz HTTPS aloqasi o‘rnatiladi.
  • WebRTC Go Live – brauzer orqali to‘g‘ridan‑to‘g‘ri audio uzatish, mikrofondan tanlash, spektr analizatori va daraja o‘lchagichlari bilan.
  • AutoDJ Studio – uch ustunli studiya interfeysi, kutubxona, pleylist va real‑vaqt visualizator.
  • Transcoding – Go ichida MP3 va Opus formatlariga avtomatik kodlash, FFmpeg talab qilinmaydi.
  • Multi‑tenant – bir nechta admin foydalanuvchi yaratib, har biri o‘z mount (oqim nuqtasi) ni boshqarishi mumkin.
  • Prometheus metrikalari – /metrics endpoint orqali tinglovchilar soni, tarmoqli trafik va tizim holati kuzatiladi.
  • Swagger UI – /api/docs sahifasida interaktiv API hujjatlari, OpenAPI 3.0 spetsifikatsiyasi bilan.

O‘rnatish va boshlash

Linux, macOS yoki Windows platformalarida TinyIce ni ishga tushirish juda oddiy:

curl -LJO "https://github.com/DatanoiseTV/tinyice/releases/latest/download/tinyice-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)"
chmod +x tinyice-*
./tinyice

Dastlabki ishga tushirishda server xavfsiz, tasodifiy parollarni yaratadi – admin, source (kodlovchi) va live mount parollari. Ushbu ma’lumotlarni saqlab, brauzerda http://localhost:8000 manziliga kirish kifoya.

Xavfsizlik va skalabilite

TinyIce bir nechta xavfsizlik qatlamlarini taklif etadi:

  • Bcrypt bilan tuzilgan parollar (salting, hashing).
  • IP‑ban va whitelist (CIDR formatida) qo‘llab‑quvvatlanadi.
  • Bearer token (API token) orqali skriptlar va CI/CD tizimlari uchun vaqtinchalik kirish.
  • Rate limiting – bir vaqtning o‘zida juda ko‘p so‘rovlar yuborilishini cheklash.

Arxitektura Shared Circular Buffer (ulashilgan aylanma bufer) asosida qurilgan, bu bir oqimni bir necha yuz ming tinglovchiga deyarli nol xotira ajratilishi bilan tarqatishga imkon beradi.

Foydalanuvchi interfeysi

Admin panel – single‑page application (SPA) bo‘lib, Preact kutubxonasi yordamida yaratilgan. Real‑vaqt SSE yangilanishlari, qorong‘u (dark) tema, rang tanlovchi va logotip yuklash funksiyalari mavjud. Markdown qo‘llab‑quvvatlanadi, shuning uchun sahifani o‘zingizning brendingizga moslab sozlashingiz mumkin.

Texnik tafsilotlar

  • Go 1.21+ va Node.js 18+ talab qilinadi (frontend avtomatik yig‘iladi).
  • SQLite ma’lumotlar bazasi – tarixiy qo‘shiqlar ro‘yxati va sozlamalar saqlanadi.
  • SO_REUSEPORT – serverni yangilashda uzilishsiz (zero‑downtime) ishlash.
  • HLS (HTTP Live Streaming) segmentatsiyasi – har bir mount uchun avtomatik .m3u8 fayllar yaratiladi.
  • MPD protokoli – standart Music Player Daemon mijozlari orqali uzluksiz boshqarish.

Xulosa

TinyIce – audio streaming sohasida “bitta binar, hamma narsa” tamoyilini amalda qo‘llagan yechim. U Icecast2 bilan mosligi, WebRTC orqali brauzer‑dan uzatish, avtomatik HTTPS, kuchli xavfsizlik va millionlab tinglovchilarni qo‘llab‑quvvatlash imkoniyatini birlashtiradi. Open‑source hamjamiyatining hissasi bo‘lib, har qanday foydalanuvchi kodni o‘zgartirishi, kengaytirishi yoki o‘z serverini bir necha daqiqada ishga tushirishi mumkin. Audio radio, podkast, on‑line DJ studiyalari yoki korporativ ichki radiolar uchun TinyIce ideal tanlov bo‘lib, kelajakda ham audio oqim texnologiyalarining rivojlanishiga hissa qo‘shadi.

Manba: Hacker News
#audio streaming #Icecast #WebRTC #auto-HTTPS #open source
Telegram da muhokama qilish