Menjalankan tapeshelf Anda sendiri

tapeshelf adalah open source di bawah AGPL-3.0, dan aplikasi di balik tapeshelf.com adalah aplikasi yang nanti bisa Anda jalankan di server sendiri. Repositori publik dan panduan instalasinya belum dirilis. Sampai saat itu, inilah gambaran menjalankan instans Anda sendiri, agar Anda bisa memutuskan apakah ini cocok untuk Anda dan merencanakan servernya.
Satu stack
Satu instans adalah satu stack Docker Compose:
browser ──HTTPS──► Caddy ─── the web app, security headers
└── /api, /ws ──► api ──► Postgres, Redis
worker (ffmpeg) ──► Postgres, Redis
browser ──► S3-compatible storage: uploads, video segments, images
- Caddy menyajikan aplikasi web dan meneruskan lalu lintas API dan WebSocket. Caddy mengambil dan memperbarui sertifikat Let’s Encrypt dengan sendirinya. Jika Anda sudah menjalankan reverse proxy, Caddy bisa ditempatkan di belakangnya tanpa TLS.
- api adalah semua yang dilakukan aplikasi: akun, rak, pemeriksaan akses, permintaan dan pertukaran, tautan sementara, dan pemberian kunci video.
- worker adalah kode yang sama yang dijalankan sebagai proses kedua, dalam image dengan ffmpeg. Worker membersihkan dan mengonversi unggahan, mengenkripsi salinan untuk streaming, membuat frame dan pratinjau, merender hasil edit, serta mengirim email dan notifikasi.
- Postgres menyimpan data. Redis menyimpan antrean pekerjaan dan cache berumur pendek.
- Container migrate sekali jalan berjalan di setiap start. Container ini menerapkan migrasi database, membuat akun admin dari pengaturan Anda, dan menyiapkan bucket: baca publik tanpa daftar isi untuk gambar, aturan pembersihan untuk unggahan yang terbengkalai, dan CORS untuk domain Anda.
- Layanan backup membuat dump database ke bucket Anda sekali sehari dan menyimpan 14 dump terakhir.
Video tidak pernah melewati API. Browser mengunggah langsung ke penyimpanan dan melakukan streaming segmen langsung dari sana, jadi penyimpanan memerlukan alamat sendiri yang bisa dijangkau browser. Itulah satu-satunya bagian yang perlu sedikit dipikirkan. Anda bisa mengarahkan tapeshelf ke layanan kompatibel S3 yang sudah Anda pakai, atau menjalankan penyimpanan dalam stack yang sama.
Yang Anda perlukan
- Server Linux dengan Docker dan plugin Compose. Dua core CPU dan RAM 4 GB adalah batas minimum yang wajar.
- Ruang disk untuk file sementara worker: sekitar dua setengah kali ukuran video terbesar, untuk setiap video yang diproses secara paralel.
- Domain yang mengarah ke server, dengan port 80 dan 443 terbuka.
- Akun SMTP untuk email: konfirmasi, pengaturan ulang kata sandi, dan notifikasi.
- Opsional: klien Google OAuth Anda sendiri untuk “Masuk dengan Google”, dan kunci Cloudflare Turnstile untuk captcha pada pendaftaran berulang dan tamu baru.
Konversi video adalah bagian yang berat. Video H.264 hingga 1080p yang lolos beberapa pemeriksaan tambahan hanya perlu dikemas ulang, yang memakan waktu beberapa detik. Konversi penuh di server kecil dengan dua core memakan waktu kira-kira sepanjang durasi video itu sendiri, kadang lebih lama. Pengunggah melihat progresnya secara langsung dan bisa terus memakai situs.
Rahasia yang tidak boleh hilang
Semua pengaturan ada dalam satu file environment: kata sandi database, rahasia sesi, kredensial penyimpanan, SMTP, dan kunci induk yang menjadi asal kunci enkripsi setiap video. Cara tapeshelf mengenkripsi video menjelaskannya. Di produksi, API menolak berjalan dengan nilai contoh dari file contoh.
Simpan kunci induk di pengelola kata sandi begitu Anda membuatnya. Jika hilang, tidak ada video yang sudah diunggah yang bisa diputar lagi, dan memulihkan database tidak akan membantu. Kode aplikasi autentikator untuk masuk dua langkah juga tidak berfungsi lagi, karena rahasianya dikunci dengan kunci itu.
Bedanya dengan tapeshelf.com
Instans yang di-host sendiri tidak punya paket dan pembayaran. Tidak ada Free atau Pro, tidak ada tab Paket, tidak ada ajakan upgrade, dan tidak ada halaman tunggu sebelum unduhan. Rinciannya:
- Tanpa batas kecuali Anda menetapkannya. Secara bawaan tidak ada batas ukuran video atau ukuran rak. Sebagai admin, Anda bisa menetapkan satu batas per video dan satu per rak, sama untuk semua orang.
- Unduhan langsung dimulai, dengan kecepatan penuh, langsung dari penyimpanan.
- Yang termasuk Pro di tapeshelf.com tersedia untuk semua orang. Itu mencakup editor video, halaman tersembunyi, dan kata sandi pada tautan sementara. Video yang dihapus bisa dipulihkan selama 90 hari.
- Perlindungan dari penyalahgunaan tetap ada. Batas permintaan harian (30 video secara bawaan, bisa diubah) dan batas laju API melindungi server, jadi keduanya tetap berlaku.
- Nama Anda, aturan Anda. Instans punya nama dan email kontaknya sendiri, dan menampilkan ketentuan serta kebijakan privasi Anda dari file yang Anda sediakan. Pengunjung pertama-tama melihat halaman masuk yang sederhana.
Selebihnya adalah aplikasi yang sama: rak dengan tumpukan dan kategori, unggahan yang bisa dilanjutkan, pratinjau 16 frame, streaming terenkripsi, permintaan dan pertukaran beberapa putaran, pertukaran dengan tamu, tautan sementara, teman dan obrolan, masuk dua langkah (wajib untuk admin), notifikasi, aplikasi dalam 20 bahasa, laporan, dan panel admin.
Ingat bahwa satu instans adalah pulau tersendiri. Orang di dalamnya hanya berbagi dan bertukar satu sama lain, tidak pernah dengan akun di tapeshelf.com atau di instans lain.
Pembaruan dan cadangan
Memperbarui berarti menarik versi baru dan menjalankan ulang stack. Migrasi diterapkan saat start, dan video yang sedang diproses dimulai dari awal. Meski begitu, tetap buat cadangan sebelum pembaruan besar.
Dump database harian masuk ke bucket Anda dengan sendirinya. Video sudah tersimpan di penyimpanan, dan kuncinya berasal dari kunci induk. Jadi tiga hal yang perlu dijaga adalah bucket, dump database, dan satu kunci itu.
Lisensinya, dalam satu paragraf
Anda boleh menjalankan tapeshelf, mempelajarinya, dan mengubahnya. Jika Anda memodifikasinya dan mengizinkan orang lain memakai versi modifikasi Anda lewat jaringan, AGPL mewajibkan Anda menawarkan kode sumber versi itu kepada mereka. Menjalankannya tanpa perubahan, untuk diri sendiri, keluarga, atau teman, tidak memerlukan apa-apa selain menyertakan lisensinya.
Kapan
Kami akan segera memublikasikan repositori, image container siap pakai, dan panduan instalasi yang mencakup penyimpanan, email, cadangan, dan pemecahan masalah. Halaman hosting sendiri dan blog ini akan mengumumkannya pada hari itu, dan feed RSS adalah cara termudah agar tidak ketinggalan. Sementara itu, tapeshelf.com adalah cara tercepat untuk mencoba aplikasinya, dan halaman harga berisi detailnya.