# CasaOS sunucuya nasıl kurulur ve paneli nasıl gizli tutulur

> CasaOS'u resmi betikle Debian'a kurun; panelini ve uygulama portlarını ufw, WireGuard veya Caddy HTTPS ile gizli tutun ve /DATA klasörünü güvenle yedekleyin.

Zorluk: Orta\
Denendiği sistemler: Debian 12

CasaOS, Docker üzerine kurulu açık kaynaklı bir kişisel bulut panelidir. Dosya yöneticisi, sistem bileşenleri ve Jellyfin, Nextcloud veya Home Assistant gibi self-hosted uygulamaları tek tıkla kuran bir uygulama mağazası içeren bir web arayüzü sunar. IceWhale tarafından geliştirilmiştir ve özel bir ağdaki tek kartlı bilgisayarlar ile mini PC'ler gibi küçük ev cihazları için tasarlanmıştır.

Kiralık bir sunucu ise ev ağı değildir. CasaOS paneli düz HTTP konuşur, yönetici hesabını paneli ilk açan kişi oluşturur ve uygulama mağazasındaki uygulamalar portlarını sunucunun tüm adreslerinde yayınlar. Bu rehber CasaOS'u Debian 12'ye, çalıştırmadan önce indirip okuyacağınız **resmi kurulum betiğiyle** kurar. Ardından Docker'ın uygulama portlarını yalnızca localhost'ta yayınlamasını sağlar, paneli SSH tüneli, WireGuard veya HTTPS'li Caddy ile gizli tutar ve CasaOS'u nasıl yedekleyeceğinizi, güncelleyeceğinizi ve kaldıracağınızı gösterir.

> **Not**
>
> Proje durumu, Ekim 2026: GitHub'daki son kararlı CasaOS sürümü v0.4.15'tir (Aralık 2024); ardından v0.4.17-alpha1 ön sürümü gelmiştir (Nisan 2025). Depo arşivlenmemiştir ve hâlâ commit almaktadır; CasaOS web sitesi ise kullanıcıları IceWhale'in NAS işletim sistemi ZimaOS'a yönlendirmektedir. CasaOS'ta önemli veri saklamadan önce [sürümler sayfasını](https://github.com/IceWhaleTech/CasaOS/releases) kontrol edin.

## Ön koşullar

- **Debian 12 (Bookworm)** çalıştıran bir sunucu; CasaOS projesinin test edilmiş ve önerilen olarak listelediği sürüm budur. Kurulum betiği diğer Debian ve Ubuntu sürümlerini de kabul eder; ancak proje Ubuntu 24.04, Ubuntu 26.04 veya Debian 13'ü test edilmiş olarak listelemez. CasaOS amd64, arm64 ve armv7 mimarilerini destekler.
- `sudo` yetkisi ve SSH anahtarıyla girişi olan, root olmayan bir kullanıcı. Önce [Yeni bir Linux sunucusunu güvenli hale getirin](/guides/secure-a-new-linux-server) ve [SSH anahtarlarını ayarlayın](/guides/ssh-keys) rehberlerini izleyin.
- Docker'ın kendi deposundan kurulmuş Docker Engine: [Debian'a Docker Engine nasıl kurulur](/guides/install-docker-debian) rehberini izleyin. Docker yoksa CasaOS kurulum betiği, Docker'ın üretim için önermediği kolaylık betiğine başvurur. CasaOS, Docker 20 veya daha yenisini gerektirir.
- İsteğe bağlı: Caddy üzerinden HTTPS istiyorsanız, A/AAAA kaydı sunucuyu gösteren `casa.example.com` gibi bir alan adı veya alt alan adı.

Proje en düşük donanım gereksinimi yayınlamaz. Kurulum betiği 400 MB'tan az RAM'i olan sistemlerde durur ve `/` üzerinde 5 GB'tan az boş alan varsa uyarır. Aşağıdaki öneriler resmi rakamlar değil, temkinli bir başlangıç noktasıdır:

| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| RAM | Yayınlanmamış (betik 400 MB altında durur) | 2 GB ve uygulamalarınızın ihtiyacı |
| CPU | Yayınlanmamış | 2 vCPU |
| Disk | Yayınlanmamış (betik 5 GB altı boş alanda uyarır) | 40 GB SSD ve dosyalarınız ile uygulamalarınız için ek alan |

## Adım 1 — Kurulumdan önce güvenlik duvarını kapatın

