spot_imgspot_img

Top 5 This Week

spot_img

Related Posts

mini PC homelab sunucu: 7 Adımda Mükemmel Kurulum

Eski Mini PC’nizi Sessiz ve Güvenli Bir Homelab Sunucusuna Dönüştürme Rehberi

Mini PC’nizi ev labınızın bel kemiğine dönüştürmek, hem bütçenizi hem de veri kontrolünüzü elinize alır. Bu rehber, donanımın sınırlarını zorlayarak düşük güç tüketimi, düşük ses seviyesi ve güvenlik odaklı bir sunucu ortamı kurmanızı sağlar. Amaç, sadece “nasıl” değil, “neden” sorularına da yanıt vermek: eski bir mini PC, yedekleme, medya sunucusu, devOps denemeleri ve ağ testleri için ideal bir platform olabilir.

Okuyucu profili: Temel sistem yönetimi ve Linux komut satırı bilgisine sahip bir teknik kullanıcı. Bilgisayar donanımını kurma, işletim sistemi kurulumunu yönetme ve temel ağ yapılandırması yapma yetkinliğine sahip olmalı. Örnek olarak, bir terminalde ssh ile bağlantı kurmak, systemctl ile servis yönetimi yapmak ve rsync ile veri senkronizasyonu sağlamak beklenen becerilerdir. Çok detaylı donanım tasarımı veya kodlama becerisi gerekmez; amacımız, donanımın potansiyelini güvenli bir ortamda kullanmaktır.

Neden Önemli?

Neden Önemli?

Mini PC’ler düşük güç tüketimiyle ev ortamında enerji tasarrufu sağlar. Ortalama 20W güç tüketimi, masaüstü PC’lerin üç katına düşer. Bu fark, aylık faturalarda yüzlerce lira tasarruf oluşturur. Aynı zamanda 15 cm²’lik bir alanda konumlanabilir, bu da evdeki kabin veya raf boşluklarını verimli kullanmanızı sağlar. Sessiz çalışma, evden çalışanlar için gürültü kirliliğini azaltır; fanlar 30 dB altındadır. Soğutma fanları dinamik olarak hızlandırıldığında bile bileşen ömrü uzar. AC kaynağı ve UPS kombinasyonu, ani kesintilere karşı veriyi korur.

En az ayrıcalık ilkesi, yalnızca gerekli hizmetlere erişim tanır. SSH bağlantıları için iki faktörlü kimlik doğrulama zorunlu kılınır. Kullanıcı hesapları için sudo yetkileri minimal tutularak kötü amaçlı eylemler engellenir. Sistem logları merkezi bir syslog sunucusuna yönlendirilir, böylece izlenebilirlik artar. Yedekleme stratejileri, günlük, haftalık ve aylık snapshot’larla veri bütünlüğünü garanti eder. Rollback senaryoları, paket güncellemeleri öncesinde snapshot alarak geri dönüşü mümkün kılar. Uygulama ve işletim sistemi güncellemeleri, test ortamında doğrulandıktan sonra canlıya alınır.

Gereksinimler

Gereksinimler

Donanım Gereksinimleri

Mini PC’nin ev sunucusu olarak kalıcılığını sağlamak için temel donanım parametreleri belirlenmelidir. İşlemci: 2‑çekirdek 1.5 GHz üstü, 4 çekirdek 1.2 GHz önerilir. Bellek: 4 GB minimum, 8 GB performans için tercih. Depolama: SSD (256 GB) ana işletim sistemini taşır; ikinci SSD veya NAS 2 TB, dosya paylaşımı ve snapshot için kullanılır. Soğutma: Hızlı fanlı veya passif soğutucu, gürültüyü düşük tutmalı. Güç kaynağı: 300 W‑350 W 80+ Bronze sertifikalı, düşük güç tüketimine uygun. Mini PC’nin fiziksel ortamı, sıcaklık ve nem toleransı sağlamak için kapalı kasa ve uygun hava akışı gerektirir.

Yazılım Gereksinimleri

İşletim Sistemi: Debian‑tabanlı dağıtımlar (Ubuntu Server, Debian) stabil ve topluluk desteği güçlü. Konteyner: Docker, uygulama izolelemesine izin verirken yönetimi basitleştirir. Yönetim Araçları: Proxmox VE veya TrueNAS Core, sanallaştırma ve depolama yönetimini tek pane üzerinden sunar. Ağ: DHCP veya statik IP atanarak, subnet ve gateway’in doğru yapılandırılması gerekir. Zaman senkronizasyonu: NTP, sunucu saatini doğru tutar. Kullanıcı yönetimi: sudoers dosyası “en az ayrıcalık” prensibiyle yapılandırılmalı. Günlükleme: syslog veya journald ile merkezi loglama, izlenebilirlik sağlar.

