9 puan yazan GN⁺ 2024-09-19 | 1 yorum | WhatsApp'ta paylaş
  • Bulut ve abonelik tabanlı hizmetlerin yaygınlaştığı 2024'te, sistemleri bizzat kurup öğrenmeye dayanan yazılım odaklı self-hostinge hobi olarak yeniden şans vermek mantıklı olabilir
  • Self-hosting, tekelleşmiş hizmetlere karşı bir direnç biçimi olabilir; ancak zaman ve zihinsel maliyeti yüksek olduğundan en önemli motivasyon eğlence ve keşiftir
  • Yeni başlayanlar fiziksel bir sunucu olmadan da başlayabilir; Uberspace gibi paylaşımlı hosting ortamlarında SSH ile bağlanıp 10GB depolama ve 1.5GB RAM içeren bir ortam kullanabilirler
  • Uberspace'te Docker kullanılamasa da, Uberspace Labs ve Awesome-Selfhosted'dan yararlanarak Actual Budget ve Miniflux gibi hizmetler çalıştırılabilir
  • Kişisel bir domain bağlandığında, hizmet bazlı alt alan adları, özel e-posta adresleri ve herkese açık dosya barındırma yapılandırılarak self-hosting çıktıları daha kolay sergilenip sürdürülebilir hale getirilebilir

Bulut öncesi kişisel bilişim hissi

  • 2000'lerde yazılımlar ve oyunlar DVD ile dağıtılırdı; kişisel bilgisayar da kullanıcının doğrudan kontrol ettiği bir hesaplama cihazı olma niteliğini daha güçlü taşıyordu
  • 2010'larda Chromebook'ların ve bulut hizmetlerinin yayılmasıyla birlikte pek çok yazılım başkalarının bilgisayarlarında çalışan bir yapıya kaydı
  • Reklamdan sonra abonelik, çevrimiçi gelir elde etmenin başlıca yollarından biri haline gelirken, kullanıcıların kolaylık karşılığında denetimi devretmesi daha da yaygınlaştı
  • Bunun sonucunda bilgisayar bilimi öğrenen kuşakların bir kısmı bilgisayar meraklısı olarak yola çıkma fırsatını daha az buldu; ilk dönem hacker yaklaşımı da zayıflıyor

Hobi olarak self-hosting'e yaklaşmak

  • Self-hosting, tekellerin baskın olduğu bir ortamda dijital benlik üzerindeki kontrolü geri almanın bir yolu olabilir
  • Sadece pratiklik açısından bakıldığında, hosting'i başka bir yere emanet etmek daha iyi bir seçim olabilir
    • Kararlılık, eşzamanlılık, yedeklilik ve erişilebilirlik yönetimini hizmet sağlayıcıya bırakabilirsiniz
    • Maliyeti azaltırken zaman ve zihinsel yük artabilir
  • Entelektüel olarak bu, sürekli ayarlanan bir dijital garaja daha çok benzer
    • Günün işi bittikten sonra sevdiğiniz oyuncak sistemlerle uğraşmaya benzeyen bir hobiye dönüşebilir
  • “Gerçek self-hosting” ölçütlerini katı biçimde tartışmaktansa, yazılım düzeyinde bile olsa keyif alarak başlamak daha önemlidir

Paylaşımlı hosting ile ilk ortamı kurmak

  • Self-hosting'e başlamak için önce barındıracak bir alana ihtiyaç vardır
  • Önerilen hosting hizmeti olarak Uberspace öne çıkıyor
    • Yaklaşımı, “anahtarları verelim; binayı ateşe vermeden eğlenmeye bakın” anlayışına yakın bir hosting modeli
    • Ay sonrasında ödeme alındığı için ilk ay fiilen ücretsiz deneme gibi kullanılabilir
  • Hesap oluşturduğunuzda internete bağlı bir bilgisayara SSH ile erişebilirsiniz
    • Sunulan ortam 10GB depolama alanı ve 1.5GB RAM içerir
    • ls çalıştırıldığında boş, yeni bir kullanıcı dizini görülebilir

