موزیک
سرور موزیک دبی یک پلتفرم آنلاین برای ارائه خدمات موزیک است که با هدف پخش و اشتراکگذاری محتوای موزیکی راهاندازی شده است. این پروژه در شهرک آپادانا مستقر بوده و از طریق وبسایت onpmelody.ir در دسترس کاربران قرار میگیرد. سرویس دارای امکانات ارتباطی متنوعی شامل تلفن، ایمیل، واتساپ، تلگرام و اینستاگرام است که نشاندهنده تعامل فعال با کاربران میباشد. این پلتفرم احتمالاً به عنوان یک سرور موزیک محلی برای ذخیرهسازی و پخش موزیکهای مختلف طراحی شده است. پروژه با ارائه اطلاعات تماس کامل، تلاش در جهت ایجاد ارتباط مستقیم و حرفهای با مخاطبان دارد.
Go (Gin)
MongoDB
Redis
Docker
Caddy
JWT
WebSocket
PWA (Service Worker)
Tailwind CSS
Node.js
5170
خط کد
3
خبر
10
تکنولوژی
فعال
وضعیت
مسیر توسعه
پیگیری پیشرفت از روز اول
روز 1
2025/08/15
معرفی پروژه onpmelody
🎶 این پروژه یک سامانهی پخش و مدیریت محتوای چندرسانهای (موسیقی و ویدئو) است که با زبان Go و فریمورک Gin پیادهسازی شده و از MongoDB بهعنوان پایگاه داده استفاده میکند. این سیستم برای ارائهی سرویس استریم آنلاین موسیقی و ویدئو، مدیریت کاربران، احراز هویت، و امکاناتی مثل علاقهمندیها و پخش زنده رادیو و تلویزیون اینترنتی طراحی شده است.
✨ امکانات اصلی
🔑 مدیریت کاربران و احراز هویت
. تعریف کاربر با فیلدهای نام کاربری، موبایل، ایمیل، نقش، وضعیت فعال، توکن JWT و تاریخ انقضا
. ثبتنام با شماره موبایل و تأیید پیامکی (OTP) + ایجاد خودکار کاربر جدید
. ورود با رمز عبور یا OTP + ذخیره توکن در کوکی و دیتابیس
. غیرفعالسازی یا مسدودسازی کاربران + مدیریت دلایل مسدودی
🎵 سیستم استریم موسیقی و ویدئو
. اسکن خودکار پوشه (BASE_DIR) برای فایلهای MP3 و MP4
. تشخیص کیفیت (128/320kbps برای موسیقی و 480p/720p/1080p برای ویدئو)
. ثبت اطلاعات کاور و جزئیات فایل
. کشگذاری پیشرفته بر اساس هنرمند، عنوان، نام فایل یا آهنگهای یکتا
. مرتبسازی محتوا بر اساس تاریخ آخرین تغییر
. ماژول RadioStreamer و TVStreamer برای پخش زنده
💡 امکانات کاربرپسند
. سیستم علاقهمندیها (افزودن/حذف آهنگها) با ذخیره در دیتابیس
. APIهای صفحهبندی شده برای لیست علاقهمندیها و وضعیت هر آهنگ
. صفحات HTML برای لیست آهنگها، علاقهمندیها، رادیو و تلویزیون آنلاین
. پروفایل کاربری با نمایش اطلاعات کامل اشتراک
🔄 بروزرسانی و نگهداری خودکار
. وظایف زمانبندی شده (هر ۳۰ دقیقه بین ۹ صبح تا ۱۱ شب) برای:
▪ پاکسازی توکنهای منقضی
▪ اجرای اسکریپت دانلود محتوای جدید
▪ بازسازی کش موسیقی
. API اختصاصی برای بروزرسانی دستی کش
🔗 APIهای عمومی و محافظتشده
. مسیرهای عمومی: صفحه اصلی، جستجو، پخش پیشنمایش، دریافت کاور، ورود و ثبتنام
. مسیرهای محافظتشده: پخش فایل اصلی، دانلود، مدیریت علاقهمندیها، پروفایل کاربر
. پاسخهای JSON استاندارد با ساختار (success، message، error، timestamp)
⚙️ زیرساخت و معماری
. استفاده از Middlewareهای Gin (مثل cors و auth control)
. بارگذاری قالبهای HTML از مسیر templates و سرو فایلهای استاتیک (/static)
. توابع کمکی برای هش رمز عبور، اعتبارسنجی توکن، تولید توکن جدید
. ایندکسهای TTL در MongoDB برای پاکسازی خودکار توکنها
📌 جمعبندی
این سیستم ترکیبی از یک سرویس استریم موسیقی 🎶، یک تلویزیون اینترنتی 📺 و یک پلتفرم کاربر محور 👤 است. ویژگیهایی مثل کشگذاری هوشمند، بروزرسانی زمانبندیشده و APIهای کامل باعث شده هم کارایی بالا داشته باشد و هم توسعهپذیر باقی بماند.
روز 2
2026/05/09
🎵 آپلود موزیک از اپ + بازنویسی کامل مسیر ذخیرهسازی
🚀 امروز چندین بهبود کلیدی روی پروژه onpmelody اعمال شد:
📤 آپلود موزیک از اپ اندروید
سیستم آپلود موزیک از داخل اپ بازنویسی شد و حالا با pattern chunked (resume + SHA-1 checksum + retry با backoff) کار میکنه. اگه کاربر وسط آپلود اینترنتش قطع شد، تلاش بعدی فقط چانکهای باقیمانده رو میفرسته - نه از اول.
🗂️ تغییر کامل مسیر ذخیرهسازی
مسیر فیزیکی فایلها از حالت hardcode قبلی به یک مسیر قابل تنظیم منتقل شد. حالا با یک env var میشه روی هر OS و هر سرور آدرس رو عوض کرد.
📝 ذخیره relative path در MongoDB
قبلاً file_path و cover_path در دیتابیس بهصورت absolute ذخیره میشدن — اگه پوشه جابهجا میشد یا روی سرور دیگهای deploy میکردیم، همه رکوردها dead میشدن. حالا path نسبی نسبت به فولدر Music ذخیره میشه. یک migration یکباره روی ۱۲٬۸۶۷ رکورد metadata و ۷٬۰۲۵ رکورد music_files انجام شد.
🖼️ پردازش کامل بعد از آپلود
همون فلوی auto-downloader: استخراج ID3 (title/artist/album/composer/lyrics)، استخراج کاور با کیفیت بهینه، ذخیره در دو کالکشن metadata و music_files، تمیزکاری تگهای ID3 (حذف منابع تبلیغاتی مثل @AnySource)، broadcast notification به کانال Onpmelody، و رفرش خودکار cache.
🎯 Hybrid serving
سرور حالا fallback hybrid داره: اگه فایل تو مسیر اصلی نبود، خودبخود از مسیر local serve میکنه. روی Mac و Windows هر دو بدون تغییر کد کار میکنه.
روز 3
2026/05/28
بهبودهای گسترده در سرور موزیک onpmelody
امروز یک جلسه کاری پربار داشتیم و بهبودهای زیادی روی سرور موزیک onpmelody اعمال شد:
---
📱 **آیکونهای Mini Player در همه صفحات**
مشکل ناپدید شدن آیکونهای پلیر در صفحات ارتباط، رادیو، تلویزیون و ورود برطرف شد.
👆 **Swipe روی کاور آهنگ**
حالا میتونید روی کاور آهنگ swipe کنید — به چپ برای بعدی، به راست برای قبلی.
📻 **مدیریت سرویس رادیو و تلویزیون**
از پنل ادمین میتوانید رادیو و تلویزیون را روشن یا خاموش کنید. وضعیت در دیتابیس ذخیره میشه و بعد از ریستارت حفظ میمانه. آیکون سرویس خاموش در هیچ صفحهای نشان داده نمیشود.
📊 **بررسی کاورهای موزیک از ادمین**
دکمهای اضافه شد که نشان میدهد چند آهنگ کاور دارند و لیست آهنگهای بدون کاور را نمایش میدهد.
🔙 **دکمه بازگشت در همه صفحات**
یک دکمه بازگشت در header تمام صفحات اضافه شد.
📍 **حفظ موقعیت اسکرول**
وقتی از صفحه اصلی وارد یک آهنگ میشید و برمیگردید، دقیقاً همانجایی که بودید نمایش داده میشه.
🎤 **فیلتر «فقط آهنگهای همین خواننده»**
در صفحه پلیر یک تیک وجود دارد — با فعال کردن آن، دکمههای بعدی/قبلی فقط بین آهنگهای همان خواننده جابجا میشوند.
🔍 **رفع باگ فاصله در جستجو**
مشکل تایپ نشدن فاصله در باکس جستجو برطرف شد.
🗂️ **بهینهسازی پنل ادمین**
کارت «ساخت نسخه Release» به تب «مسیر و انتشار» منتقل شد.