Güvenlik Önlemleri

Güncellemeler: Sistem ve paket güncellemeleri, test ortamında doğrulanır; canlıya alım, “apt‑upgrade” ile yedek snapshot sonrası yapılır. Firewall: UFW veya iptables ile yalnızca gerekli portlar (22, 443, 80/443) açılır. Güç yönetimi: UPS veya UPS‑sız durumda “smart‑shutdown” scripti, anlık kapanışta veri bütünlüğünü korur. Backup: ZFS veya rsnapshot ile günlük, haftalık ve aylık snapshot’lar oluşturulur. Yedekler, ayrı bir SSD veya bulut depolama (Backblaze B2, Wasabi) üzerinde tutulur. Rollback: Paket güncellemesi öncesinde snapshot alır; sorun çıkarsa “zfs rollback” veya “docker compose down/ up” ile eski sürüme dönülür.

Ek Güvenlik Katmanları:

  • Fail2ban ile SSH brute‑force koruması.
  • SSH’de root login’i devre dışı bırakma ve “PermitRootLogin no”.
  • Uygulama bazlı ACL’ler ile dosya erişim kısıtlaması.
  • HTTPS için Let’s Encrypt otomatik sertifika yenileme.
  • RDS (Raspberry Pi) veya NAS üzerinden veri şifreleme.

Adım‑Adım Uygulama

Adım‑Adım Uygulama

1. Kasa ve Donanım Kurulumu

Mini PC’yi sessiz çalıştırmak için düşük gürültülü bir kasa seçin. Fan modüllerini “quiet mode”a alın ve gerekirse “silent fan” ekleyin. 2‑baylı SSD sürücüsü (NVMe tercihen) sistem diskine, 4‑baylı SATA SSD ise veri depolama için ayrılmalı. RAM’i 8 GB DDR4 ile sınırlandırın; 16 GB ihtiyacı yoksa güç tüketimini düşürür.

Donanım kurulumu sırasında BIOS/UEFI’de şu ayarları yapın:

  1. Boot Mode: UEFI.
  2. Secure Boot: Devre dışı bırakın (Linux çekirdeği için).
  3. NVMe Mode: AHCI.
  4. Fan Speed Control: “Quiet” veya “Custom” olarak “PWM 30%” değerini kullanın.
  5. Power Management: “Intel SpeedStep” veya “AMD Cool’n’Quiet” etkin.

2. İşletim Sistemi Kurulumu

Ubuntu Server 24.04 LTS’yi dd ile USB’ye yazın. Boot sırası bootctl set-default ubuntu komutuyla ayarlanır. Kurulum sırasında “unattended upgrades” etkinleştirilmeli. sudo apt update && sudo apt full-upgrade -y komutu ile sistem güncel kalır.

Örnek preseed.cfg dosyası (kullanıcının adını ve şifresini içerir):

d-i passwd/user-fullname string Operator
d-i passwd/username string operator
d-i passwd/user-password password secret123
d-i passwd/user-password-again password secret123

Kurulum sonrası cloud-init ile otomatik yapılandırma:

sudo cloud-init set-net-config /etc/netplan/01-netcfg.yaml
sudo cloud-init set-user-data /etc/cloud/cloud.cfg.d/99-custom.cfg

3. Konteyner Yönetim Platformu Kurulumu

Proxmox VE tercih edilir; ancak Docker+Compose da yeterlidir. Docker için:

sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

Docker Compose dosyasını /srv/homelab/docker-compose.yml içine yerleştirin. Örnek:

version: '3.8'
services:
  nginx:
    image: nginx:alpine
    container_name: web
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./certs:/etc/nginx/certs:ro
  postgres:
    image: postgres:13-alpine
    container_name: db
    restart: unless-stopped
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret123
      POSTGRES_DB: homelab
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

Compose’ı çalıştırın:

sudo docker compose up -d

Uygulamaları güncel tutmak için docker-compose pull ve docker compose up -d adımlarını periyodik olarak tekrarlayın.

4. Temel Ağ Yapılandırması

Statik IP atayın. /etc/netplan/01-netcfg.yaml dosyası:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.50/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

DHCP kullanıyorsanız dhclient ile alın. DNS ayarlarını systemd-resolve --status ile kontrol edin.

