Homelab 2026 durumu: self-hosting hobisinin evrimi
(mrlokans.work)- Küçük ölçekli donanım ile ücretsiz bulut tünellemesini birleştirerek medya·yapay zeka·fotoğraf·izleme gibi çeşitli servisleri kendi başına çalıştıran bir homelab kurulum örneğinin özeti
- OrangePI 5 ile başlayıp GMKTec NUC'a (32GB RAM, 1TB NVMe) yükseltilen ve Hetzner sanal makinesiyle birlikte işletilen hibrit yapı
- Tüm servisler Docker container'ları olarak çalışıyor; Ansible role tabanlı IaC ve SOPS şifrelemesiyle yeniden üretilebilirlik ve güvenlik sağlanıyor
- Cloudflare Tunnel üzerinden inbound port açmadan dış erişim sağlanıyor, Traefik + Authentik ile reverse proxy ve SSO kimlik doğrulaması yönetiliyor
- Aylık yaklaşık 7 euro işletim maliyetiyle vendor lock-in olmadan veri sahipliği korunuyor; mükemmellikten çok öğrenme ve keyif öne konuyor
Donanım yapılandırması
- Başlangıçta OrangePI 5 kullanılmış, ancak güç yönetimi ve USB bağlı depolama sorunları nedeniyle GMKTec NUC'a geçilmiş
- AMD Ryzen 7 5700U CPU, 32GB RAM, 1TB NVMe M2 depolama ile geliyor
- 2 adet M2 yuvası sayesinde hem RAM hem disk genişletilebiliyor
- Yıllık işletim bazında çok daha kararlı çalışıyor
- 24/7 çalışması gereken servisler ayrı olarak Hetzner sanal makinesinde işletiliyor
- NAS henüz kurulmadı; önemli veriler Syncthing ile senkronize ediliyor
- Ugreen NAS, Ubiquiti gibi seçenekler ilgi çekiyor olsa da şu anda asıl keyif alınan şey doğrudan kurcalama süreci
İşletim ilkeleri
- Infrastructure-as-Code: Mümkün olan tüm ayarlar script'ler veya yönetim platformlarıyla (Ansible vb.) otomatikleştiriliyor ve kod olarak saklanıyor
- Yeniden üretilebilirlik (Reproducibility): Arıza olduğunda veya makine değiştirildiğinde altyapı hızlıca yeniden dağıtılıp yeniden yapılandırılabilmeli; deneysel servisler kaldırıldığında da geride kalıntı bırakmamalı
- Kullanım kolaylığı: Bu bir hobi projesi olduğundan, standart ve alışıldık yaklaşımlar tercih ediliyor
İşletim sistemi
- Debian dağıtımı bare metal üzerine doğrudan kurulup kullanılıyor
- NixOS (yeniden üretilebilir build'ler) veya Talos (k8s cluster) gibi seçenekler değerlendirilmiş, ancak tek makinede k8s workload yönetiminin yükü ve zaman yetersizliği nedeniyle ertelenmiş
- ProxMox gibi hypervisor'ların da gereksiz olduğuna karar verilmiş ve kullanılmıyor
Ağ mimarisi
- Dışa açılma yöntemi olarak Cloudflare Tunnel seçilmiş
- Sunucudan Cloudflare ağına yalnızca outbound bağlantı oluşturduğu için firewall üzerinde inbound port açmak gerekmiyor
- Tünel kurulduktan sonra çift yönlü trafik tünel üzerinden akıyor
- Domain Cloudflare DNS'e bağlandığında, subdomain bazında makinedeki belirli port ve protokollere (HTTP/HTTPS/TCP vb.) eşleme yapılabiliyor
- Tamamen ücretsiz sunuluyor ve ngrok'tan daha iyi bir alternatif olarak değerlendiriliyor
- Sabit IP (White IP) yaklaşımının maliyet ve güvenlik riski taşıdığı, Tailscale Funnel gibi alternatifler de bulunduğu halde en pratik çözüm olarak Cloudflare Tunnel seçilmiş
-
Traefik
- Docker'ı native olarak tanıyan açık kaynak reverse proxy; bu da sunucu otomasyonu için avantaj sağlıyor
- Container'lara uygun label'lar eklendiğinde routing'i otomatik algılıyor, ayrıca ayar dosyası düzenlemek gerekmiyor
-
Authentik
- IdP (Identity Provider) ve SSO platformu
- Ayarlar blueprint (YAML dosyaları) biçiminde saklanabildiği için IaC ilkelerine uyulabiliyor
- ForwardAuth middleware üzerinden hassas servislere erişimde giriş sayfasına yönlendirme yapılıyor
İşletim araçları
-
Ansible
- Agentless (yalnızca SSH gerekli) altyapı otomasyon aracı; YAML tabanlı yapılandırma ve zengin örnekler en büyük artıları
- Her servis role düzeyinde tanımlanıyor: tasks, defaults, handlers, templates, files bileşenlerinden oluşuyor
- tasks: çalıştırılacak işleri tanımlar
- defaults: image tag'leri, portlar, container adları gibi varsayılanlar
- handlers: yapılandırma değiştiğinde container yeniden başlatma
- templates: Jinja2 tabanlı .env dosyaları ve config.yaml render etme
- files: statik ayarlar, script'ler
- Servis dağıtımının genel adımları:
- Ortak kaynakların (network, volume) oluşturulması → PostgreSQL üzerinde schema ve kullanıcı oluşturulması → yapılandırma template'lerinin render edilmesi → Docker image'larının çekilmesi → container'ların çalıştırılması (environment variable ve logging ayarları dahil) → Authentik blueprint'lerine kimlik doğrulama ayarlarının provision edilmesi → gerekirse Cloudflare Tunnel ayarlarının yapılması
- Dezavantajları arasında çok geniş dokümantasyon, tekrarlayan DSL yapısı ve boilerplate bulunuyor; yine de alışılmış olduğu için kullanılmaya devam ediliyor
- GitOps entegrasyonu olmadan playbook'lar manuel çalıştırılıyor; şimdilik yeterli görülüyor
-
SOPS (Secrets OPerationS)
- YAML/JSON içindeki yalnızca değerleri şifreliyor, anahtar yapısını koruduğu için Git diff işlevsel kalıyor
- age şifreleme backend'i kullanılıyor — "PGP olmadan şifrelemeyi basitleştiren" araç
- Host bazında genel ayar dosyası (
homelab.yaml) ile şifreli dosya (homelab.sops.yaml) ayrı tutuluyor - Workflow:
age-keygenile anahtar üretme →sopskomutuyla şifreli dosyayı düzenleme (editörde çözüldükten sonra kaydederken otomatik yeniden şifrelenir) → Ansible çalışırken otomatik çözülme- Ansible SOPS'u native olarak desteklediğinden ek modül veya flag gerekmiyor
- Ansible Vault'a göre avantajı: tüm dosya yerine değer düzeyinde şifreleme sayesinde diff alınabilmesi
- Sınırı: age private key'in ekip üyeleriyle güvenli paylaşılması gerekiyor; anahtar kaybolursa secret'lar geri getirilemiyor
- Tek kişinin işlettiği bir homelab için uygun düzeyde karmaşıklık
Çalışan servisler
-
Medya yönetimi: *arr stack
- Prowlarr: indexer yöneticisi; arama sonuçlarını diğer *arr servislerine iletiyor
- Radarr: film koleksiyonu yöneticisi — istenen filmi belirtince arama, indirme ve düzenlemeyi otomatik yapıyor
- Lidarr: müzik için aynı işlevleri sağlıyor, Navidrome ile entegre çalışıyor
- Bazarr: otomatik altyazı indirme
- Tidarr: Tidal müziklerini yerelde saklamayı sağlayan servis
- Transmission: tüm *arr servislerinin indirme isteklerini işleyen BitTorrent istemcisi (port 9091)
- Tüm servisler Authentik kimlik doğrulamasının arkasında yer alıyor
- Paylaşılan indirme dizini (
/mnt/data/docker/transmission/downloads) ve PUID/PGID 1000 kullanılarak hardlink ile disk alanı tasarrufu sağlanıyor - Örnek akış: filme Radarr'da ekleme → Prowlarr ile arama → Transmission indirme yapar → Radarr medya kütüphanesine taşır → Jellyfin üzerinden izlenebilir
-
Medya tüketimi
- Jellyfin: açık kaynak medya sunucusu; Plex'in aksine cloud login gerektirmez. Kendi kimlik doğrulamasını kullanır ve Android TV uygulaması dahil çeşitli cihazları destekler
- Navidrome: Subsonic API destekli müzik streaming sunucusu; mobil uygulamalarla (DSub2000 vb.) entegre olur. Lidarr, müzikleri kütüphane klasörüne yerleştirir
- Calibre Web: e-kitap kütüphanesi yöneticisi ve okuyucusu
- Dizüstündeki Calibre masaüstü uygulamasının yönettiği metadata veritabanı Syncthing ile sunucuya senkronize ediliyor
- OPDS API üzerinden çeşitli okuyucularda kitaplara erişilebiliyor
-
Yapay zeka ve sohbet
- LibreChat: self-hosted yapay zeka sohbet arayüzü; birden çok LLM sağlayıcısına (OpenAI, Anthropic, yerel Ollama) bağlanabiliyor
- RAG (Retrieval Augmented Generation) desteği var
- MongoDB (sohbet geçmişi), PostgreSQL + pgvector (embedding), MeiliSearch (tam metin arama) gerektirdiği için görece ağır bir kurulum
- Claude Code daha erişilebilir bulunduğundan kullanım sıklığı düşük ve kaldırılması düşünülüyor
- LibreChat: self-hosted yapay zeka sohbet arayüzü; birden çok LLM sağlayıcısına (OpenAI, Anthropic, yerel Ollama) bağlanabiliyor
-
Fotoğraf ve dosyalar
- Immich: self-hosted Google Photos alternatifi
- Telefondan otomatik fotoğraf yedekleme, yüz tanıma, albüm düzenleme, EXIF metadata çıkarma
- Kendi PostgreSQL'ini (pgvector dahil) ve machine learning container'ını (görüntü sınıflandırma) kullanıyor; şu anda binlerce fotoğraf saklanıyor
- Syncthing: dizüstü, telefon ve sunucu arasında klasör senkronizasyonu. Bulut aracısı olmadan doğrudan P2P senkronizasyon
- Obsidian Vault, belgeler vb. içerikler birden çok cihaz ve Android ile senkronize ediliyor
- MinIO: S3 uyumlu object storage; S3 API gerektiren testler veya uygulamalar için kullanılıyor
- Immich: self-hosted Google Photos alternatifi
-
Okuma ve bilgi
- Miniflux: minimal RSS feed okuyucu; yaklaşık 50 blog ve haber kaynağına abone
- Klavye kısayollarını destekliyor ve algoritmik sıralama olmadan zaman sıralı feed sunuyor
- Miniflux: minimal RSS feed okuyucu; yaklaşık 50 blog ve haber kaynağına abone
-
Altyapı ve kimlik doğrulama
- Traefik: trafiği hostname tabanlı olarak Docker container'larına yönlendiren reverse proxy. Container başlarken uygun label'lar varsa otomatik algılıyor
- Authentik: SSO ve ID provider. ForwardAuth middleware ile servisleri koruyor; blueprint'ler Git'te tutularak tüm kimlik doğrulama yapılandırması yönetiliyor
- PostgreSQL: paylaşımlı veritabanı sunucusu; Authentik, Miniflux, Immich, LibreChat gibi servisler ayrı DB yerine tek bir instance'ı paylaşıyor, böylece kaynak tasarrufu ve daha kolay yedekleme sağlanıyor
- Redis: paylaşımlı cache ve session storage; çoğunlukla Authentik gibi servislerde session yönetimi ve iş kuyrukları için kullanılıyor
-
Özel yazılımlar
- Highlight Exporter: KOReader, Readwise, Apple Books'tan kitap highlight'larını çıkarıp Obsidian uyumlu Markdown'a dönüştüren Go servisi
- Telegram Assistant: çeşitli otomasyon işleri ve grup sohbetlerinde yapay zekaya erişim sağlayan Telegram botu. Yeni teknolojileri denemek için en sık yeniden yazılan proje
- Chess-blunder trainer: chess.com veya lichess.com oyunlarını içeri aktararak Stockfish ile analiz eden, ardından hatalı hamleleri seçip alıştırma yaptıran web uygulaması; yakında açık kaynak olarak yayınlanması planlanıyor
İzleme
-
Beszel
- Kolay kurulum ve işletim, iyi varsayılanlar sunan hafif bir izleme çözümü
- Grafana stack'inin iki makinede temel OS istatistiklerini görmek için fazla ağır ve karmaşık olduğuna karar verilmiş
- Glances gibi benzer projelerin de gereğinden fazla tuning istediği düşünülüyor
- Beszel, ihtiyaç duyulan özelliklerin %120'sini kapsarken kurulumu kolay tutuyor
-
Statsping
- Belirli kaynaklar için ayrıntılı izleme sağlayan minimal servis ping aracı
- Tanımlı endpoint'lere ping atarak gecikme ve erişilebilirliği raporlar, servis arızalarında farklı yollarla bildirim gönderir
- Homelab arızasında da ayakta kalması için bulut makinesinde barındırılıyor, ayrıca bakım yükü oluşturmuyor
Şu anda eksik kalanlar
-
Yedekleme
- Yedeklemenin önemi bilinse de şu anda hiç uygulanmamış durumda
- Film, müzik ve fotoğraf verisinden çok servislerin veritabanı yedeklerine ihtiyaç var; ancak uygun çözümün (restic vb.) ve donanım yapısının ne olacağı henüz belirlenmemiş
-
RAID yapılandırması
- Medya verileri ve sistem şu anda tek bir M2 NVMe sürücüde birlikte bulunuyor
- NAS sunucusu veya ayrı bir yedekleme makinesi için fiziksel alan yetersiz
-
Buluttan bağımsızlık
- Kaynak erişilebilirliği Cloudflare Tunnel altyapısına ciddi biçimde bağımlı
- Cloudflare kesintisinde altyapıya erişim de duruyor; gelecekte alternatiflere yatırım planlanıyor
-
Tam IaC ve otomasyon
- CI pipeline veya otomatik provisioning olmadan Ansible playbook'ları manuel çalıştırılıyor
- Şu aşamada GitOps'a geçmenin büyük bir fayda sağlayacağı düşünülmüyor
Maliyet verimliliği ve sonuç
- Hetzner sanal makinesi için aylık yaklaşık 7 euro harcanıyor; ev sunucusunun elektrik tüketiminin ise oldukça düşük olduğu tahmin ediliyor
- Yeni servis eklemek veya ayar değiştirmek yaklaşık 20~30 dakika sürüyor; işin önemli kısmı Claude Code'a devrediliyor ve dağıtımdan önce sadece kısa bir gözden geçirme yapılıyor
- Tüm projeye harcanan toplam sürenin yıllara yayılmış şekilde yaklaşık 100~150 saat olduğu tahmin ediliyor
- En az düzeyde vendor lock-in olmadan veri sahipliği korunuyor; ani hizmet şartı değişiklikleri, algoritmik feed'ler veya satın alma/birleşmeler nedeniyle veri kaybı riski bulunmuyor
- Amaç mükemmel bir sistem kurmak değil, altyapıyı anlamak ve keyif almak; dağıtılan her servis, yazılan her Ansible role, şifrelenen her secret başlı başına bir öğrenme değeri taşıyor
- Homelab'e başlamak için küçük başlamak ve aşırı düşünmemek önemli
19 yorum
Ben Tailscale kullanıyordum ama şimdi Cloudflare Tunnel kullanıyorum ve gerçekten çok memnunum. Kullanım amaçları biraz farklı gerçi ama benim durumumda Tailscale, AdGuard ile çakıştığı için kullanması zordu.
Tailscale'in parent DNS'ini AdGuard olarak ayarlamak yeterli olmaz mı?
AdGuard Desktop değil ama AdGuard Mobile yerel VPN olarak çalıştığı için birlikte kullanılamıyor.
Sanırım çakışma DNS'te değil, VPN kısmında olmuş.
Geçenlerde Google Nest'te MBC radyosunu çalıştırmak için şunu bunu denerken
Cloudflare Tunnel kullandım. "Neden ücretsiz?" diye sorduran kadar iyi bir hizmet.
İlginç görünüyor. Biraz anlatsanıza.
Ben Oracle Cloud free tier kullanıyorum. 4 vCPU, 24 GB RAM ve 200 GB depolama veriyor; ARM tabanlı olduğu için ara sıra uyumlu olmayan şeyler çıkması dışında, hobi amaçlı kurcalamak için çok iyi.
Yeni abone olduğum internet sağlayıcısı 80 ve 443 portlarını kapatmış, ben de Cloudflare Tunnel ile dolanıp kullanıyorum.
O olmasaydı cayma bedeli ödeyip sağlayıcıyı değiştirecektim neredeyse.
Hangi telekom operatörünü kullanıyorsunuz da portları kapatmışlar?
Tam olarak ben kendim engellemiş değilim; aslında ISS’nin verdiği modem/router 80 ve 443 port yönlendirmesine izin vermiyormuş.
Port yönlendirme yapmak için üçüncü taraf bir router kullanınca da 1g seçeneğiyle abone olduğum tarifemin hızını gizlice 100mbps’e düşürdüler.
Bir alternatif ararken en temiz çözümün cf tunnel’a bağlamak olduğunu gördüm.
Kendi yönlendiricinizde MAC address dönüştürme özelliği olup olmadığını kontrol edin; operatörün yönlendiricisindekine dönüştürürseniz, bunun da aşılabilmesi mümkün gibi görünüyor.
cf tunnel’ı kurduktan sonra 80 ve 443 portlarında biriken fail2ban logları tamamen ortadan kalktı, ben de bu portları tamamen kaldırıp artık hiç düşünmedim.
Domain’i doğrudan Cloudflare’dan satın aldım, SSO’yu da Cloudflare’da yapılandırdım; SSO’yu geçemezseniz hizmeti kullanamıyorsunuz, böylece tüm saldırıları Cloudflare’ın benim yerime karşılamasını sağladım.
İçeride sadece benim tek başıma kullandığım servisler olduğu için bu kurulum bile fazlasıyla yeterli oldu.
Cloudflare’da bir kesinti olursa da o kadarını göze almaya karar verdim.
Genelde telekom operatörlerinin verdiği modem/router’larda port forwarding’in kapalı olduğu söyleniyor.
Üçüncü taraf bir router takınca açılır tabii ama... dediğiniz gibi
cf tunnelzaten temel bir WAF ile geliyor, hatta ICN region’a bile yönlendiriyor; bu yüzden kullanmamak için pek bir sebep yok.Homelab'ime n8n kurup Anthropic, Telegram, depolama falan bağlayarak ufak tefek işleri çalıştırıyorum; connector'lar iyi hazırlanmış olduğu için kullanımı rahattı.
Ryzen 8000 serisi düşük güç tüketimli bir cihazı 7/24 ev sunucusu olarak kullanıyorum.
Genelde NAS olarak kullanıyorum; konteynerler ve servisler dahil toplam yaklaşık 70 şey çalıştırıyorum ama aylık güç tüketimi 10 kWh’yi bile bulmuyor. Maliyeti de yaklaşık 2.000 won ediyor.
Cloudflare Tunnel
Harika.
Yanıtı tamamlaması zaman alan arkadaşlar bazen 502 de verebiliyor ama
ücretsiz sonuçta~
Ben de cloud tunnel kullanıyorum ve gerçekten çok iyi.
Genelde araya router girdiğinde dış IP'yi çoğu zaman router alıyor.
Cloudflare Tunnel kullanırsanız, iç IP ile de
domain kaydı üzerinden dış bağlantı mümkün hale gelebiliyor~
Üstelik ücretsiz,
Hacker News yorumları
Bu gerçekten harika ama Cloudflare Tunnel medya akışı için kullanılmamalı
Kullanım şartlarına göre yasak ya da en azından amaçlanan kullanım bu değil. Hizmet engellenebilir
Bunun yerine Wireguard ya da Tailscale kullanmak daha iyi
İlgili yazı
CGNAT'ten çıkmak için de iyi, GUI tabanlı olarak da Nginx Proxy Manager öneririm
Ben şu anda rathole + traefik kombinasyonuna geçiyorum. Sabahın erken saatlerine kadar deneme yaparken uykusuz kaldım
Tailscale (Headscale değil) Funnel adında bir reverse proxy özelliği sunuyor ama kişisel alan adları kullanılamıyor
CF Tunnel'a en benzer alternatif Pangolin, ayrıca NetBird'ü reverse proxy özelliğiyle birlikte self-host ederek kullanmanın da bir yolu var
Bu bana daha çok bir ‘bağımsızlık’ fantezisinden ziyade sistem yöneticisi olma fantezisi gibi geliyor
Ama dürüst olmak gerekirse Google ya da Apple'a ayda 5 dolar ödemek çok daha iyi bir seçim gibi geliyor. En azından 3-2-1 yedekleme yapıyorlar mı, ondan bile emin değilim
Yerel kütüphanede bu tür hizmetleri işleten bir gönüllü grup olsa keşke
Çocukların servis işletmeyi öğrenmesi ve teknik bilgisi az olan kişilerin de açık kaynaktan yararlanabilmesi için harika bir fırsat olurdu
Kimse müşteri desteğini üstlenmek istemiyor. Bu yüzden çoğu hizmet, “destek için gidip onlara sorun” diyebilmek adına para ödenen bir yapıya sahip
Ben gizli bilgi yönetimi için fnox kullanıyorum
sops'tan çok daha fazla backend destekliyor ve bence DX (geliştirici deneyimi) de daha iyi‘Bağımsız ve hazırlıklı erkek fantezisi’ deniyor ama sonuçta arada Cloudflare olduğu için tam bağımsızlık sayılmaz
Cloudflare Tunnel gerçekten mükemmel bir araç
Eskiden doğrudan ev IP'm üzerinden host ediyordum ama şimdi
cloudflaredile yönetmek çok daha kolayGüvenlik duvarı ya da ağ saldırısı endişem de azaldı
Benim homelab'im artık Claude'un yazdığı idempotent bash script'leriyle yönetiliyor
Bence bağımlılıklar, insanların özellikleri değiştirme isteği yüzünden karmaşıklaşıyor ve bu etkileşimler de hatalara yol açıyor
Bu yüzden her şeyi basit bash script'leriyle ifade etmek daha sağlam geliyor
Şu anda systemd + podman container kullanıyorum ve kayıt tutmak için not sayfası bıraktım
Pratik kolaylığın bu dezavantajı telafi ettiğini mi düşünüyorsun, merak ediyorum
İnsanların neden bunları açık internete koyduğunu anlayamıyorum. Neden sadece Tailscale kullanılmıyor?
Yazar galiba homelab ile self-hosting kavramlarını karıştırmış
self-hosting gerçekten kullanılan hizmetleri işletmektir, homelab ise deney ve öğrenme ortamıdır
Ben kişisel verilerimi ya da hizmetlerimi homelab'de tutmam. Çünkü orası bozulabilecek bir alan
Ukrayna'da gerçekten yer altı sığınağında production trafiği işleyen bir SaaS şirketi görmüştüm
Yalnızca yayın aboneliklerine yılda 1.300 dolar ödediğimi fark edince şok oldum
Bunun üzerine bir NAS ve 36 TB disk alıp arr stack kurdum, sonra da tüm abonelikleri iptal ettim
Tüm ailem de aynısını yapınca yılda 5-6 bin dolar tasarruf ediyoruz
NAS birkaç ay içinde kendini amorti edecek, sonrası tamamen kâr
Claude code sayesinde kurulum da sadece birkaç saat sürdü
Üstelik artık Netflix ya da Hulu'nun gürültüsünden uzak içerik kürasyonu mümkün olduğu için çok daha keyifli
4K Blu-ray ripleyip evde stream edince ticari hizmetlerden çok daha iyi görüntü kalitesi alıyorum
Günümüz streaming hizmetlerinde fiyat/performansın dibe vurduğunu düşünüyorum. Pahalı paketlerde bile sınır çoğu zaman 1080p oluyor