Kurulacak yazılımı seçme yöntemi

  • Uberspace üzerinde kullanılacak yazılımı ararken iki kaynak özellikle faydalı
    • Uberspace Labs: Uberspace'te farklı yazılımların nasıl kurulacağını anlatan özel rehberler
    • Awesome-Selfhosted: self-host edilebilen yazılımları geniş kapsamlı biçimde toplayan bir liste; belli ölçüde topluluğu olan projeleri bulmak için uygun
  • Uberspace'te Docker kullanılamaz
    • Bellek kısıtları nedeniyle tam sanallaştırma paketlerini çalıştırmak zordur
    • Büyük yazılımlar ya da yalnızca Docker'a özel kurulumlar için elverişsiz olsa da, kaynaktan kurulum yapmak veya Dockerlaştırma sürecinin son çalışma zamanını bir build imajı gibi taşıyan dolaylı yöntemler vardır

Örnek 1: Finans verilerini Actual Budget ile kendin yönetmek

  • Actual Budget, hızlı ve gizlilik odaklı bir finans yönetimi uygulamasıdır
  • Harcamaları, net varlığı ve tüketim kalıplarını izlemek isteyen kullanıcılar için uygundur
  • Hassas finansal bilgileri başka bir hizmete emanet etmeden, tarayıcı üzerinden her yerden erişilebilecek şekilde çalıştırılabilir
  • Bütçeleme yaklaşımının merkezinde Envelope Budgeting metodolojisi yer alır
  • Uberspace kurulum rehberi guide_actual adresinde görülebilir
  • Raporlar bölümünde finans verileri kırpılıp incelenebilir
    • Küçük sanılan satın almalar bile bir ay boyunca toplandığında büyüyebilir
    • İşe gidiş-geliş maliyetlerinin beklenenden yüksek çıkması gibi içgörüler elde edilebilir

Örnek 2: Miniflux ve RSS ile akışı geri kazanmak

  • Miniflux, minimalist ve net görüşlere sahip bir feed okuyucusudur
  • RSS sayesinde sevdiğiniz haber kaynaklarını, dergileri ve blog yazısı güncellemelerini tek bir yerde takip edebilirsiniz
  • YouTube abonelik kanalları da reklamsız özel bir feed zaman akışı gibi düzenlenebilir
    • YouTube RSS feed'leri sunar
    • Gömülü YouTube oynatıcısında reklam yoktur
  • Miniflux'u Uberspace'e kurduktan sonra sevdiğiniz YouTube kanal feed'lerini ekleyebilirsiniz
  • Ayarlarda Fever API etkinleştirildiğinde, Fever API okuyabilen RSS istemcileri buluttaki RSS toplayıcısına erişebilir
    • Apple ekosisteminde Golden Hill Software'in Unread uygulaması öneriliyor
  • Haberler ve webcomic'ler için ayrı feed kategorileri de oluşturulabilir

Kişisel domain ile sergilenecek bir alan oluşturmak

  • Self-hosting'in eğlenceli yanlarından biri, yaptığınız şeyi gösterebilmektir
  • Kişisel bir domain size ait çevrimiçi bir alan işlevi görür
  • Domain kayıt hizmeti olarak Porkbun öneriliyor
  • awesauce.com gibi bir domaininiz olduğunda çeşitli yapılandırmalar mümkün olur
    • Uberspace'te barındırılan hizmetleri actual.awesauce.com, miniflux.awesauce.com gibi alt alan adlarına bağlayabilirsiniz
    • E-posta sağlayıcınız özel domain desteği sunuyorsa contact@awesauce.com gibi bir adres oluşturabilirsiniz
      • Gerçek e-posta hizmet sağlayıcısını daha sonra değiştirseniz bile adres korunabilir
      • Özel domain e-postası ücretli olabilir
    • Bir alt alan adını veya URL yolunu GitHub deposuna bağlayarak özgeçmiş gibi herkese açık dosyaları awesauce.com/files/resume.pdf üzerinden sunabilirsiniz