İsteğe bağlı olarak wireguard VPN kurarak dış bağlantıları şifreleyin:

sudo apt install wireguard
sudo wg-quick up wg0

5. Güvenlik Duvarı Kuralları

UFW kullanarak minimum portları açın:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw allow 1194/udp # VPN
sudo ufw enable

Gelişmiş kurallar için iptables ile loglama ekleyin:

# Log & deny default
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -j LOG --log-prefix "DROP: " --log-level 4
iptables -A INPUT -j DROP

Güvenlik duvarı etkinliğini sudo ufw status verbose ile doğrulayın.

6. Yedekleme Yapılandırması

ZFS kullanarak snapshot sistemini kurun:

sudo apt install zfsutils-linux
sudo zpool create homepool mirror /dev/sda /dev/sdb
sudo zfs create homepool/backup

Günlük, haftalık ve aylık snapshot’lar için cron işleri ekleyin:

* 0 * * * /usr/sbin/zfs snapshot homepool/backup@$(date +\%Y\%m\%d)
0 0 * * 0 /usr/sbin/zfs snapshot homepool/backup@weekly-$(date +\%Y\%m\%d)
0 0 1 * * /usr/sbin/zfs snapshot homepool/backup@monthly-$(date +\%Y\%m\%d)

Yedekleri harici SSD’ye veya bulut depolama (Backblaze B2) ile senkronize edin. rclone ile transfer örneği:

rclone sync homepool/backup:remote-bucket --progress

Her güncellemeden önce zfs snapshot ile anlık görüntü alın; sorun çıkarsa zfs rollback ile geri dönün.

Alternatif olarak, Btrfs ile btrfs send | rclone copy komutunu kullanabilirsiniz.

Sorun Giderme

Soğutma Sorunları

Mini PC’ler genelde düşük profilli soğutma donanımı kullanır. Fan akımı düşük olduğunda sıcaklık 80°C üzerine çıkabilir. Önce sistemin fanlarını temizleyin; toz birikmesi hava akışını kısıtlar. Fan hızı düşükse BIOS üzerinden RPM değerini kontrol edin. Hız sabit değilse fan sürücüsünü yeniden yükleyin: sudo apt install --reinstall fancontrol. Fan arızası şüpheliyse, sıcaklığı izlemek için lm-sensors ile gözlemleyin: sudo sensors-detect, sensors. Aniden kapanma, fan devrişi durdurulduysa yeni fan takın. Soğutma akışını geliştirmek için mini PC’yi hava akışına izin veren bir kasa seçin ve fan yerleşimini optimal hale getirin.

Ağ Bağlantı Hataları

Ethernet bağlantısı yavaş veya kesik ise, NIC sürücüsünü güncelleyin: sudo apt update && sudo apt install linux-modules-extra-$(uname -r). MAC adresi sabit tutulmalı; DHCP kullanıyorsanız systemd-networkd ile statik IP yapılandırması tercih edin. Ağ kablosu ve port sorunlarını kontrol etmek için ethtool eth0 komutuyla link hızını doğrulayın. 1 Gbps yerine 100 Mbps olarak düşürüldüyse, kablonun kategori 5e veya üzeri olduğundan emin olun. Ağ kartı hatalıysa, bir USB‑to‑Ethernet adaptörü deneyin. VPN veya NAT geçişlerinde, ufw allow 1194/udp gibi portları açın.

Güvenlik Güncellemeleri Eksikliği

Operatör bakımı için güvenlik yamaları kritik. unattended-upgrades paketi ile otomatik güncellemeleri etkinleştirin: sudo dpkg-reconfigure unattended-upgrades. Güvenlik güncellemeleri manuel olarak kontrol etmek için sudo apt list --upgradable | grep security komutunu kullanın. Sistem güncel değilse, root shell üzerinden sudo apt full-upgrade komutu ile yükseltme yapın. Yükleme öncesi apt-mark hold ile kritik paketleri kilitleyin, beklenmeyen değişiklikleri önleyin.

Veri Kaybı Riskleri

Yedekleme eksikliği veri kaybı riskini artırır. ZFS snapshot’ları günlük olarak alın; zfs snapshot pool@$(date +%F) komutu kullanın. Snapshot’ları zfs send ile uzak sunucuya aktarın, zfs receive ile geri alın. Yedeklemeyi test etmek için zfs rollback pool@snapshot ile eski haline dönün. Snapshot’ları zfs list -t snapshot ile doğrulayın.