CasaOS yönetici hesabını panelin **ilk ziyaretinde** oluşturur. Siz açmadan önce panel internetten erişilebilir durumdaysa, onu ilk bulan kişi hesabı sahiplenebilir. CasaOS gateway sıradan bir sunucu servisi olarak çalıştığından ufw onun portunu filtreler. Yalnızca SSH'ye izin verin ve güvenlik duvarını açın:

```bash
sudo apt update
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
```

Durum çıktısında izin verilen olarak yalnızca `OpenSSH` (ve IPv6 karşılığı) görünmelidir.

## Adım 2 — Docker'ın uygulama portlarını yalnızca localhost'ta yayınlamasını sağlayın

Uygulama mağazasındaki uygulamalar, portlarını ana makine adresi belirtmeden yayınlayan Docker Compose projeleridir. Örneğin CasaOS Jellyfin uygulaması `8097` portunu tüm adreslerde yayınlar. Docker yayınlanan portları ufw kurallarını değerlendirmeden önce yönlendirdiği için bu portlar ufw açıkken bile internete açık olur.

Docker, yayınlanan portları bağladığı varsayılan adresi değiştirebilir. `ip` anahtarı varsayılan bridge ağını, `default-network-opts` ise Compose'un her uygulama için oluşturduğu ağları kapsar. İkisini de Docker rehberindeki log döndürme ayarlarıyla birlikte `/etc/docker/daemon.json` dosyasına yazın:

```bash
sudo tee /etc/docker/daemon.json <<'EOF'
{
  "log-driver": "local",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "ip": "127.0.0.1",
  "default-network-opts": {
    "bridge": {
      "com.docker.network.bridge.host_binding_ipv4": "127.0.0.1"
    }
  }
}
EOF
sudo systemctl restart docker
```

Ayarı yeni bir ağdaki geçici bir konteynerle test edin:

```bash
docker network create probe-net
docker run -d --rm --name probe --network probe-net -p 9999:80 nginx:stable
sudo ss -tlnp | grep 9999
docker rm -f probe && docker network rm probe-net
```

`ss` satırı `0.0.0.0:9999` değil, `127.0.0.1:9999` göstermelidir. Ayar bundan sonra oluşturulan ağlara uygulanır; bu yüzden herhangi bir uygulama kurmadan önce yapılır.

## Adım 3 — Resmi kurulum betiğini indirin, inceleyin ve çalıştırın

Resmi tek satırlık kurulum `curl -fsSL https://get.casaos.io | sudo bash` komutudur. Okuyabilmek için betiği önce indirin:

```bash
cd ~
curl -fsSL https://get.casaos.io -o casaos-install.sh
less casaos-install.sh
sudo bash casaos-install.sh
```

Bu rehber yazılırken betik (kurulum betiği v0.4.16) şunları yapar:

- CPU mimarisini ve dağıtımı kontrol eder, 400 MB'ın altındaki RAM'de durur ve 5 GB'tan az boş disk alanı varsa devam etmeden önce sorar;
- yardımcı paketleri kurar: `wget`, `curl`, `smartmontools`, `parted`, `ntfs-3g`, `net-tools`, `udevil`, `samba`, `cifs-utils`, `mergerfs` ve `unzip`;
- mevcut Docker'ınızı (sürüm 20 veya daha yeni) kullanır, Docker yoksa Docker'ın kolaylık betiğiyle kurar, ardından Docker'ın en düşük API sürümü için bir systemd override ekler;
- rclone'u kurar, ardından CasaOS bileşenlerini (gateway, message bus, user service, local storage, app management, arayüz, CLI ve uygulama mağazası) GitHub sürümlerinden indirip sisteme kopyalar;
- `casaos-uninstall` komutunu kurar, CasaOS servislerini başlatır ve panel adresini yazdırır.

Betik bitince sürümü ve servisleri kontrol edin:

```bash
casaos -v
systemctl status casaos-gateway casaos --no-pager
sudo ss -tlnp | grep -E "casaos|smbd"
```

Gateway, boşsa 80 numaralı portta dinler. 80 doluysa önce 81-89, sonra 8080-8089 aralığındaki ilk boş portu seçer ve seçimini `/etc/casaos/gateway.ini` dosyasına kaydeder.

> **Uyarı**
>
> Kurulum betiği 139 ve 445 numaralı portlarda dinleyen Samba'yı da kurar. Bu portları asla internete açmayın. Yalnızca bu rehberde listelenen portlara izin verdiğiniz sürece ufw bunları engeller.

