Umpan TikTok yang dapat dihosting sendiri untuk klip Anda
Buat umpan TikTok dengan video Anda sendiri
Erin adalah layanan sederhana dan dapat dihosting sendiri yang memungkinkan Anda melihat klip Anda sendiri menggunakan umpan gesek vertikal TikTok yang terkenal. Permintaan dibuat di Reddit untuk aplikasi yang dapat dihosting sendiri yang dapat menampilkan video yang difilter menggunakan antarmuka TikTok, jadi saya membuatnya.
Erin telah menerapkan semua fitur ini:
Selain itu, perlu diketahui bahwa Erin hanyalah aplikasi React yang sepenuhnya didukung oleh Caddy. Caddy menangani otentikasi, menyajikan file statis, dan menyajikan aplikasi React sekaligus.
*: Anda dapat menutupi video untuk menyembunyikannya dari feed Anda. Jika Anda ingin melihat video mana yang di-mask, dan bahkan membuka kedoknya, Anda dapat menekan lama tombol
Mask
, dan pengelola akan terbuka.
**: Secara default, Erin akan membuat feed acak dari semua video di folder Anda dan subdirektorinya. Namun, jika Anda ingin membuat feed khusus (daftar putar), Anda dapat membuat subdirektori dan mengatur video Anda sesuai dengan itu. Misalnya:
https://my-server.tld/directory-a
akan membuat feed dari video yang terletak di/directory-a
, dan berfungsi dengan jalur apa pun (jadi, folder bersarang didukung).
***: Anda dapat menampilkan saluran (dengan avatar dan nama), keterangan, dan tautan untuk semua video Anda menggunakan file metadata. File metadata dapat ditempatkan di mana saja di dalam folder video Anda, dan harus cocok dengan nama file video terkait, sambil mengganti ekstensinya dengan JSON. Misalnya:
my-video.mp4
dapat memiliki metadatanya dimy-video.json
. Format metadata ditampilkan di sini, dan perhatikan bahwa Anda dapat menggunakan HTML mentah dalam teks untuk gaya dan efek khusus.
Untuk informasi lebih lanjut, baca tentang Konfigurasi.
Sebelum melanjutkan, terlepas dari Docker, Docker Compose, atau penerapan mandiri, pastikan Anda telah membuat direktori videos
yang berisi semua file video Anda. Nantinya, direktori ini akan tersedia untuk instance Erin Anda (dengan mengikat volume ke container Docker Anda, atau meletakkan direktori di sebelah Caddyfile Anda).
Anda dapat menjalankan Erin dengan Docker di baris perintah dengan sangat cepat.
Anda dapat menggunakan perintah berikut:
# 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
Catatan : File
sample.env
terletak di root repositori untuk membantu Anda memulai
Catatan : Saat menggunakan
docker run --env-file
, pastikan untuk menghapus tanda kutip di sekitarAUTH_ENABLED
danAUTH_SECRET
, jika tidak, container Anda mungkin mogok karena interpolasi tak terduga dan konversi tipe yang dioperasikan oleh Docker di belakang layar.
Untuk membantu Anda memulai dengan cepat, beberapa contoh file docker-compose
terletak di direktori "examples/".
Berikut deskripsi setiap contoh:
docker-compose.simple.yml
: Jalankan Erin sebagai layanan depan pada port 443, dengan variabel lingkungan disediakan langsung dalam file docker-compose
.
docker-compose.proxy.yml
: Pengaturan dengan Erin berjalan pada port 80, di belakang proxy yang mendengarkan pada port 443.
Ketika file docker-compose
Anda sudah siap, Anda dapat menggunakan perintah berikut:
# 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 >
Untuk menjalankan Erin, Anda perlu mengatur variabel lingkungan berikut dalam file .env
:
Catatan : Variabel lingkungan reguler yang disediakan pada baris perintah juga berfungsi
Catatan : File
sample.env
terletak di root repositori untuk membantu Anda memulai
Parameter | Jenis | Keterangan | Bawaan |
---|---|---|---|
PUBLIC_URL | boolean | URL publik yang digunakan untuk mengakses instance Erin Anda dari jarak jauh. (Harap sertakan HTTP/HTTPS dan portnya jika bukan standar 80 atau 443. Jangan sertakan garis miring) (Baca dokumentasi resmi Caddy) | https://localhost |
AUTH_ENABLED | string | Apakah Otentikasi Dasar harus diaktifkan. (Parameter ini peka huruf besar-kecil) (Nilai yang mungkin : benar, salah) | BENAR |
AUTH_SECRET | string | Hash aman dari kata sandi yang digunakan untuk melindungi instance Erin Anda. | Hash secure-password |
APP_TITLE | string | Judul khusus yang ingin Anda tampilkan di tab browser. (Kiat: Anda dapat menggunakan [VIDEO_TITLE] di sini jika Anda ingin Erin menampilkan judul video saat ini secara dinamis.) | Erin - Umpan TikTok untuk klip Anda sendiri |
AUTOPLAY_ENABLED | boolean | Apakah putar otomatis harus diaktifkan. (Parameter ini peka huruf besar-kecil) (Nilai yang mungkin : benar, salah) | PALSU |
PROGRESS_BAR_POSITION | string | Di mana bilah kemajuan seharusnya berada di layar. (Parameter ini peka huruf besar-kecil) (Nilai yang memungkinkan: bawah, atas) | dasar |
Tip : Untuk menghasilkan hash aman untuk instance Anda, gunakan perintah berikut:
docker run caddy caddy hash-password --plaintext " your-new-password "
Catatan : Saat menggunakan variabel lingkungan
docker-compose.yml
, jika hash kata sandi Anda berisi tanda dolar: gandakan semuanya, atau aplikasi akan mogok. Misalnya:$ab$cd$efxyz
menjadi$$ab$$cd$$efxyz
. Hal ini disebabkan oleh peringatan pada sistem interpolasi stringdocker-compose
.
Jika Anda mengalami masalah saat menjalankan Erin, lihat masalah umum berikut yang mungkin terjadi.
Jika tidak ada yang cocok dengan kasus Anda, silakan buka terbitan.
Erin duduk di atas server web Caddy.
Sebagai akibat :
Selain itu, pastikan persyaratan berikut dipenuhi:
Jika Erin berjalan sebagai aplikasi mandiri tanpa proxy :
A erin XXX.XXX.XXX.XXX
untuk https://erin.your-server-tld
).env
Anda dikonfigurasi dengan baik sesuai dengan bagian Konfigurasi.Jika Erin berjalan di dalam Docker/di belakang proxy :
PUBLIC_URL
disetel dengan baik di .env
.Bagaimanapun, bagian krusialnya adalah Konfigurasi dan membaca dokumentasi resmi Caddy.
Agar Erin dapat menyajikan file video Anda, file tersebut harus memenuhi persyaratan berikut :
.mp4
, .ogg
, .webm
. (Hanya ada ekstensi yang didukung oleh browser web.)/srv/videos
pada wadah Docker Anda menggunakan volume.Untuk memastikan video Anda berada di dalam container Docker dan berada di tempat yang tepat, Anda dapat :
docker exec -it <NAME-OF-YOUR-CONTAINER> sh
ls /srv/videos
Jika Erin masih tidak dapat menemukan video Anda meskipun semuanya telah dikonfigurasi dengan baik, buka masalah termasuk keluaran konsol Javascript browser Anda dan tab jaringan saat permintaan masuk ke /media/
. Ini mungkin ada hubungannya dengan cache browser, konfigurasi tidak valid, atau kredensial tidak valid.
Untuk saat ini, Anda sebaiknya memasukkan file video baru Anda ke direktori video yang di-mount dengan Docker. Erin akan secara otomatis mengambil file-file baru ini, dan ketika Anda menyegarkan browser Anda, Anda akan melihatnya.
Erin secara otomatis akan menerjemahkan nama file Anda menjadi judul untuk ditampilkan di antarmuka.
Konversi yang dioperasikan adalah sebagai berikut:
-
menjadi
__
menjadi -
Berikut ini beberapa contoh untuk membantu Anda memberi nama pada file Anda:
Vegas-trip__Clip-1.mp4
menjadi Vegas trip - Clip 1
Spanish-language__Lesson-1.mp4
menjadi Spanish language - Lesson 1
Spiderman-1.ogg
menjadi Spiderman 1
Erin secara acak mengacak file video Anda pada setiap penyegaran browser.
Akibatnya, tidak ada urutan khusus agar video Anda muncul.
Untuk saat ini, Erin hanya akan mencoba mengambil video yang memiliki ekstensi yang didukung.
Ekstensi yang didukung adalah : .webm
, .mp4
, dan .ogg
.
Namun, perlu diingat bahwa Safari tampaknya tidak mendukung .ogg
, sehingga video ini akan diabaikan untuk pengguna Safari.
Jika Anda mempunyai saran atau ide untuk mendukung lebih banyak ekstensi (khususnya bagi pengguna Safari), jangan ragu untuk membuka terbitan.
Tampaknya ada beberapa peringatan saat menggunakan Docker/Docker Compose dengan hash kata sandi yang dibuat oleh Caddy.
Ini adalah aturan yang harus Anda ikuti:
docker run ... --env-file .env ...
, maka AUTH_SECRET
Anda seharusnya tidak memiliki tanda kutip sama sekali, dan semua tanda dolar harus tetap apa adanya tanpa keluar atau dua kali lipatdocker-compose.yml
, maka tanda dolar AUTH_SECRET
Anda akan berlipat ganda. Contoh : i$am$groot
menjadi i$$am$$groot
.Meskipun demikian, ingatlah bahwa hash kata sandi Anda harus dibuat dengan perintah berikut:
docker run caddy caddy hash-password --plaintext " your-new-password "
Silakan membuka terbitan, menjelaskan apa yang terjadi, dan menjelaskan lingkungan Anda.
Hei hei! Itu selalu merupakan ide yang baik untuk mengucapkan terima kasih dan menyebutkan orang-orang dan proyek-proyek yang membantu kami bergerak maju.
Terima kasih sebesar-besarnya kepada individu/tim di balik proyek ini:
Dan jangan lupa menyebutkan Erin jika Anda menyukainya atau jika itu membantu Anda!