Disk Degraded veya Bad Sector Hatası

SMART veriyle durum kontrolü:

sudo smartctl -a /dev/sda | grep -E "Overall Health|Reallocated_Sector_Ct"

Degraded durumunda zpool replace ile diski değiştirin. Yedekleme tamamlanmadan önce zpool scrub ile hataları tespit edin.

CPU Overload ve Yüksek Sıcaklık

CPU temp izleme:

watch -n 1 sensors

Çekirdek frekansını kontrol edin: cpupower frequency-info. Aşırı yük varsa cpupower frequency-set -g powersave ile düşük modda çalışmasını sağlayın.

İyileştirme ve Optimizasyon

Mini PC’nizin performansını artırmak, enerji tüketimini düşürmek ve güvenilir çalışmayı sağlamak için sistematik adımlar atın.

CPU ve Bellek Yönetimi

Çekirdek sayısı yüksek olsa da, düşük sıcaklıkta çalışmak için cpupower aracını kullanın. sudo cpupower frequency-set -g powersave komutu, geçiş sürelerini optimize eder. Belirli süreçler için taskset ile CPU çekirdek kısıtlaması uygulayın. Örneğin, web sunucusunu 2.0 GHz’ten 1.5 GHz’e düşürmek, bellek kullanımını %20 oranında azaltır.

Enerji Tasarrufu Modları

Güç yönetim profili /etc/default/grub dosyasında GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force" olarak ayarlanmalıdır. Güncellenen grub yapılandırması için sudo update-grub komutu çalıştırın. Daha sonra sudo systemctl enable thermald ile termal yönetim başlatın. Bu adımlar, fan döngülerini optimize eder ve cihaz ısılanmadan çalışmasını sağlar.

Veri Yoğunluklu Görevler İçin Depolama Ayarları

SSD’ye ssd_spread veya NVMe için queue_depth=32 parametresi ekleyin. /etc/fstab içinde noatime ve discard seçenekleri veri okuma/yazma performansını artırır. Yedekleme sırasında rsync -avz --delete --progress ile paralel transfer sağlayın. Snapshot sıklığını zfs set compression=lz4 ile sıkıştırarak depolama maliyetini düşürün.

IP Kameralar İçin İzleme Araçları

IP kameralar için motion veya ZoneMinder gibi açık kaynaklı izleme çözümlerini kurun. sudo apt install motion komutuyle başlayın. Konfigürasyon dosyasında stream_port ve output_port ayarlarını güvenlik duvarı ile eşleştirin. Otomatik kayıt süresi için cron ile /usr/local/bin/rotate.sh scripti kullanın.

Risk ve Rollback Tablosu

Risk Önlem Rollback
CPU Overheat Thermal daemon aktif, fan hızı dinamik Çekirdek frekansını artır
Disk I/O Engelleme Noatime + discard + SSD queue_depth fsck ile dosya sistemi kontrol
Yedekleme Hatası ZFS snapshot + rclone sync Rollback komutu ile eski snapshot
Güvenlik Açığı UFW, fail2ban, SSH root devre dışı SSH portunu değiştir
Şüpheli Ağ Trafiği Wireguard VPN, port filtreleme UFW kuralını geri al
Yüksek Bellek Kullanımı Service memory limit + swap Memory cgroup reset
Firmware Yükseltme Hatası Checksum kontrol + rollback Yedekli firmware ile geri yükleme

İyi Pratik Kontrol Listesi

  • CPU governor = powersave
  • Güç yönetim parametreleri grubda tanımlı
  • SSDIO ve queue_depth parametreleri set
  • Yedekleme scripti çalışır durumda
  • İzleme hizmeti ve firewall kurallarını eşleştir
  • Snapshot oluşturma ve rollback testleri yapıldı
  • Fail2ban ile brute‑force koruması aktif
  • SSH root login devre dışı, two‑factor aktif
  • Let’s Encrypt sertifikası otomatik yenileme ayarlı
  • Loglama sunucusu yapılandırılmış
  • Grafana panelleri CPU, bellek, disk I/O ve ağ trafiğini gösteriyor
  • UPS ile smart‑shutdown scripti çalışıyor
  • Her güncellemeden önce snapshot alınıyor

Güvenlik ve Bakım Notları

Firewall Yapılandırması

UFW ile sadece gerekli portları açın: SSH 22, Web 80/443, ZFS 2001. Diğer tüm bağlantıları engelleyin. Kurallarınızı /etc/ufw/applications.d klasöründe belgeleyin, böylece rollback kolaydır.

