صدای شاعر · نسخهٔ داخلی ۲.۰.۱

راه‌اندازی روی سرور شما

سرور Django و PostgreSQL و اپلیکیشن اندروید برای نشانی زیر آماده شده‌اند.

https://192.168.100.127:8084
وضعیت فعلی: این محیط به شبکهٔ خصوصی شما دسترسی ندارد و نصب روی دستگاه شما انجام نشده است. مراحل زیر روی خود سرور اجرا می‌شوند.

۱. آماده‌سازی سرور

سیستم‌عامل پیشنهادی Ubuntu Server 24.04 LTS است. برای شروع، ۲ هستهٔ پردازنده، ۴ گیگابایت RAM و ۸۰ گیگابایت SSD در نظر بگیرید؛ ظرفیت نهایی به حجم عکس‌ها و صداها و تعداد کاربران بستگی دارد و آزمون بار انجام نشده است.

۲. نصب سرور

ZIP سرور را روی سرور استخراج کنید، وارد پوشهٔ PoetVoice/server شوید و فرمان زیر را اجرا کنید:

sudo bash install-lan.sh

نصاب Docker و Compose را در صورت نیاز نصب می‌کند، پایگاه و کلیدهای اختصاصی را می‌سازد، جدول‌ها را ایجاد می‌کند، حساب مدیر را ثبت می‌کند و HTTPS روی پورت 8084 را بالا می‌آورد. در پایان، سلامت اتصال HTTPS را با گواهی همین بسته بررسی می‌کند.

این فرمان باید روی دستگاهی اجرا شود که IP تعیین‌شده را دارد؛ در دستگاه دیگری با پیام روشن متوقف می‌شود. نام پروژهٔ Docker همان poetvoice-v2 است تا دادهٔ PostgreSQL نسخهٔ ۲ حفظ شود.

۳. ورود به مدیریت

نشانی پنلhttps://192.168.100.127:8084/admin
نام کاربریadmin
رمز اولیهٔ انتخاب‌شده توسط شما1qazxsw2

نصاب رمز را به‌صورت هش در پایگاه ثبت می‌کند. نصب مجدد رمز را بازنشانی نمی‌کند. اگر سرور نسخهٔ ۲ قبلاً حسابی به نام admin دارد، نخستین نصب این تنظیمات، همان حساب را مطابق درخواست مالک فعال و رمز آن را تنظیم می‌کند؛ پس از آن تغییرات بعدی رمز حفظ می‌شوند.

این رمز فقط متعلق به مدیریت وب است؛ حساب خواننده در اپلیکیشن جدا ساخته می‌شود و با کد کتاب فعال می‌شود. رمز مدیر داخل APK قرار ندارد. محدودیت ۱۲ نویسه برای حساب‌های تازهٔ خوانندگان و مدیران عادی همچنان برقرار است؛ رمز اولیهٔ این نصب مطابق درخواست شما است.

۴. اعتماد مرورگر به HTTPS داخلی

فایل عمومی server/lan/PoetVoice-LAN-CA.crt را از ZIP بردارید و فقط روی رایانه یا گوشی مورد استفاده برای مدیریت وب، در بخش گواهی‌های ریشهٔ مورد اعتماد نصب کنید. سپس مرورگر را ببندید و دوباره باز کنید.

برای بازکردن پنل، https:// را کامل وارد کنید. به‌جای عبور از اخطار گواهی، همین گواهی را نصب کنید تا دوربین پنل هم در یک اتصال معتبر کار کند؛ اجازهٔ دسترسی دوربین را نیز هنگام درخواست مرورگر بدهید.

اثر انگشت SHA-256 گواهی ریشه:

5d461ed98a130688f62de944c9741a72d5964bde2afe9edb1c58c94f9913e533

برای اپلیکیشن اندروید خواننده، نصب دستی گواهی روی گوشی لازم نیست؛ همان گواهی به‌صورت محدود به IP سرور در APK قرار دارد.

۵. نصب اپلیکیشن

  1. فایل PoetVoice-Android-Test.apk این نسخه را روی گوشی Android 8 یا جدیدتر نصب کنید. در صورت نیاز، اجازهٔ نصب را برای منبع همین فایل فعال کنید.
  2. گوشی را به شبکهٔ داخلی وصل کنید. برنامه در اولین اجرا، نشانی https://192.168.100.127:8084 را از پیش دارد.
  3. حساب خواننده بسازید یا وارد حساب قبلی شوید و کد فعال‌سازی کتاب را ثبت کنید.
  4. اجازهٔ دوربین را بدهید، QR کتاب را اسکن کنید و اجرای شعر را انتخاب کنید.

