ฟีด TikTok ที่โฮสต์ได้เองสำหรับคลิปของคุณ
สร้างฟีด TikTok ด้วยวิดีโอของคุณเอง
Erin เป็นบริการที่เรียบง่ายและโฮสต์ได้เอง ซึ่งช่วยให้คุณดูคลิปของคุณเองโดยใช้ฟีดแนวตั้งที่โด่งดังของ TikTok มีการร้องขอบน Reddit สำหรับแอปที่โฮสต์ได้เองซึ่งสามารถแสดงวิดีโอที่กรองแล้วโดยใช้อินเทอร์เฟซของ TikTok ดังนั้นฉันจึงทำมัน
Erin ได้นำคุณสมบัติทั้งหมดเหล่านี้ไปใช้:
นอกจากนี้ โปรดทราบว่า Erin เป็นเพียงแอป React ที่ขับเคลื่อนโดย Caddy ทั้งหมด Caddy ดูแลการตรวจสอบสิทธิ์ ให้บริการไฟล์คงที่ และให้บริการแอป React ทั้งหมดในคราวเดียว
*: คุณสามารถปกปิดวิดีโอเพื่อซ่อนจากฟีดของคุณได้ หากคุณต้องการดูว่าวิดีโอใดบ้างที่ถูกมาสก์และแม้กระทั่งเปิดโปงวิดีโอเหล่านั้น คุณสามารถกดปุ่ม
Mask
ค้างไว้แล้วผู้จัดการจะเปิดขึ้นมา
**: ตามค่าเริ่มต้น เอรินจะสร้างฟีดแบบสุ่มจากวิดีโอทั้งหมดในโฟลเดอร์และไดเรกทอรีย่อยของคุณ อย่างไรก็ตาม หากคุณต้องการสร้างฟีดที่กำหนดเอง (เพลย์ลิสต์) คุณสามารถสร้างไดเรกทอรีย่อยและจัดระเบียบวิดีโอของคุณตามลำดับได้ ตัวอย่างเช่น:
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
บางส่วนจะอยู่ในไดเร็กทอรี "examples/"
นี่คือคำอธิบายของทุกตัวอย่าง:
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 อย่าใส่เครื่องหมายทับต่อท้าย) (อ่านเอกสารแคดดี้อย่างเป็นทางการ) | 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 โปรดดูปัญหาทั่วไปที่อาจเกิดขึ้นดังต่อไปนี้
หากสิ่งเหล่านี้ไม่ตรงกับกรณีของคุณ คุณสามารถเปิดปัญหาได้เลย
เอรินนั่งอยู่บนสุดของเว็บเซิร์ฟเวอร์แคดดี้
เป็นผลให้:
นอกเหนือจากนั้น โปรดตรวจสอบให้แน่ใจว่าเป็นไปตามข้อกำหนดต่อไปนี้:
หาก 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 เอรินจะรับไฟล์ใหม่เหล่านี้โดยอัตโนมัติ และเมื่อคุณรีเฟรชเบราว์เซอร์ คุณจะเห็นไฟล์เหล่านั้น
เอรินจะแปลชื่อไฟล์ของคุณเป็นชื่อโดยอัตโนมัติเพื่อแสดงบนอินเทอร์เฟซ
การดำเนินการแปลงมีดังนี้:
-
กลายเป็น
__
กลายเป็น -
ต่อไปนี้คือตัวอย่างบางส่วนที่จะช่วยคุณตั้งชื่อไฟล์:
Vegas-trip__Clip-1.mp4
กลายเป็น Vegas trip - Clip 1
Spanish-language__Lesson-1.mp4
กลายเป็น Spanish language - Lesson 1
Spiderman-1.ogg
กลายเป็น Spiderman 1
เอรินสุ่มสุ่มไฟล์วิดีโอของคุณทุกครั้งที่รีเฟรชเบราว์เซอร์
ด้วยเหตุนี้ จึงไม่มีลำดับที่เจาะจงสำหรับวิดีโอของคุณที่จะปรากฏ
ในตอนนี้ เอรินจะพยายามเรียกค้นเฉพาะวิดีโอที่มีส่วนขยายที่รองรับเท่านั้น
นามสกุลไฟล์ที่รองรับคือ : .webm
, .mp4
และ .ogg
อย่างไรก็ตาม โปรดทราบว่า Safari ดูเหมือนจะไม่รองรับ .ogg
ดังนั้น ผู้ใช้ Safari จะไม่สนใจวิดีโอเหล่านี้
หากคุณมีคำแนะนำหรือแนวคิดที่จะสนับสนุนส่วนขยายเพิ่มเติม (โดยเฉพาะสำหรับผู้ใช้ Safari) โปรดอย่าลังเลที่จะเปิดประเด็น
ดูเหมือนว่าจะมีข้อแม้บางประการเมื่อใช้ Docker / Docker Compose กับแฮชรหัสผ่านที่สร้างโดยแคดดี้
นี่คือกฎที่คุณควรปฏิบัติตาม:
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 "
โปรดอย่าลังเลที่จะเปิดประเด็น อธิบายสิ่งที่เกิดขึ้น และอธิบายสภาพแวดล้อมของคุณ
เฮ้ เฮ้ ! เป็นความคิดที่ดีเสมอที่จะกล่าวขอบคุณและกล่าวถึงผู้คนและโครงการที่ช่วยให้เราก้าวไปข้างหน้า
ขอขอบคุณบุคคล/ทีมงานที่อยู่เบื้องหลังโครงการเหล่านี้เป็นอย่างยิ่ง:
และอย่าลืมพูดถึง Erin ถ้าคุณชอบหรือช่วยคุณในทางใดทางหนึ่ง!