موجز TikTok قابل للاستضافة الذاتية لمقاطعك
قم بإنشاء موجز TikTok باستخدام مقاطع الفيديو الخاصة بك
Erin هي خدمة بسيطة ذاتية الاستضافة تمكنك من عرض مقاطعك الخاصة باستخدام موجز التمرير العمودي المعروف في TikTok. تم تقديم طلب على Reddit لتطبيق قابل للاستضافة الذاتية يمكنه عرض مقاطع الفيديو التي تمت تصفيتها باستخدام واجهة TikTok، لذلك قمت بذلك.
قامت إيرين بتنفيذ كل هذه الميزات:
علاوة على ذلك، يرجى ملاحظة أن Erin هو مجرد تطبيق React مدعوم بالكامل من Caddy. يعتني Caddy بالمصادقة، وتقديم الملفات الثابتة، وخدمة تطبيق React في وقت واحد.
*: يمكنك إخفاء مقاطع الفيديو لإخفائها من خلاصتك. إذا كنت تريد معرفة مقاطع الفيديو التي تم إخفاؤها، وحتى الكشف عنها، فيمكنك الضغط لفترة طويلة على زر
Mask
، وسيتم فتح المدير.
**: بشكل افتراضي، ستقوم Erin بإنشاء موجز عشوائي من جميع مقاطع الفيديو الموجودة في المجلد الخاص بك والأدلة الفرعية الخاصة به. ومع ذلك، إذا كنت ترغب في إنشاء خلاصات مخصصة (قوائم تشغيل)، فيمكنك إنشاء أدلة فرعية وتنظيم مقاطع الفيديو الخاصة بك وفقًا لذلك. على سبيل المثال: سيقوم
https://my-server.tld/directory-a
بإنشاء موجز من مقاطع الفيديو الموجودة في/directory-a
، ويعمل مع أي مسار (وبالتالي، يتم دعم المجلدات المتداخلة).
***: يمكنك إظهار قناة (مع صورة رمزية واسم)، وتعليق ورابط لجميع مقاطع الفيديو الخاصة بك باستخدام ملف البيانات الوصفية. يمكن وضع ملف البيانات الوصفية في أي مكان داخل مجلد مقاطع الفيديو، ويجب أن يتطابق مع اسم ملف الفيديو المرتبط به، مع استبدال الامتداد بـ JSON. على سبيل المثال: يمكن أن يحتوي
my-video.mp4
على بيانات التعريف الخاصة به فيmy-video.json
. يتم عرض تنسيق البيانات التعريفية هنا، ولاحظ أنه يمكنك استخدام HTML الخام في التسمية التوضيحية للتصميم والتأثيرات المخصصة.
لمزيد من المعلومات، اقرأ عن التكوين.
قبل المتابعة، بغض النظر عن Docker أو Docker Compose أو النشر المستقل، يرجى التأكد من أنك قمت بإنشاء دليل videos
يحتوي على جميع ملفات الفيديو الخاصة بك. لاحقًا، سيتم توفير هذا الدليل لمثيل Erin الخاص بك (عن طريق ربط وحدة تخزين بحاوية Docker الخاصة بك، أو وضع الدليل بجوار ملف Caddyfile الخاص بك).
يمكنك تشغيل Erin باستخدام Docker في سطر الأوامر بسرعة كبيرة.
يمكنك استخدام الأوامر التالية:
# Create a .env file
touch .env
# Edit .env file ...
# Option 1 : Run Erin attached to the terminal (useful for debugging)
docker run --env-file .env -p < YOUR-PORT-MAPPING > -v ./videos:/srv/videos:ro mosswill/erin
# Option 2 : Run Erin as a daemon
docker run -d --env-file .env -p < YOUR-PORT-MAPPING > -v ./videos:/srv/videos:ro mosswill/erin
ملاحظة: يوجد ملف
sample.env
في جذر المستودع لمساعدتك على البدء
ملاحظة: عند استخدام
docker run --env-file
، تأكد من إزالة علامات الاقتباس حولAUTH_ENABLED
وAUTH_SECRET
، وإلا قد تتعطل حاويتك بسبب الاستيفاء غير المتوقع وتحويلات النوع التي يديرها Docker خلف الكواليس.
لمساعدتك على البدء سريعًا، توجد بعض الأمثلة على ملفات docker-compose
في الدليل "أمثلة/".
فيما يلي وصف لكل مثال:
docker-compose.simple.yml
: قم بتشغيل Erin كخدمة واجهة أمامية على المنفذ 443، مع توفير متغيرات البيئة في ملف docker-compose
مباشرةً.
docker-compose.proxy.yml
: إعداد مع Erin يعمل على المنفذ 80، خلف وكيل يستمع على المنفذ 443.
عندما يكون ملف docker-compose
الخاص بك جاهزًا، يمكنك استخدام الأوامر التالية:
# Run Erin in the current terminal (useful for debugging)
docker-compose up
# Run Erin in a detached terminal (most common)
docker-compose up -d
# Show the logs written by Erin (useful for debugging)
docker logs < NAME-OF-YOUR-CONTAINER >
لتشغيل Erin، ستحتاج إلى تعيين متغيرات البيئة التالية في ملف .env
:
ملاحظة: تعمل متغيرات البيئة العادية المتوفرة في سطر الأوامر أيضًا
ملاحظة: يوجد ملف
sample.env
في جذر المستودع لمساعدتك على البدء
المعلمة | يكتب | وصف | تقصير |
---|---|---|---|
PUBLIC_URL | boolean | عنوان URL العام المستخدم للوصول عن بعد إلى مثيل Erin الخاص بك. (يرجى تضمين HTTP / HTTPS والمنفذ إذا لم يكن المعيار 80 أو 443. لا تقم بتضمين شرطة مائلة زائدة) (اقرأ وثائق Caddy الرسمية) | https://localhost |
AUTH_ENABLED | string | ما إذا كان ينبغي تمكين المصادقة الأساسية. (هذه المعلمة حساسة لحالة الأحرف) (القيم المحتملة: صحيح، خطأ) | حقيقي |
AUTH_SECRET | string | التجزئة الآمنة لكلمة المرور المستخدمة لحماية مثيل Erin الخاص بك. | تجزئة secure-password |
APP_TITLE | string | العنوان المخصص الذي ترغب في عرضه في علامة تبويب المتصفح. (نصيحة: يمكنك استخدام [VIDEO_TITLE] هنا إذا كنت تريد من Erin أن يعرض عنوان الفيديو الحالي ديناميكيًا.) | Erin - موجز TikTok لمقاطعك الخاصة |
AUTOPLAY_ENABLED | boolean | ما إذا كان ينبغي تمكين التشغيل التلقائي. (هذه المعلمة حساسة لحالة الأحرف) (القيم المحتملة: صحيح، خطأ) | خطأ شنيع |
PROGRESS_BAR_POSITION | string | حيث يجب أن يكون شريط التقدم موجودًا على الشاشة. (هذه المعلمة حساسة لحالة الأحرف) (القيم المحتملة: أسفل، أعلى) | قاع |
نصيحة: لإنشاء تجزئة آمنة لمثيلك، استخدم الأمر التالي:
docker run caddy caddy hash-password --plaintext " your-new-password "
ملاحظة: عند استخدام متغيرات البيئة
docker-compose.yml
، إذا كانت تجزئة كلمة المرور الخاصة بك تحتوي على علامات الدولار: قم بمضاعفتها جميعًا، وإلا فسيتعطل التطبيق. على سبيل المثال:$ab$cd$efxyz
يصبح$$ab$$cd$$efxyz
. ويرجع ذلك إلى التحذيرات المتعلقة بنظام الاستيفاء التسلسليdocker-compose
.
إذا واجهت أي مشكلة في تشغيل Erin، يرجى الرجوع إلى المشاكل الشائعة التالية التي قد تحدث.
إذا لم يتطابق أي من هذه الحالات مع حالتك، فلا تتردد في فتح مشكلة.
تجلس إيرين فوق خادم ويب Caddy.
نتيجة ل :
بخلاف ذلك، يرجى التأكد من استيفاء المتطلبات التالية:
إذا كان Erin يعمل كتطبيق مستقل بدون وكيل:
A erin XXX.XXX.XXX.XXX
لـ https://erin.your-server-tld
).env
الخاص بك بشكل جيد وفقًا لقسم التكوين.إذا كانت Erin تعمل داخل Docker / خلف وكيل:
PUBLIC_URL
بشكل جيد في .env
.على أية حال، الجزء الحاسم هو التكوين وقراءة وثائق العلبة الرسمية.
لكي تتمكن Erin من خدمة ملفات الفيديو الخاصة بك، يجب أن تحترم تلك المتطلبات التالية:
.mp4
، .ogg
، .webm
. (هناك الملحقات الوحيدة التي تدعمها متصفحات الويب.)/srv/videos
في حاوية Docker الخاصة بك باستخدام وحدة تخزين.للتأكد من أن مقاطع الفيديو الخاصة بك موجودة داخل حاوية Docker الخاصة بك وفي المكان الصحيح، يمكنك:
docker exec -it <NAME-OF-YOUR-CONTAINER> sh
ls /srv/videos
إذا كانت Erin لا تزال غير قادرة على العثور على مقاطع الفيديو الخاصة بك على الرغم من أن كل شيء تمت تهيئته بشكل جيد، فيرجى فتح مشكلة تتضمن إخراج وحدة تحكم Javascript في متصفحك وعلامة تبويب الشبكة عندما ينتقل الطلب إلى /media/
. قد يتعلق الأمر بالتخزين المؤقت للمتصفح، أو التكوين غير الصالح، أو بيانات الاعتماد غير الصالحة.
في الوقت الحالي، يجب عليك فقط وضع ملفات الفيديو الجديدة في دليل مقاطع الفيديو المثبت مع Docker. ستلتقط Erin هذه الملفات الجديدة تلقائيًا، وعندما تقوم بتحديث متصفحك ستراها.
ستقوم Erin تلقائيًا بترجمة اسم الملف الخاص بك إلى عنوان لعرضه على الواجهة.
عملية التحويل تتم على النحو التالي:
-
يصبح
__
يصبح -
فيما يلي بعض الأمثلة لمساعدتك في تسمية ملفاتك:
Vegas-trip__Clip-1.mp4
تصبح Vegas trip - Clip 1
Spanish-language__Lesson-1.mp4
تصبح Spanish language - Lesson 1
Spiderman-1.ogg
يصبح Spiderman 1
تقوم Erin بخلط ملفات الفيديو بشكل عشوائي عند كل تحديث للمتصفح.
ونتيجة لذلك، لا يوجد ترتيب محدد لظهور مقاطع الفيديو الخاصة بك.
في الوقت الحالي، ستحاول Erin فقط استرداد مقاطع الفيديو التي لها امتداد مدعوم.
الامتدادات المدعومة هي: .webm
، .mp4
، و .ogg
.
ومع ذلك، يرجى ملاحظة أن Safari لا يبدو أنه يدعم .ogg
، وبالتالي سيتم تجاهل مقاطع الفيديو هذه لمستخدمي Safari.
إذا كانت لديك أي نصيحة أو فكرة لدعم المزيد من الإضافات (خاصة لمستخدمي Safari)، فلا تتردد في فتح مشكلة.
يبدو أن هناك بعض التحذيرات عند استخدام Docker / Docker Compose مع تجزئة كلمة المرور التي تم إنشاؤها بواسطة Caddy.
هذه هي القواعد التي يجب عليك اتباعها:
docker run ... --env-file .env ...
، فيجب ألا يحتوي AUTH_SECRET
على أي عرض أسعار على الإطلاق، ويجب أن تظل جميع علامات الدولار كما هي بدون هروب أو مضاعفةdocker-compose.yml
، فيجب أن تتم مضاعفة علامات الدولار الخاصة بـ AUTH_SECRET
. مثال: i$am$groot
يصبح i$$am$$groot
.ومع ذلك، تذكر أنه يجب إنشاء تجزئة كلمة المرور الخاصة بك باستخدام الأمر التالي:
docker run caddy caddy hash-password --plaintext " your-new-password "
لا تتردد في فتح قضية، وشرح ما يحدث، ووصف البيئة الخاصة بك.
مهلا مهلا! من الجيد دائمًا أن نشكرك ونذكر الأشخاص والمشاريع التي تساعدنا على المضي قدمًا.
شكر كبير للأفراد/الفرق التي تقف وراء هذه المشاريع:
ولا تنس أن تذكر إيرين إذا أعجبك أو إذا كان يساعدك بأي شكل من الأشكال!