## Adım 4 — Yönetici hesabını SSH tüneli üzerinden oluşturun

Paneli genel adres yerine şifreli bir SSH tüneli üzerinden açın. Bu komutu kullanıcı adını ve IP'yi değiştirerek **kendi bilgisayarınızda** çalıştırın:

```bash
ssh -L 8080:127.0.0.1:80 admin@203.0.113.10
```

Oturumu açık tutun ve tarayıcıda `http://localhost:8080` adresine gidin. CasaOS sizden bir hesap oluşturmanızı ister: bir kullanıcı adı ve tercihen bir parola yöneticisinden alınmış uzun, benzersiz bir parola seçin. Ardından bileşenleri, dosya yöneticisi ve App Store ile panel açılır.

## Adım 5 — Panele nasıl erişeceğinizi seçin

CasaOS'u sunucu dışından kullanmak için üç yoldan birini seçin:

| Yöntem | Gerekenler | En uygun kullanım |
|---|---|---|
| SSH tüneli | Ek bir şey gerekmez | Tek yönetici, ara sıra kullanım |
| WireGuard VPN | Bu sunucuda bir WireGuard sunucusu | Birden çok cihazdan günlük kullanım |
| HTTPS'li Caddy | Bir alan adı ve sunucuda Caddy | Sabit IP adreslerinden tarayıcıyla erişim |

### Seçenek A — Yalnızca SSH tüneli

Adım 4'teki komutu kullanmaya devam edin. Başka hiçbir şey açılmaz ve ufw 80 numaralı portu kapalı tutar.

### Seçenek B — WireGuard

WireGuard'ı [WireGuard VPN sunucusu nasıl kurulur](/guides/wireguard-vpn-server) rehberiyle kurun, ardından panel portuna yalnızca VPN arayüzünde izin verin:

```bash
sudo ufw allow in on wg0 to any port 80 proto tcp
```

Bağlı VPN istemcileri tarayıcıda sunucunun WireGuard adresini açar; örneğin `http://10.8.0.1`. Genel arayüz kapalı kalır.

### Seçenek C — HTTPS'li Caddy ve IP izin listesi

Caddy 80 ve 443 numaralı portlara ihtiyaç duyar; bu yüzden önce CasaOS gateway'ini başka bir porta, örneğin 8088'e taşıyın:

```bash
sudo sed -i 's/^port=.*/port=8088/' /etc/casaos/gateway.ini
sudo systemctl restart casaos-gateway
sudo ss -tlnp | grep 8088
```

Caddy'yi [Caddy reverse proxy olarak nasıl kurulur](/guides/caddy-reverse-proxy) rehberiyle kurun ve ufw'de `80/tcp` ile `443/tcp` portlarına izin verin. 8088 numaralı porta **izin vermeyin**; Caddy ona localhost üzerinden ulaşır. `/etc/caddy/Caddyfile` dosyasına yalnızca kendi IP adresinize (burada `198.51.100.7`) yanıt veren bir site bloğu ekleyin:

```caddyfile
casa.example.com {
    @denied not remote_ip 198.51.100.7
    abort @denied
    reverse_proxy 127.0.0.1:8088
}
```

Caddy'yi yeniden yükleyin ve kendi bilgisayarınızdan test edin:

```bash
sudo systemctl reload caddy
curl -I https://casa.example.com
```

İzin verdiğiniz IP'den HTTP `200` yanıtı almalısınız; diğer adreslerden bağlantı kapatılır. Adım 4'teki SSH tünelini 8088 numaralı porta göre güncellemeyi unutmayın. IP adresiniz sık değişiyorsa izin listesi yerine WireGuard kullanın.

## Adım 6 — Uygulamaları kurun ve onlara güvenle erişin

Panelde **App Store**'u açın ve bir uygulama kurun. Adım 2 sayesinde portları artık yalnızca localhost'ta dinler; şöyle kontrol edin:

```bash
sudo ss -tlnp | grep docker-proxy
```

Her satır `127.0.0.1` ile başlamalıdır. Uygulama verileri `/DATA/AppData/` altında uygulama adıyla, uygulama tanımları ise `/var/lib/casaos/apps` altında durur.

Paneldeki uygulama simgeleri `http://sunucu-ip-adresiniz:port` adresine bağlanır ve bu adres artık dışarıdan yanıt vermez. Bir uygulamaya şu yollardan biriyle erişin: portunu SSH tünelinize ekleyin (örneğin `-L 8097:127.0.0.1:8097`) ya da ona kendi Caddy site bloğunu verin; Jellyfin uygulaması için örnek:

```caddyfile
media.example.com {
    reverse_proxy 127.0.0.1:8097
}
```

> **İpucu**
>
> Bazı uygulamalar yayınlanan portlar yerine host ağını kullanır. Bunlar doğrudan sunucuda dinler ve ufw onları diğer sunucu servisleri gibi filtreler; yani portlarına izin verene kadar kapalı kalırlar.

## Yedekleme ve geri yükleme

CasaOS durumunu üç yerde tutar:

- `/DATA`: uygulama verileri (`/DATA/AppData`), medya ve panelde yönettiğiniz dosyalar,
- `/var/lib/casaos`: uygulama tanımları, uygulama mağazası önbelleği ve CasaOS veritabanları,
- `/etc/casaos`: `gateway.ini` gibi yapılandırma dosyaları.

Uygulamaların içindeki veritabanları tutarlı olsun diye çalışan konteynerleri durdurun, üç klasörü arşivleyin, ardından aynı konteynerleri yeniden başlatın:

```bash
sudo mkdir -p /opt/backups
RUNNING=$(docker ps -q)
docker stop $RUNNING
sudo tar czf /opt/backups/casaos-$(date +%F).tar.gz /DATA /var/lib/casaos /etc/casaos
docker start $RUNNING
```

Arşivi sunucunun dışına kopyalayın; örneğin rsync ile başka bir makineye:

```bash
rsync -avP admin@203.0.113.10:/opt/backups/ ~/casaos-backups/
```

Geri yüklemek için hedef sunucuya Docker'ı, Adım 2'deki `daemon.json` dosyasını ve aynı CasaOS sürümünü kurun. Ardından CasaOS'u durdurun, arşivi açın ve servisleri yeniden başlatın:

```bash
sudo systemctl stop casaos casaos-app-management casaos-local-storage casaos-user-service casaos-message-bus casaos-gateway
sudo tar xzf /opt/backups/casaos-2026-10-09.tar.gz -C /
sudo systemctl start casaos-gateway casaos-message-bus casaos-user-service casaos-local-storage casaos-app-management casaos
```

Yeni bir sunucuda bir uygulama başlamazsa onu App Store'dan aynı ayarlarla yeniden kurun; `/DATA/AppData` altında bulduğu verileri kullanır.

## CasaOS güncelleme

Önce yedek alın. Paneldeki **Settings** bölümünden ya da komut satırından güncelleyebilirsiniz. Proje, komut satırı güncellemesini CasaOS panelinin içindeki terminalden değil, SSH veya yerel konsol üzerinden çalıştırmanızı ister. Güncelleme betiğini kurulum betiği gibi indirip inceleyin:

```bash
curl -fsSL https://get.casaos.io/update -o casaos-update.sh
less casaos-update.sh
sudo bash casaos-update.sh
casaos -v
```

CasaOS kurulu uygulamaları kendiliğinden güncellemez. Her uygulamayı sürüm notlarını okuduktan sonra panelden güncelleyin. Docker'ın kendisi, Docker rehberinde anlatıldığı gibi apt üzerinden güncellenir.

## CasaOS'u kaldırma

Kurulum betiği bir kaldırma komutu ekledi. Komut tüm konteynerlerin, imajların ve `/DATA/AppData` içindeki uygulama verilerinin silinip silinmeyeceğini sorar; saklamak için `n` yanıtını verin. `/etc/casaos` klasörünü ve CasaOS servislerini kaldırır, Docker'ı ise kurulu bırakır.

> **Tehlike**
>
> Konteyner ve AppData sorularına evet yanıtı vermek tüm uygulamaları ve verilerini siler. Önce yedek alın.

```bash
sudo casaos-uninstall
```

## Sorun giderme

### Panel 80 numaralı portta değil

Gateway 80 numaralı portu dolu buldu ve başka bir port seçti. Portu görmek için `grep port /etc/casaos/gateway.ini` ve `sudo ss -tlnp | grep casaos` komutlarını çalıştırın; ardından tünelinizi veya Caddy bloğunuzu buna göre ayarlayın ya da portu Seçenek C'deki gibi kendiniz belirleyin.

### ufw açık olduğu hâlde bir uygulamaya internetten erişilebiliyor