این APK شمارهٔ ساخت ۲۰۱ و همان امضای آزمایشی نسخهٔ قبلی را دارد. در ارتقا، تم‌ها و شناسهٔ دستگاه حفظ می‌شوند؛ اگر سرور قبلی متفاوت باشد، توکن ورود قبلی پاک و ورود مجدد لازم می‌شود. تغییرات بعدی نشانی از تنظیمات برنامه امکان‌پذیر است.

چند صدا، حداکثر ۲۰ تصویر، نمایش تصادفی و زمان‌بندی وابسته به اجرا، تم‌ها و کنترل‌های قبلی حفظ شده‌اند. IPA یا کلاینت iOS سازگار با نسخهٔ ۲ در این تحویل موجود نیست.

۶. انتقال اطلاعات موجود

اگر نسخهٔ ۲ Django/PostgreSQL از قبل نصب است: ابتدا sudo bash backup.sh را در پوشهٔ سرور قبلی اجرا کنید. فایل‌های برنامهٔ جدید را روی همان پوشه به‌روز کنید و data، secrets و .env را حفظ کنید؛ سپس sudo bash install-lan.sh را اجرا کنید. نصاب کلید رسانه و گذرواژه‌های پایگاه را عوض نمی‌کند و از همان نام پروژه و حجم PostgreSQL استفاده می‌کند. یک نسخهٔ مستقل دیگر از همان پروژه را هم‌زمان اجرا نکنید.

اگر نسخهٔ ۱ Node/SQLite دارید: از آن بکاپ بگیرید، آن سرور را متوقف کنید و نسخهٔ جدید را در پوشه‌ای جدا استخراج کنید. مقصد باید خالی باشد:

sudo bash install-lan.sh --import /ABSOLUTE/OLD/server/data

ابزار انتقال ابتدا ورودی را بررسی می‌کند و سپس حساب‌ها، شناسه‌ها، QRها، اجراها و زمان‌بندی‌ها را با رمزگذاری صوت منتقل می‌کند. دادهٔ مبدأ دست‌نخورده می‌ماند. اطلاعات سایت میزبانی‌شدهٔ قبلی به‌طور خودکار وارد سرور داخلی نمی‌شود.

۷. نگهداری و بکاپ

از پوشهٔ server:

sudo docker compose ps
sudo docker compose logs --tail=100 api proxy
sudo bash backup.sh
sudo systemctl status poetvoice-lan-tls.timer

بکاپ در پوشهٔ backups ساخته می‌شود و شامل پایگاه، رسانه‌های رمزگذاری‌شده، .env، کلید رمزگذاری رسانه و کلیدهای HTTPS است. یک نسخهٔ خصوصی از آن را بیرون از سرور نگه دارید. پاک‌کردن کلید رسانه باعث از دست رفتن امکان پخش فایل‌های ذخیره‌شده می‌شود.

برای تغییر رمز مدیر:

sudo docker compose run --rm api python manage.py changepassword admin

گواهی سرور یک سال اعتبار دارد. تایمر روزانهٔ poetvoice-lan-tls.timer در ۳۰ روز آخر آن را با همان ریشه تمدید و پراکسی را بازراه‌اندازی می‌کند. بررسی دستی:

sudo bash renew-lan-tls.sh

گواهی ریشه تا سپتامبر ۲۰۳۶ اعتبار دارد. برای تغییر آن باید APK جدید ساخته و گواهی جدید در مرورگرهای مدیریت نصب شود. پوشهٔ نصب را پس از نصب تایمر جابه‌جا نکنید؛ در صورت جابه‌جایی، نصاب را در مسیر جدید دوباره اجرا کنید.

بستهٔ سرور خصوصی است: ZIP شامل کلید خصوصی گواهی داخلی و هش راه‌اندازی مدیر است؛ آن را فقط در اختیار مدیر سرور بگذارید. به خوانندگان فقط APK بدهید. کلید خصوصی گواهی در اپلیکیشن یا صفحات وب منتشر نمی‌شود.

۸. بررسی پس از نصب

دادهٔ صوت رمزگذاری و مجوزها به حساب و دستگاه محدود هستند؛ این نسخه Widevine/FairPlay ندارد و استخراج روی دستگاه دستکاری‌شده یا ضبط با دستگاه دیگر همچنان ممکن است. نتایج بررسی محیط ساخت در TEST-REPORT.md است؛ آن‌ها جای آزمون سرور و گوشی واقعی شما را نمی‌گیرند.

مراجع فنی

تنظیم اعتماد به گواهی داخلی در اندروید · گواهی اختصاصی در Caddy · اتصال TLS با IP و بدون SNI