İçeriğe geç
← Tüm yazılar

Kendi tapeshelf’inizi çalıştırmak

tapeshelf, AGPL-3.0 lisansıyla açık kaynaktır. tapeshelf.com’un arkasındaki uygulama, kendi sunucunuzda çalıştırabileceğiniz uygulamanın ta kendisi. Herkese açık depo ve kurulum kılavuzu henüz yayımlanmadı. O güne kadar kendi kurulumunuzu çalıştırmanın nasıl olacağını burada anlatıyoruz. Böylece size uygun olup olmadığına karar verebilir ve bir sunucu planlayabilirsiniz.

Tek yığın

Bir kurulum, tek bir Docker Compose yığınıdır (stack):

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 web uygulamasını sunar, API ve WebSocket trafiğini içeri iletir. Let’s Encrypt sertifikasını kendisi alır ve yeniler. Zaten bir ters vekil sunucu (reverse proxy) kullanıyorsanız Caddy onun arkasında TLS olmadan çalışabilir.
  • api, uygulamanın yaptığı her şeydir: hesaplar, raflar, erişim kontrolleri, istekler ve takaslar, geçici bağlantılar ve video anahtarlarının verilmesi.
  • worker, aynı kodun ffmpeg içeren bir imajda ikinci bir süreç olarak başlatılmış halidir. Yüklemeleri temizler ve dönüştürür, yayın kopyalarını şifreler, kareleri ve önizlemeleri üretir, düzenlemeleri işler, e-postaları ve bildirimleri gönderir.
  • Postgres verileri tutar. Redis iş kuyruklarını ve kısa ömürlü önbellekleri tutar.
  • Tek seferlik bir migrate konteyneri her başlangıçta çalışır. Veritabanı geçişlerini (migration) uygular, ayarlarınızdan yönetici hesabını oluşturur ve bucket’ları hazırlar: görseller için listeleme olmadan herkese açık okuma, yarım kalmış yüklemeler için bir temizlik kuralı ve alan adınız için CORS.
  • Bir backup servisi günde bir kez veritabanının dökümünü bucket’ınıza alır ve son 14 dökümü saklar.

Video hiçbir zaman API’den geçmez. Tarayıcılar doğrudan depolamaya yükler ve segmentleri doğrudan oradan alır. Bu yüzden depolamanın, tarayıcıların ulaşabileceği kendi adresi olmalıdır. Biraz düşünmenizi gerektiren tek kısım bu. tapeshelf’i zaten kullandığınız S3 uyumlu bir servise bağlayabilir ya da depolamayı aynı yığında çalıştırabilirsiniz.

Neye ihtiyacınız olacak

  • Docker ve Compose eklentisi kurulu bir Linux sunucu. İki işlemci çekirdeği ve 4 GB RAM makul bir alt sınır.
  • İşçinin geçici dosyaları için disk alanı: aynı anda işlenen her video için en büyük videonun yaklaşık iki buçuk katı.
  • Sunucuyu gösteren bir alan adı ve açık 80 ile 443 portları.
  • E-posta için bir SMTP hesabı: onaylar, şifre sıfırlama ve bildirimler.
  • İsterseniz “Google ile giriş” için kendi Google OAuth istemciniz, tekrarlanan kayıtlarda ve yeni misafirlerde gösterilen captcha için de Cloudflare Turnstile anahtarları.

Videoyu dönüştürmek işin ağır kısmı. 1080p’ye kadar olan H.264 video birkaç kontrolden daha geçerse yalnızca yeniden paketlenir, bu da saniyeler sürer. Küçük, iki çekirdekli bir sunucuda tam dönüştürme aşağı yukarı videonun kendi süresi kadar, bazen daha uzun sürer. Yükleyen kişi ilerlemeyi canlı görür ve bu arada siteyi kullanmaya devam edebilir.

Kaybetmemeniz gereken sır

Bütün ayarlar tek bir ortam dosyasında durur: veritabanı şifresi, oturum sırları, depolama erişim bilgileri, SMTP ve her videonun şifreleme anahtarının türetildiği ana anahtar. Bunu tapeshelf videoları nasıl şifreliyor yazısı anlatıyor. Üretim ortamında API, örnek dosyadaki değerlerle başlamayı reddeder.