Bilerek açık bırakılan sonraki keşif

  • Bu yazının amacı ayrıntılı adım adım bir eğitimden çok, kendi ellerinizle kurcalama isteği uyandırmaktır
  • Okurun kendisinin keşfetmesi için, belirli bir ürün yeniden stoğa girdiğinde veya bir web sitesi değiştiğinde mobil bildirim göndermenin yolu açık bırakılıyor
  • İlgili Hacker News tartışması ilgili başlıkta sürüyor

1 yorum

 
GN⁺ 2024-09-19
Hacker News yorumları
  • Eski bir bakış açısından bakınca, paylaşımlı hosting ücreti ödemenin artık “self-hosting” diye adlandırılması şaşırtıcı. Bunun kendi başına kötü olduğu anlamına gelmiyor ama 10 yıl önce buna kesinlikle self-hosting denmezdi gibi geliyor.
    Bu, “sıfırdan yemek yapmak” ifadesinin anlamının değişmesine benziyor. 19. yüzyıldan bir yemek kitabında malzemeler arasında “1 domuz” yazıp kesmeniz istenebilirdi; bugünse doğal olarak strafor tepside satılan domuz eti parçalarını alıyoruz.

    • Terimin kendisinde de sorun var. Self-hosting topluluğu, /r/selfhosted etrafında oldukça teknik bir havaya sahip ve bilgisayarlarla kurcalamaktan hoşlanan insanlara daha yakın. Kit araba toplayanlar gibi bir his veriyor.
      Ama self-hosting’in avantajlarından yararlanabilecek, buna rağmen tüm ayrıntıları anlaması gerekmeyen insanlar da büyük bir pazar oluşturuyor. Örneğin kendi alan adınızla yönetilen servisler kullanırsanız veri sahipliği, açık kaynak yazılım, sağlayıcılar arası rekabet gibi avantajların epeyini elde edebilirsiniz. Bu yüzden daha geniş bir terime ihtiyaç var gibi görünüyor; son zamanlarda indie hosting ifadesini kullanıyorum.
    • Bir hosting sağlayıcısı kullanıyorsanız, yazılımı kendiniz dağıtsanız bile bunun self-hosting olmadığını söyleyecek çok kişi kesinlikle vardır.
      Genel kabul gören istisna ağ koruması tarafı. Mümkünse ev IP adresini dışarıya açmak istemediğiniz için pek çok kişi Tailscale, Cloudflare Tunnel veya bir VPS’i proxy olarak kullanıyor.
    • Ben de yaşlı tayfaya dönüşüyorum galiba. Yalnızca kendi donanımımda çalışan şeyleri gerçek self-hosting olarak görme eğilimindeyim.
      Bu da yetmezse, bizzat yetiştirip işlediğim domuzdan gelen domuz eti ve evde salamura yaptığım bacon da dondurucuda duruyor. “Yeni dünyada yaşayan eski bir ruh” sözü bayağı uyuyor.
    • Evden hosting yapmak, en başından beri ev tipi internet sağlayıcısının kullanım şartları kısıtlamalarına takılabiliyordu. İlk dönemlerde self-hosting yaptığımda bile kendi sistemimi başkasının rafına taktırıp onların ağını kullanmak için para ödüyordum.
      O donanımı kiralamış olun, sunucuyu kendiniz toplamış olun ya da sağlayıcının verdiği sanal makineyi kullanmış olun, bakım iş yükü benzer. Yine de Wix/Squarespace, Geocities ya da sosyal medya platformları kullanmaktan hâlâ farklı.
    • Orijinal yazının yazarı da bir ölçüde aynı fikirde.
      “Bu yüzden burada ‘gerçek self-hosting’ olmasa da, yine de self-hosting’e yumuşak bir giriş yazıyorum. Dava etmek istiyorsanız edin.” demişti sonuçta :)
  • Self-hosting’i gerçekten seviyorum ve son birkaç ayda epey derine daldım. Şu anda şirket hizmetleri ve homelab için birkaç şey işletiyorum; Hetzner VPS üzerine Ansible + Docker Compose dosyalarıyla veya https://github.com/coollabsio/coolify/ ile dağıtıyorum.
    awesome-selfhosted deposu da self-host edilecek projeler bulmak için iyi, ama kullanım kolaylığı özellikleri eksik olduğu için biraz kullanıcı deneyimi iyileştirmesi eklediğim bir dizini https://selfhostedworld.com adresinde oluşturdum. Arama, yıldız sayısı/popülerlik/tarih filtreleri ve karanlık mod var.

    • Bu konuya hâkim görünüyorsun, o yüzden sormak istiyorum. Ağ tarafına çok aşina olmayan ama belli düzeyde teknik bilgisi olan biri için, kendi ağındaki bir bilgisayarı internete açmak ne kadar riskli?
      Modern araçlar ve sanal makineler kullanınca bunun nispeten güvenli olup olmadığını, yoksa her hafta yazılım güncellemelerini kontrol etmek gibi sürekli ilgilenmek gerekip gerekmediğini merak ediyorum. Uzun zamandır bir sunucu kurmayı denemek istiyordum; artık yedek bir dizüstüm var, en azından NAS çalıştırmayı düşünüyorum.
    • Benim SaaS’imi de “Heroku alternatifi” bölümüne ekleyebilir misin?
      https://ptah.sh
    • Gayet iyi. sish ve inlets’i görüyorum; benzer araçlardan çok daha fazlasını toplayan bir liste burada var: https://github.com/anderspitman/awesome-tunneling
      Kimlik doğrulama tarafı için de OIDC sunucusu karşılaştırması hazırlamıştım: https://github.com/lastlogin-net/obligator#comparison-is-the...
    • Coolify gibi başka sunucular için yönetim düzlemi sağlayan yazılım türüne verilen bir ad var mı? Dokku gibi doğrudan ilgili sunucunun üzerinde çalışan yaklaşıma karşıt olan türden bahsediyorum.
  • “Paradan tasarruf ettiğin kadar zamanını ve akıl sağlığını kaybediyorsun; pratikte aptalca” diye bir söz var; self-hosting topluluğunda Kubernetes’e çoğu zaman pek sıcak bakılmıyor. Ama self-hosting’in tamamında zaten böyle bir taraf olduğundan, işi sonuna kadar götürmek de fena değil
    3 adet Dell R720XD üzerinde NixOS kurulu ve k3s multi-master olarak çalıştırıyorum. Depolama için rook/ceph kullanıyorum; boyutları birbirinden farklı yaklaşık 12 sabit disk var. En sevdiğim parti numaram, video streaming sırasında cluster’dan rastgele bir sabit diski çekip çıkarmak; hiç umursamıyor. Geri taktığımda hiçbir şey olmamış gibi toparlanıyor ve hâlâ çok yer kaldığı için host etmeye değecek faydalı şeyler arıyorum

    • Self-hosting için k8s veya k3s kullanan çok kişi var. Ancak çoğu kişi için getirdiği ek karmaşıklığa değecek kadar kazanım sağlamıyor. Genelde tek node kullanıldığı için Docker’ın gerekli her şeyi yapabildiğini de hesaba katmak gerek
      Ben şahsen 4 küçük masaüstünden oluşan bir kurulumda bile Docker Swarm kullanıyorum. Sende olan donanımla elektrik faturasının ayda 200 doları kolayca bulacağını düşünüyorum. Docker Swarm eski ve popüler değil ama saf Docker’dan yalnızca çok az daha karmaşık; çoklu node dağıtımı ve orkestrasyon için gereken her şeyi sağlıyor
    • Ben NixOS’u sanal makine olarak kullanıyor, servisleri doğrudan container olarak çalıştırıyorum. Docker Compose projelerini NixOS üzerinde kolayca çalıştıran bir araç da yaptım [1]
      Böylece NixOS yapılandırmasının avantajlarını alırken, nixpkgs’te bulunmayabilecek herhangi bir uygulamayı da çalıştırabiliyorum. Depolamada hypervisor olan Proxmox üzerinde ZFS kullanıyorum ve yerelde NFS olarak sunuyorum
      [1] https://github.com/aksiksi/compose2nix
    • Homelab’de k8s fazla kaçıyor. Yine de yapmamızın nedeni, self-hosting’in pratiklik 1 ise öğrenme 2 oranında olması
  • Orijinal metin şu noktayı iyi yakalamış: “2024’teyiz; artık sistemlerimizi bizzat yapılandırmanın temel zevkine yeniden dönme zamanı.”
    Self-hosting gerçekten keyifli. Çünkü öğrenme, meydan okuma ve pratiklik karışımı. Actual Budget ve Changedetection.io’ya +1. Ama tehdit modellemesi ve güvenliği ele almaması -1. Orijinal yazar HTTPS kullanıyor ama web sitesini açık internete açmış. Yeni başlayan biri ya yalnızca LAN içinde host etmeli ya da çok sıkı kilitlemeli. Ancak paylaşımlı hosting’de IP kısıtlama veya tünelleme gibi şeyler yoksa bu zor olabilir; uberspace’in bunları sağlayıp sağlamadığını bilmiyorum. İlk aşamayı geçmiş olanlara, birden çok uygulamayı yan yana daha fazla çalıştırmak için Docker gibi bir şey öneririm. Paketlenmiş bağımlılıklar harika. Docker yaklaşımını da ele alan kitabımın küçük bir reklamını yapacak olursam: https://selfhostbook.com

  • Diğer eskiler tarafına katılıyorum
    Sahip olduğun veya kiraladığın bir alanda kendi donanımın çalışmıyorsa bu self-hosting değildir. Şimdi küçük bir Micro-ITX kutu kullanıyorum ama eskiden 6U sunucu, UPS ve ağ ekipmanı içeren düzgün bir server rack’im de vardı. Evlilikten önceydi

  • Self-hosting’i çok seviyorum. Küçük hobi projeleri yaparken çok şey öğrendim
    Kurulumumu merak edenler için yazayım: eBay’den ikinci el bir Dell R630’u ucuza aldım. SSD 1TB RAID 1, 32GB RAM ve 32 çekirdekli bir yapı; Docker, virsh ve minikube ile küçük hobi uygulamaları çalıştırıp keyif alıyorum. Üçünü de öğrendim. 1Gbps fiber hattım var; IP’nin değişip değişmediğini her dakika bir cron göreviyle tespit edip Linode API üzerinden DNS A kaydını değiştiriyorum

  • 1,5GB RAM, 10GB disk mi? Hetzner temel cloud VPS 4GB RAM ve 40GB diski 4,51 euroya veriyor

    • Bildiğim kadarıyla Oracle Cloud’u geçmek zor görünüyor: https://www.oracle.com/cloud/costestimator.html
      Compute için “Her tenancy’de Ampere A1 Compute instance’ları oluşturabilmek üzere her ay ilk 3.000 OCPU saati ve 18.000GB saati ücretsiz verilir. Bu ücretsiz katman kullanımı bare metal, sanal makine ve container instance’ları genelinde paylaşılır.” deniyor. Block storage için de “Block Volume hizmetinin ücretsiz katman kotası, tüm tenancy için toplam 200GB’tır. Aynı tenancy’de birden fazla tahmin varsa yalnızca toplam 200GB uygulanır.” gibi. Yani 4 çekirdekli ARM CPU + 24GB RAM + 200GB alanı ücretsiz almış oluyorsun
    • Olası fiyat farkına da bakıyor musun?
  • Spoiler vereyim: Bu yazı self-hosting değil, paylaşımlı hosting hakkında

  • Ama biri kulağına K8S diye fısıldarsa…

    • Hazır aklıma gelmişken, bir sonraki yükseltme penceresine hazırlanmak için homelab K3S cluster’ıma güncellenmiş CRD’leri beslemeye gitmem gerek
  • Bu rehberden mezun olunca /r/homelab ve /r/homedatacenter’a da mutlaka bakmanı öneririm ;)