# Go, Java, .NET, Ruby, Bun ve Deno uygulamaları

> Go, Java, .NET, Ruby, Bun ya da Deno uygulamalarını web sunucusunun arkasında, sunucuya göre boyutlanan sınırlarla yönetilen servisler olarak çalıştırın.

Diğer çalışma ortamlarındaki uygulamalar [Node.js ve Python uygulamaları](/tr/docs/node-ve-python) gibi çalışır: site kullanıcısına ait, yerel bir portta yönetilen bir systemd servisi; alan adını, HTTPS'i ve statik dosyaları öndeki web sunucusu üstlenir.

## 1. Çalışma ortamını kurun

Sunucunun [web yığınında](/tr/docs/web-yigini), **Diğer çalışma ortamları** altında çalışma ortamını ve sürümlerini seçip **Kur**'a basın:

| Çalışma ortamı | Sürümler | Kaynağı |
| --- | --- | --- |
| Go | 1.27, 1.26 | go.dev sürümü, sağlama değeri sabitlenmiş |
| Java | 25, 21 (LTS) | Eclipse Temurin JDK, sağlama değeri sabitlenmiş |
| .NET | 10, 8 (LTS) | Microsoft SDK, sağlama değeri sabitlenmiş |
| Ruby | dağıtımınki | Debian/Ubuntu paketleri, Bundler ve derleme araçlarıyla |
| Bun | 1 | Bun sürümü, sağlama değeri sabitlenmiş |
| Deno | 2 | Deno sürümü, sağlama değeri sabitlenmiş |

Güvenlik sürümleri ajan güncellemeleriyle gelir ve çalışan uygulamalar yeni sürümle yeniden başlar. Bir sürümü düğmesindeki **×** ile kaldırın; o sürümü kullanan bir site varken bu reddedilir.

## 2. Siteyi ekleyin

**Site ekle**'ye basın ve **Tür** altında çalışma ortamını ve sürümü seçin. Zefily boş bir yerel port atar.

## 3. Kodu dağıtın

Sitenin **Dağıtım** bölmesinde derleme komutları ve bir **Başlatma komutu** ile bir [Git deploy'u](/tr/docs/githubdan-dagitim) kurun. Başlatma komutu canlı sürümde site kullanıcısı olarak çalışır ve `127.0.0.1:$PORT` üzerinde dinlemelidir. Örneğin:

| Çalışma ortamı | Derleme komutları | Başlatma komutu |
| --- | --- | --- |
| Go | `go build -o app .` | `./app` |
| Java | `./mvnw -q package -DskipTests` | `java -jar target/app.jar` |
| .NET | `dotnet publish -c Release -o out` | `dotnet out/App.dll` |
| Ruby (Rails) | `bundle install`, `bin/rails assets:precompile` | `bundle exec puma -b tcp://127.0.0.1:$PORT` |
| Bun | `bun install --frozen-lockfile` | `bun run start` |
| Deno | `deno install` | `deno task start` |

Süreç, uygulamanın diğerlerinin yanına sığması için sunucudaki payına göre boyutlanan sınırlar alır: Go'da `GOMAXPROCS` ve `GOMEMLIMIT`; Java'da `JAVA_TOOL_OPTIONS` içinde bir heap tavanı (`-Xmx`) ve işlemci sayısı ile `SERVER_PORT`; .NET'te `DOTNET_GCHeapHardLimit`, `DOTNET_PROCESSOR_COUNT` ve `ASPNETCORE_URLS`; Ruby'de `RAILS_ENV=production` ve Bundler'ın dağıtım ayarları; Bun ve Deno'da `NODE_ENV=production`. `WEB_CONCURRENCY` (işçi süreç sayısı) her çalışma ortamı için ayarlanır. Derlemeler araç zinciri indirmeden (`GOTOOLCHAIN=local`) ve telemetri olmadan çalışır.

Uygulama her deploy'da yeniden başlar; bir deploy'dan sonra yanıt vermezse site önceki sürüme döner. Yapılandırma sitenin [.env](/tr/docs/gunlukler-ve-ortam) dosyasına girer; uygulamanın çıktısı **Günlükler** bölmesinde **Uygulama süreci** altındadır.

---
Kaynak: https://zefily.com/tr/docs/diger-calisma-ortamlari