Uygulama `daemon.json` değişikliğinden önce kuruldu ya da ağı zaten vardı. `sudo ss -tlnp | grep docker-proxy` ile kontrol edin. Uygulamayı panelden kaldırın (verilerini saklayın), Adım 2'nin uygulandığından emin olun ve uygulamayı yeniden kurun.

### Recommended minimum Docker version

Docker 20'den eski olduğu için kurulum betiği durdu. Eski paketleri kaldırın, Docker'ı Docker rehberinde anlatıldığı gibi Docker'ın deposundan kurun ve kurulum betiğini yeniden çalıştırın.

### Kurulumdan sonra Docker başlamıyor

`systemctl status docker` ve `journalctl -u docker -n 50` çıktılarına bakın. `/etc/docker/daemon.json` içindeki bir yazım hatası servisi durdurur; dosyayı `python3 -m json.tool /etc/docker/daemon.json` ile doğrulayın, düzeltin ve `sudo systemctl restart docker` çalıştırın.

### Bir uygulama simgesi hiç yüklenmeyen bir sayfa açıyor

Uygulama, amaçlandığı gibi `127.0.0.1` üzerinde dinliyor. Onu SSH tüneliniz, WireGuard ile Caddy ya da Adım 6'daki gibi kendi Caddy site bloğu üzerinden açın.

## Sonraki adımlar

- Panele tüm cihazlarınızdan [WireGuard VPN sunucusu](/guides/wireguard-vpn-server) ile erişin.
- HTTPS ve site blokları hakkında daha fazlasını [Caddy reverse proxy olarak nasıl kurulur](/guides/caddy-reverse-proxy) rehberinde öğrenin.
- Konteynerleri [Portainer](/guides/install-portainer) ile daha ayrıntılı yönetin.
- Self-hosted bir panel için sunucuları [CasaOS hosting](/casaos-hosting) sayfasında karşılaştırın.
- Projeyi [GitHub](https://github.com/IceWhaleTech/CasaOS) üzerinden takip edin.

## Sık sorulan sorular

### CasaOS hâlâ geliştiriliyor mu?

Ekim 2026 itibarıyla GitHub'daki son kararlı CasaOS sürümü Aralık 2024 tarihli v0.4.15'tir; ardından Nisan 2025'te v0.4.17-alpha1 ön sürümü yayımlandı. Depo arşivlenmemiştir ve projenin arkasındaki IceWhale şirketi kullanıcılarına artık ZimaOS'u bir sonraki adım olarak sunmaktadır. Önemli veriler için CasaOS'a güvenmeden önce sürümler sayfasını kontrol edin.

### CasaOS HTTPS destekliyor mu?

Hayır. Proje ev ağları için tasarlandığından CasaOS gateway servisi paneli düz HTTP ile sunar. İnternetteki bir sunucuda panele SSH tüneli veya WireGuard üzerinden erişin ya da HTTPS için önüne Caddy koyup erişimi kendi IP adresinizle sınırlayın.

### ufw portu engellediği hâlde bir CasaOS uygulamasına neden internetten erişilebiliyor?

Uygulama mağazasındaki uygulamalar portlarını tüm adreslerde yayınlar ve Docker yayınlanan portları trafik ufw'ye ulaşmadan önce işler. Bu rehber, uygulama kurmadan önce Docker'ın varsayılan bağlama adresini 127.0.0.1 yapar; böylece yeni uygulama portları yalnızca localhost'ta dinler.

### CasaOS'u Ubuntu 24.04 veya Debian 13'e kurabilir miyim?

Kurulum betiği Debian ve Ubuntu sistemlerini kabul eder; ancak proje Debian 12'yi test edilmiş ve önerilen sürüm olarak, Ubuntu tarafında ise yalnızca eski sürümleri test edilmiş olarak listeler. Diğer sürümler çalışabilir ama proje tarafından test edilmemiştir; bu nedenle bu rehber Debian 12 kullanır.

### CasaOS hangi HyperDC sunucularında çalışır?

CasaOS işletim sisteminin üzerinde çalışır; bu nedenle root erişimi olan ve Debian 12 çalıştıran bir HyperDC Linux VPS, VDS veya dedicated sunucu kullanabilirsiniz. Sunucuyu CasaOS'a göre değil, kuracağınız uygulamalara göre boyutlandırın.

---

Kaynak: <https://hyperdc.com/tr/guides/tutorials/install-casaos>\
Son güncelleme: 2026-10-09
