Home lab ne demek?
Home lab, evde kurduğun küçük bir sunucu düzeni. Bir Raspberry Pi da olabilir, rafa dizilmiş birkaç makine de. Syntax’ın bu bölümünde Scott Tolinski ve CJ Reynolds kendi düzenlerini gösterdi. Scott’ınki tamamen 3D yazıcıyla basılmış bir rafta duran bir Mac mini ve bir Synology NAS. CJ’inki 48 çekirdekli eski bir Dell iş istasyonu, ayrı bir güvenlik duvarı kutusu ve birkaç Raspberry Pi. İkisinin de ortak bir uyarısı var: Kurumsal sunucuların fanları çok gürültülü, evde yaşanacak bir makine seçerken buna dikkat et.
Proxmox: Bir makinede birçok sunucu
CJ’in ana makinesinde Proxmox VE var. Bu bir hipervizör işletim sistemi: Ubuntu kurar gibi kuruyorsun, sonra web arayüzünden o makinenin içinde istediğin kadar sanal makine (KVM) ve hafif Linux konteyneri (LXC) açıyorsun. Proxmox’un belgelerine göre depolama, ağ ve yedekleme araçları da aynı arayüzde. Böylece her servisi kendi kutusuna koyabiliyorsun. Biri bozulursa diğerleri etkilenmiyor, denemek istediğin bir şeyi silip baştan kurmak da kolay.
Ağ: Kendi güvenlik duvarın ve VLAN’lar
CJ, internet sağlayıcısının modemlerini köprü (bridge) moduna alıp yönlendirme işini FreeBSD tabanlı açık kaynak güvenlik duvarı OPNsense’e vermiş. İki ayrı internet hattını aynı anda kullanıyor; biri kesilirse ev internetsiz kalmıyor. Ona göre asıl kazanç güncellemeler: Güvenlik duvarı, üreticinin firmware güncellemesini beklemeden düzenli yamalanıyor.
Önemli bir ayrıntı da VLAN: Tek fiziksel ağı mantıksal parçalara bölmek. Misafirler ve akıllı ev cihazları ayrı bir ağda duruyor, böylece güvenliği zayıf bir ampul ya da kamera ele geçirilse bile bilgisayarlarına ulaşamıyor.
Dışarıdan erişim ve yerel adreslere HTTPS
Tatildeyken evdeki servislere nasıl ulaşacaksın? İkisi de Tailscale kullanıyor. Servisler internete açılmıyor, sadece senin özel ağındaki cihazlar onları görüyor. Bu düzeni uzaktan geliştirme yazımızda anlatmıştık. CJ daha önce Cloudflare Tunnel kullanıyormuş, ama o yolda servis internete açık kalıyor ve önüne ayrıca bir giriş katmanı koymak gerekiyor.
Bölümün en öğretici kısmı sertifikalar. CJ her servise kendi alan adının bir alt alan adını veriyor ve bunlar 192.168.x.x gibi yerel adreslere gidiyor. Let’s Encrypt normalde HTTP-01 yöntemiyle, sunucuna internetten ulaşıp alanın senin olduğunu kontrol ediyor; yerel bir adrese ulaşamadığı için bu iş yaramıyor. Çözüm DNS-01: Alanın sende olduğunu, DNS’e özel bir TXT kaydı ekleyerek kanıtlıyorsun. Let’s Encrypt’in belgelerine göre bu yöntem açık port istemiyor ve joker (*.alanin.com) sertifika da verebiliyor. Caddy bunu DNS sağlayıcısının API anahtarıyla otomatik yapabiliyor; Cloudflare için ayrı bir eklentisi var. Bu arada Tailscale adresleri de özel aralıkta değil: Belgelerine göre 100.64.0.0/10 CGNAT aralığından geliyor.
Depolama: RAID, ZFS ve yedek
CJ’in “soğuk” arşivi dört 10 TB diskte RAID 10: Diskler ikişer ikişer aynalanıyor, 40 TB’ın 20 TB’ı kullanılabiliyor ama her çiftten bir disk bozulsa da veri kaybolmuyor. Sık kullanılan “sıcak” veri ise altı NVMe disklik bir ZFS havuzunda. ZFS, bir dosya sistemiyle disk yöneticisini birleştiriyor ve verinin bozulup bozulmadığını sağlama toplamlarıyla kontrol ediyor. Unutma: RAID disk arızasına karşı korur, yanlışlıkla silinen dosyaya ya da fidye yazılımına karşı korumaz. Ayrı bir yedek yine gerekli.
Bu sunucularda neler çalışıyor?
- Akıllı ev: Home Assistant merkezde. Ucuz Bluetooth sıcaklık sensörleri, ESPHome ile bir ESP32 kartına kurulan Bluetooth proxy sayesinde üreticinin uygulamasına ve bulutuna hiç gitmiyor. Scott, Wyze kameralarına açık kaynak Thingino firmware’ini yükleyip kayıtları Frigate ile kendi diskine alıyor.
- Medya ve fotoğraf: Jellyfin, Audiobookshelf ve Google Fotoğraflar’a kendi sunucunda bir alternatif olan Immich.
- İnternetsiz bilgi: Kiwix ile Wikipedia’nın ve Stack Overflow’un çevrimdışı kopyası. Paperless-ngx ile taranıp aranabilir hâle gelen belgeler ve cihaz kılavuzları.
- Kodlama: Scott, T3 Code’u ağ üzerinden açıyor; CJ, OpenCode’un tarayıcıdan bağlanılan
servemodunu ve code-server’ı kullanıyor. Yani kodlama ajanları evdeki güçlü makinede çalışıyor, laptop sadece pencere.
Kendin barındırmanın bedelini (güncelleme, yedek, güvenlik) NocoDB ve Plane yazımızda da konuşmuştuk.
Düşün
- Evindeki akıllı cihazlardan hangileri sen fark etmeden bir buluta veri gönderiyor?
- Bugün bir diskin bozulsa, hangi dosyaların başka bir yerde kopyası var?
Videoyu izle
Kaynaklar (16, İngilizce)
- Syntax #1053: What's in Our Home Lab (yeni sekmede açılır)
- Syntax: What's in Our Home Lab (video) (yeni sekmede açılır)
- Proxmox Virtual Environment: Overview (yeni sekmede açılır)
- OPNsense (yeni sekmede açılır)
- Let's Encrypt: Challenge Types (yeni sekmede açılır)
- Caddy Docs: Automatic HTTPS (DNS challenge) (yeni sekmede açılır)
- caddy-dns/cloudflare (yeni sekmede açılır)
- Tailscale Docs: 100.x addresses (yeni sekmede açılır)
- OpenZFS Documentation (yeni sekmede açılır)
- Home Assistant (yeni sekmede açılır)
- ESPHome: Bluetooth Proxy (yeni sekmede açılır)
- Thingino (yeni sekmede açılır)
- Frigate (yeni sekmede açılır)
- Immich (yeni sekmede açılır)
- Kiwix (yeni sekmede açılır)
- Paperless-ngx on GitHub (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.