# Next.js uygulamamı nasıl yayınlarım?

https://www.seturack.com/bilgi-bankasi/makale/nextjs-uygulamami-nasil-yayinlarim

1. Panelde **Sunucularım** sayfasını açın, sunucunuza tıklayın.
2. **Genel Bakış** sekmesinde **Uygulama** satırında "Next.js hazır" yazmasını bekleyin.
3. **Panel adresi** bağlantısını açın, **E-posta** ve **Şifre** satırlarıyla Coolify'a girin. Sunucu ve ilk proje hazırdır.

## Deponuzu bağlayın

1. **Projects** sayfasında **My first project** ve **production** açıp **New resource** deyin.
2. Herkese açık depoda **Public Git Repository** seçin, adresi yazıp **Check repository** deyin.
3. Özel depoda önce **Keys & Tokens** altındaki **Private Keys** sayfasında **Generate ED25519** deyin, açık anahtarı GitHub'da deponun **Deploy keys** bölümüne ekleyin. Sonra **Private Git Repository (with Deploy Key)** seçip `git@github.com:kullanici/proje.git` yazın.
4. **Build pack** alanı **Railpack** kalsın, **Continue** deyin. Railpack Coolify'da beta olarak işaretlidir, sorun çıkarsa kendi Dockerfile'ınızı seçin.
5. **Environment Variables** sayfasına değişkenlerinizi girin, **Deploy** deyin. HTTPS'li deneme adresi **Domains** sayfasındadır.

## git push ile yayın

1. Uygulamanın **Webhooks** sayfasında GitHub bölümündeki **Webhook URL** adresini kopyalayın, **Webhook secret** alanına en az 16 karakterlik rastgele bir değer yazıp kaydedin.
2. GitHub'da deponun **Settings** sayfasından **Webhooks**, **Add webhook** yolunu izleyin. **Payload URL** bu adres, **Content type** `application/json`, **Secret** aynı değer, olay yalnız push olsun.

Bundan sonra seçtiğiniz dala her `git push` yeni sürümü derleyip yayınlar. Adı `NEXT_PUBLIC_` ile başlayan bir değişkeni değiştirince **Redeploy** deyin. Derleme bellekten düşerse [sunucuyu panelden büyütün](https://www.seturack.com/bilgi-bankasi/makale/sunucumu-nasil-buyutur-ya-da-kucultururum).

## Alan adı

A kaydını sunucunun IP adresine yönlendirin. **Domains** sayfasında **Add domain** ile `https` seçip alan adınızı yazın, kaydedin ve **Redeploy** deyin. Sertifikayı Coolify alır.

## 8000, 6001 ve 6002 portlarını kapatmak

Panel HTTPS adresiyle açılıyorsa bu portlar gerekmez. Docker yayınladığı portlarda ufw'yi atladığı için ufw ile kapanmazlar. [SSH ile bağlanıp](https://www.seturack.com/bilgi-bankasi/makale/sunucuma-ssh-ile-nasil-baglanirim) Coolify'ın resmi yolunu izleyin:

`cd /data/coolify/source`

`printf 'services:\n coolify:\n ports: !override\n - "127.0.0.1:8000:8080"\n - "127.0.0.1:6001:6001"\n - "127.0.0.1:6002:6002"\n' > docker-compose.custom.yml`

`curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash`

Son komut kurulumu yeniler, yeni sürüm varsa ona geçer. Geri almak için dosyayı silip aynı komutu çalıştırın.

## Bilmeniz gerekenler

Coolify sunucuya kendi anahtarıyla root olarak SSH'tan bağlanır. Root girişini kapatırsanız ya da `/root/.ssh/authorized_keys` içindeki `coolify` satırını silerseniz yayın durur.

**Henüz sunucunuz yok mu?** [Next.js kurulu sunucu sipariş edin](https://www.seturack.com/nextjs-vps): boyutu kendiniz seçersiniz, ne seçtiyseniz onu ödersiniz.