SSH Key Yönetimi

Root hesabını devre dışı bırakın; yalnızca sudo yetkisi veren kullanıcı oluşturun. Her kullanıcı için ayrı public key kaydedin; ~/.ssh/authorized_keys dosyasını sıkı izinlerle koruyun. İki faktörlü kimlik doğrulama eklemek için Google Authenticator veya Duo Auth kurun. Anahtarınızı yedeklerken parola koruması ekleyin, böylece şifrelenmiş .pem dosyası saklayın.

Güncelleme Politikası

Sunucuyu güncel tutmak için unattended-upgrades paketini yapılandırın. Önce apt list --upgradable ile yükseltilebilir paketleri kontrol edin. Önemli güvenlik yamalarını apt-get upgrade -y komutu ile periyodik olarak uygulayın. Yükleme öncesi apt-mark hold ile kritik paketleri kilitleyin, beklenmeyen değişiklikleri önleyin.

Yedekleme Testleri

ZFS snapshot’ları günlük olarak alın; zfs snapshot pool@$(date +%F) komutu kullanın. Snapshot’ları zfs send ile uzak sunucuya aktarın, zfs receive ile geri alın. Yedeklemeyi test etmek için zfs rollback pool@snapshot ile eski haline dönün. Yedekleme sonuçlarını journalctl -u zfs-snapshot ile kontrol edin.

Loglama ve İzleme

Syslog’ü rsyslogd ile merkezi sunucuya yönlendirin; IP’ye log gönderin. Prometheus ile node_exporter kurun; prometheus.yml dosyasına hedef ekleyin. Grafana’da paneller oluşturun; CPU, bellek, disk I/O ve ağ trafiğini takip edin. Alertmanager ile kritik eşikler aşıldığında e-posta veya Slack bildirimleri ayarlayın.

Rollback Prosedürleri

Her büyük değişiklik öncesi snapshot alın; zfs snapshot pool@pre-change komutu. Yapılandırma dosyaları (ufw, sshd_config, zfs) için git deposu kullanın. İşlem hatası durumunda zfs rollback pool@pre-change ile eski yapılandırma geri alın. Log dosyalarını rsync -a /var/log/ /backup/logs/ ile yedekleyin; 7‑day retention planı oluşturun. Rollback testlerini test ortamında yürütün; her değişiklik sonrası systemctl restart ile hizmetleri doğrulayın.

Sık Sorulan Sorular

  • Mini PC’yi düşük gürültülü çalıştırmak için hangi fan ayarları önerilir?
  • Öncelikli güncelleme sıklığı nedir?
  • ZFS snapshot’larını uzak sunucuya nasıl senkronize edebilirim?
  • Fail2ban kurulumunda hangi bant genişliği kısıtlaması kullanmalı?
  • UPS ile anlık kapanış senaryosunda hangi script çalışmalı?

Sonuç ve Kısa Özet

Eski Mini PC’nizi homelab sunucusuna dönüştürmek, kritik paketlerin kilitlenmesiyle başlayıp, düzenli ZFS snapshot’larıyla veri bütünlüğünü sağlamayı içerir. Her büyük değişiklik öncesinde snapshot alıp, gerektiğinde rollback ile geri dönme yeteneği, riskleri minimize eder. Loglama ve izleme için rsyslog, Prometheus ve Grafana’nın entegrasyonu, sistem sağlığını gerçek zamanlı gözlemlemenize olanak tanır; Alertmanager ile kritik eşiklerde otomatik bildirimler kurmak operasyonel sürekliliği güçlendirir. Yedeklemeyi test ortamında doğrulamak, ZFS send/receive zincirini güvenle kullanmanızı sağlar. Git tabanlı yapılandırma yönetimi, ufw, sshd ve ZFS ayarlarını sürüm kontrolü altında tutar, hata durumunda hızlı geri alma sunar. Log dosyalarının periyodik yedeklenmesi, 7‑day retention planıyla kalıntı veriyi önleyerek disk dolum riskini azaltır. Bu adımlar, sisteminizin güvenli, izlenebilir ve geri döndürülebilir olmasını garanti eder. Sonuçta, donanımınızı yeniden kullanarak düşük maliyetli, sessiz ve yüksek performanslı bir homelab ortamı elde edersiniz. Bu altyapı, veri güvenliği, bakım kolaylığı ve operatör olarak sizin zamanınızı en verimli şekilde kullanmanızı sağlar.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

Popular Articles