Ana anahtarı ürettiğiniz anda bir şifre yöneticisine kaydedin. Kaybolursa yüklenen videoların hiçbiri bir daha oynamaz ve veritabanını geri yüklemek de işe yaramaz. İki adımlı giriş için doğrulama uygulamalarının kodları da çalışmaz olur, çünkü onların sırları da bu anahtarla mühürlenir.

tapeshelf.com’dan farkı

Kendi sunucunuzdaki bir kurulumda plan ve ödeme yoktur. Free ya da Pro, Plan sekmesi, Pro’ya geçme önerileri ve indirmeden önce bekleme sayfası yok. Ayrıntılı olarak:

  • Siz koymadıkça sınır yok. Varsayılan olarak video boyutunun ya da raf boyutunun bir üst sınırı yoktur. Yönetici olarak video başına bir ve raf başına bir sınır koyabilirsiniz, herkes için aynı.
  • İndirmeler hemen, tam hızda ve doğrudan depolamadan başlar.
  • tapeshelf.com’da Pro olan her şey burada herkeste var. Yani video düzenleyici, gizli sayfa ve geçici bağlantılarda şifre. Silinen videolar 90 gün boyunca geri getirilebilir.
  • Kötüye kullanıma karşı önlemler kalır. Günlük istek sınırı (varsayılan olarak 30 video, değiştirilebilir) ve API hız sınırları sunucuyu korur, bu yüzden yerlerinde kalırlar.
  • Sizin adınız, sizin kurallarınız. Kurulumun kendi adı ve iletişim e-postası olur. Kullanım koşullarınızı ve gizlilik politikanızı sizin verdiğiniz dosyalardan gösterir. Ziyaretçiler önce sade bir giriş sayfası görür.

Gerisi aynı uygulama: yığınları ve kategorileriyle raflar, kaldığı yerden devam eden yüklemeler, 16 karelik önizleme, şifreli yayın, istekler ve çok turlu takaslar, misafirlerle takas, geçici bağlantılar, arkadaşlar ve sohbet, iki adımlı giriş (yönetici için zorunlu), bildirimler, 20 dilde uygulama, şikayetler ve yönetim paneli.

Her kurulumun kendi başına bir ada olduğunu unutmayın. Oradaki kişiler yalnızca birbirleriyle paylaşır ve takas eder, tapeshelf.com’daki ya da başka kurulumlardaki hesaplarla asla.

Güncellemeler ve yedekler

Güncellemek, yeni sürümü çekip yığını yeniden başlatmak demektir. Geçişler başlangıçta uygulanır, o sırada işlenmekte olan bir video da baştan işlenir. Yine de büyük bir güncellemeden önce yedek alın.

Günlük veritabanı dökümleri kendiliğinden bucket’ınıza düşer. Videolar zaten depolamada durur, anahtarları da ana anahtardan türetilir. Yani güvende tutmanız gereken üç şey var: bucket, veritabanı dökümleri ve o tek anahtar.

Tek paragrafta lisans

tapeshelf’i çalıştırabilir, inceleyebilir ve değiştirebilirsiniz. Değiştirir ve başkalarının değiştirilmiş sürümünüzü bir ağ üzerinden kullanmasına izin verirseniz, AGPL onlara o sürümün kaynak kodunu sunmanızı şart koşar. Değiştirmeden kendiniz, aileniz ya da arkadaşlarınız için çalıştırmak, lisansı yanında tutmaktan başka bir şey gerektirmez.

Ne zaman

Yakında depoyu, hazır konteyner imajlarını ve depolama, e-posta, yedekler ve sorun gidermeyi kapsayan bir kurulum kılavuzunu yayımlayacağız. Kendi sunucunuzda sayfası ve bu blog bunu o gün duyuracak. Kaçırmamanın en kolay yolu RSS beslemesi. Bu arada uygulamayı denemenin en hızlı yolu tapeshelf.com, ayrıntılar da fiyatlandırma sayfasında.