# OmniRoute Fly.io Deployment Guide (Türkçe) 🌐 **Languages:** 🇺🇸 [English](../../../../ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇪🇹 [am](../../../am/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇦🇿 [az](../../../az/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇩🇰 [da](../../../da/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇩🇪 [de](../../../de/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇬🇷 [el](../../../el/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇪🇸 [es](../../../es/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇪🇪 [et](../../../et/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇱 [he](../../../he/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇩 [id](../../../id/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇹 [it](../../../it/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇰🇭 [km](../../../km/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇲🇲 [my](../../../my/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇴 [no](../../../no/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [or](../../../or/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇱🇰 [si](../../../si/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [te](../../../te/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇹🇭 [th](../../../th/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) --- Bu belge, OmniRoute'un Fly.io üzerindeki gerçek dağıtım sürecini aşağıdaki senaryoları kapsayacak şekilde açıklamaktadır: - Mevcut projenin Fly.io'ya ilk kez dağıtılması - Sonraki kod güncellemelerinin yayımlanması - Aynı dağıtım iş akışını izleyen yeni projeler Bu kılavuz, mevcut proje için çalıştığı doğrulanmış bir yapılandırmayı temel almaktadır. Uygulama adı `omniroute` şeklindedir. --- ## 1. Dağıtım Hedefleri - Platform: Fly.io - Dağıtım yöntemi: Yerel `flyctl` ile doğrudan yayımlama - Çalışma zamanı: Depodaki mevcut `Dockerfile` ve `fly.toml` dosyalarının kullanılması - Veri kalıcılığı: `/data` dizinine bağlanan Fly Volume - Erişim URL'si: `https://omniroute.fly.dev/` --- ## 2. Mevcut Projenin Temel Yapılandırması Mevcut depodaki `fly.toml` dosyasının aşağıdaki temel öğeleri içerdiği doğrulanmıştır: ```toml app = 'omniroute' primary_region = 'sin' [[mounts]] source = 'data' destination = '/data' [processes] app = 'node run-standalone.mjs' [http_service] internal_port = 20128 [env] TZ = "Asia/Shanghai" HOST = "0.0.0.0" HOSTNAME = "0.0.0.0" BIND = "0.0.0.0" ``` Notlar: - `app = 'omniroute'`, dağıtımın hangi Fly uygulamasını hedeflediğini belirler - `destination = '/data'`, kalıcı birimin bağlanacağı dizini belirler - Bu projede `DATA_DIR=/data` ayarlanmalıdır; aksi takdirde veritabanı ve anahtarlar konteynerin geçici dizinine yazılır --- ## 3. Ön Koşullar ### 3.1 Fly CLI'yi Yükleme Windows PowerShell: ```powershell pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex" ``` Yükleme betiği ortamınızda başarısız olursa `flyctl` ikili dosyasını manuel olarak indirip `PATH` değişkeninize de ekleyebilirsiniz. ### 3.2 Fly Hesabınızda Oturum Açma ```powershell flyctl auth login ``` ### 3.3 Oturum Durumunu Doğrulama ```powershell flyctl auth whoami flyctl version ``` --- ## 4. Mevcut Projenin İlk Kez Dağıtılması ### 4.1 Kodu Klonlama ve Dizine Girme ```powershell git clone https://github.com/diegosouzapw/OmniRoute.git cd OmniRoute ``` ### 4.2 Uygulama Adını Doğrulama `fly.toml` dosyasını açın ve aşağıdaki satırı doğrulayın: ```toml app = 'omniroute' ``` Kendi yeni uygulamanıza dağıtım yapıyorsanız bunu global olarak benzersiz bir adla değiştirebilirsiniz, örneğin: ```toml app = 'omniroute-yourname' ``` Not: - Konsolda gördüğünüz uygulamanın `fly.toml` dosyasındaki `app` değeriyle eşleştiğinden emin olun - Daha önce `oroute` gibi farklı bir ad kullandıysanız bunu `omniroute` ile karıştırmayın ### 4.3 Uygulamayı Oluşturma Uygulama henüz mevcut değilse: ```powershell flyctl apps create omniroute ``` Uygulama adını değiştirdiyseniz `omniroute` yerine seçtiğiniz adı kullanın. ### 4.4 İlk Dağıtım ```powershell flyctl deploy ``` --- ## 5. Gerekli Parametreler Bu proje, Fly.io üzerinde en az aşağıdaki parametrelerin yapılandırılmasını önerir. ### 5.1 Doğrulanmış Parametreler Bu parametreler mevcut `omniroute` uygulamasındaki gerçek dağıtımlarda kullanılmıştır: - `API_KEY_SECRET` - `DATA_DIR` - `JWT_SECRET` - `MACHINE_ID_SALT` - `NEXT_PUBLIC_BASE_URL` - `OMNIROUTE_WS_BRIDGE_SECRET` (üretim ortamında gereklidir — WebSocket köprüsü kimlik doğrulaması için kullanılır) - `STORAGE_ENCRYPTION_KEY` ### 5.2 `INITIAL_PASSWORD` Hakkında Bu dağıtımda gerekli olmadığı için mevcut projede `INITIAL_PASSWORD` ayarlanmamıştır. Ayarlanmadığında: - Başlatma günlüğünde varsayılan parolanın `CHANGEME` olduğu belirtilir - Dağıtımdan sonra sistem ayarlarından oturum açma parolasını mümkün olan en kısa sürede değiştirmelisiniz Arka uç parolasını gözetimsiz olarak başlatmak istiyorsanız bunu daha sonra ekleyebilirsiniz: - `INITIAL_PASSWORD` --- ## 6. Önerilen Parametreler ### 6.1 Gizli Değer Yapılandırması Fly Secrets için aşağıdaki değişkenler önerilir: | Değişken | Öneri | Açıklama | | ------------------------------- | --------------------- | ------------------------------------------------------ | | `API_KEY_SECRET` | Zorunlu | API anahtarı oluşturma ve doğrulama için kullanılır | | `JWT_SECRET` | Zorunlu | Oturum açma oturumları ve JWT imzalama için kullanılır | | `OMNIROUTE_WS_BRIDGE_SECRET` | Üretimde zorunlu | WebSocket köprüsü kimlik doğrulama gizli değeri | | `STORAGE_ENCRYPTION_KEY` | Önemle tavsiye edilir | Depolanan hassas bağlantı bilgilerini şifreler | | `MACHINE_ID_SALT` | Önerilir | Kararlı bir makine tanımlayıcısı oluşturur | | `INITIAL_PASSWORD` | İsteğe bağlı | İlk dağıtımda başlangıç arka uç parolasını ayarlar | | OAuth/API özel kimlik bilgileri | Gerektiğinde | Harici platform kimlik doğrulama yapılandırması | ### 6.2 Mevcut Proje İçin Önerilen Değerler | Değişken | Önerilen Değer | | ---------------------- | --------------------------- | | `DATA_DIR` | `/data` | | `NEXT_PUBLIC_BASE_URL` | `https://omniroute.fly.dev` | Notlar: - `DATA_DIR=/data` kritik öneme sahiptir ve Fly Volume bağlama noktasıyla eşleşmelidir - `NEXT_PUBLIC_BASE_URL`, zamanlayıcı, ön uç geri çağrıları ve benzer senaryolar tarafından kullanılır ### 6.3 OAuth Geri Çağrı URL'si Yapılandırması Fly.io dağıtımında OAuth tabanlı sağlayıcıları (ör. Antigravity, Gemini, Cursor) etkinleştirmeniz gerekiyorsa aşağıdaki iki noktadan emin olun: 1. **`NEXT_PUBLIC_BASE_URL` değerini herkese açık HTTPS alan adınız olarak ayarlayın** ```powershell flyctl secrets set NEXT_PUBLIC_BASE_URL=https://omniroute.fly.dev -a omniroute ``` Özel bir alan adı kullanıyorsanız bunu ilgili alan adıyla değiştirin (ör. `https://omniroute.yourdomain.com`). 2. **Sağlayıcı konsolunda geri çağrı URL'sini yapılandırın** Tüm OAuth sağlayıcıları tek bir `/callback` yolunu paylaşır — sağlayıcı başına ayrı bir geri çağrı rotası YOKTUR: ```text /callback ``` Örneğin Gemini, Antigravity, Cursor veya GitLab Duo fark etmeksizin: - `https://omniroute.fly.dev/callback` `NEXT_PUBLIC_BASE_URL`, sağlayıcıya kaydedilen geri çağrı URL'siyle eşleşmezse OAuth akışı tarayıcı yönlendirme adımında başarısız olur. --- ## 7. Tek Komutla Gizli Değer Kurulumu Aşağıdaki komutlar güvenli rastgele değerler oluşturur ve mevcut proje için gerekli tüm parametreleri tek adımda Fly Secrets'a yazar. Notlar: - `INITIAL_PASSWORD` dahil değildir - Mevcut `omniroute` projesi için tasarlanmıştır ```powershell $apiKeySecret = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $jwtSecret = [Convert]::ToHexString((1..64 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $machineIdSalt = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $storageKey = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $wsBridgeSecret = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() flyctl secrets set ` API_KEY_SECRET=$apiKeySecret ` JWT_SECRET=$jwtSecret ` MACHINE_ID_SALT=$machineIdSalt ` STORAGE_ENCRYPTION_KEY=$storageKey ` OMNIROUTE_WS_BRIDGE_SECRET=$wsBridgeSecret ` DATA_DIR=/data ` NEXT_PUBLIC_BASE_URL=https://omniroute.fly.dev ` -a omniroute ``` Linux / macOS üzerinde `openssl rand -hex 32` komutunu da kullanabilirsiniz: ```bash flyctl secrets set OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -hex 32) -a omniroute ``` Notlar: - `OMNIROUTE_WS_BRIDGE_SECRET` üretimde zorunludur; eksik olması WebSocket köprüsü el sıkışmasını bozacaktır Ayrıca bir başlangıç parolası ayarlamak istiyorsanız: ```powershell flyctl secrets set INITIAL_PASSWORD=your-strong-password -a omniroute ``` --- ## 8. Geçerli Parametreleri Görüntüleme ```powershell flyctl secrets list -a omniroute ``` Konsoldaki `Secrets` sayfası beklenen değişkenleri göstermiyorsa şunları kontrol edin: - `omniroute` uygulamasını görüntülediğinizi - `fly.toml` dosyasındaki `app` değerinin konsoldaki uygulamayla eşleştiğini --- ## 9. Sonraki Güncellemeler ve Sürümler Kod güncellemelerinden sonra sürüm süreci basittir: ```powershell git pull flyctl deploy ``` Kodu değiştirmeden yalnızca parametreleri güncellemeniz gerekiyorsa: ```powershell flyctl secrets set KEY=value -a omniroute ``` Fly, makinelerde otomatik olarak aşamalı bir güncelleme gerçekleştirir. ### 9.1 Fork'unuzun `fly.toml` Dosyasını Korurken Üst Depo Güncellemelerini Takip Etme Geçerli depo bir fork ise ve `https://github.com/diegosouzapw/OmniRoute` üst deposundaki güncellemeleri senkronize etmek istiyorsanız aşağıdaki iş akışını izleyin. Öncelikle uzak depolarınızı doğrulayın: ```powershell git remote -v ``` En azından şunları görmelisiniz: - Kendi fork'unuza işaret eden `origin` - Orijinal depoya işaret eden `upstream` `upstream` yapılandırılmamışsa ekleyin: ```powershell git remote add upstream https://github.com/diegosouzapw/OmniRoute.git ``` Üst depoyla senkronize etmeden önce en son commit'leri ve etiketleri alın: ```powershell git fetch upstream --tags ``` Geçerli sürümü ve üst depo etiketlerini kontrol edin: ```powershell git describe --tags --always git show --no-patch --oneline v3.4.7 ``` > Not: Geçerli proje sürümü `v3.8.0`'dır. Aşağıdaki `v3.4.7` referansları yalnızca geçmişe yönelik örnekler olarak korunmuştur. Gerçek sürümler için `:latest` veya geçerli sürüm etiketini (ör. `:v3.8.0`) kullanın. Fork'unuzun `fly.toml` dosyasını zorunlu olarak korurken üst deponun en son `main` dalını birleştirmek istiyorsanız şu iş akışını izleyin: ```powershell git merge upstream/main git checkout HEAD~1 -- fly.toml git add -- fly.toml git commit -m "chore(deploy): keep fork fly.toml" git push origin main ``` Notlar: - `git merge upstream/main`, orijinal depodaki en son kodu senkronize eder - `git checkout HEAD~1 -- fly.toml`, fork'unuza ait `fly.toml` dosyasını birleştirmeden önceki hâline geri yükler - Üst depo `fly.toml` dosyasını değiştirmediyse bu adım herhangi bir farklılık oluşturmaz - Üst depo `fly.toml` dosyasını değiştirdiyse bu adım, Fly uygulama adınızın, birim bağlama noktanızın, bölgenizin ve fork'a özgü diğer dağıtım yapılandırmalarınızın üzerine yazılmamasını sağlar Belirli bir sürüm etiketiyle (ör. `v3.4.7`) hizalamak istiyorsanız öncelikle etiketin `upstream/main` dalına zaten dahil edilmiş olduğunu doğrulayın: ```powershell git merge-base --is-ancestor v3.4.7 upstream/main ``` Komutun başarıyla sonuçlanması, `upstream/main` dalının bu sürümü zaten içerdiği anlamına gelir; yalnızca `upstream/main` dalını birleştirebilirsiniz. ### 9.2 Üst Depoyu Senkronize Ettikten Sonraki Standart Sürüm Sırası Orijinal depoyla senkronizasyon yaptıktan sonra önerilen şu sürüm sırasını izleyin: 1. `git fetch upstream --tags` 2. `git merge upstream/main` 3. Fork'un `fly.toml` dosyasını geri yükleyin 4. `git push origin main` 5. `flyctl deploy` 6. `flyctl status -a omniroute` 7. `flyctl logs --no-tail -a omniroute` Bu, geçerli proje `v3.4.7` sürümüne yükseltilirken kullanılan gerçek iş akışıdır (örnek geçmişteki bir sürüme atıfta bulunur; geçerli gerçek sürüm `v3.8.0`'dır). --- ## 10. Dağıtım Sonrası Kontroller ### 10.1 Uygulama Durumunu Kontrol Etme ```powershell flyctl status -a omniroute ``` ### 10.2 Başlangıç Günlüklerini Görüntüleme ```powershell flyctl logs --no-tail -a omniroute ``` ### 10.3 Site Erişilebilirliğini Doğrulama ```powershell try { (Invoke-WebRequest -Uri "https://omniroute.fly.dev" -MaximumRedirection 5 -UseBasicParsing).StatusCode } catch { if ($_.Exception.Response) { $_.Exception.Response.StatusCode.value__ } else { throw } } ``` `200` dönüş değeri, sitenin normal şekilde yanıt verdiğini gösterir. --- ## 11. Başarı Göstergeleri Başarılı bir dağıtımdan sonra günlüklerde aşağıdakine benzer içerikler görünmelidir: ```text [bootstrap] Secrets persisted to: /data/server.env [DB] SQLite database ready: /data/storage.sqlite ``` Şu iki nokta kritik öneme sahiptir: - `/data/server.env`, çalışma zamanı gizli bilgilerinin kalıcı birime yazıldığını doğrular - `/data/storage.sqlite`, veritabanının kalıcı birime yazıldığını doğrular Bunun yerine `/app/data/...` görüyorsanız `DATA_DIR` yanlış yapılandırılmıştır ve derhal düzeltilmelidir. --- ## 12. Yaygın Sorunlar ### 12.1 `Secrets` Sayfası Boş Bunun genellikle iki nedeni vardır: - Henüz `flyctl secrets set` komutunu çalıştırmadınız - Farklı bir uygulamayı görüntülüyorsunuz (ör. `omniroute` yerine `oroute`) ### 12.2 `flyctl deploy`, `app not found` Hatası Bildiriyor Önce uygulamayı oluşturun: ```powershell flyctl apps create omniroute ``` ### 12.3 `fly.toml` Ayrıştırma İşlemi Başarısız Oluyor Şunları kontrol edin: - Yorumlarda bozuk karakterler olup olmadığı - TOML tırnak işaretlerinin ve girintilemenin doğru olup olmadığı ### 12.4 Veriler Kalıcı Olarak Saklanmıyor Aşağıdakilerin ikisini de doğrulayın: - `fly.toml`, `destination = '/data'` içeriyor - `DATA_DIR`, `/data` olarak ayarlanmış ### 12.5 `INITIAL_PASSWORD` Olmadan Çalışabilir mi? Evet, çalışabilir. Varsayılan `CHANGEME` parolasına geri döner. Üretim ortamında arka uç parolasının mümkün olan en kısa sürede değiştirilmesi önerilir. --- ## 13. Yeni Projeler İçin Yeniden Kullanma Bu belgeyi izleyerek yeni bir proje dağıtıyorsanız yalnızca şu öğeleri değiştirmeniz gerekir: 1. `fly.toml` içindeki `app` değerini değiştirin 2. `NEXT_PUBLIC_BASE_URL` değerini değiştirin 3. `DATA_DIR=/data` ayarını koruyun 4. `API_KEY_SECRET`, `JWT_SECRET`, `MACHINE_ID_SALT` ve `STORAGE_ENCRYPTION_KEY` değerlerini yeniden oluşturun 5. İlk dağıtımdan sonra günlüklerin `/data` konumuna yazıldığını doğrulayın Önceki bir projenin anahtarlarını yeniden kullanmayın. --- ## 14. Mevcut Proje İçin Asgari Sürüm Kontrol Listesi Sonraki sürümlerde en sık kullanılan komutlar şunlardır: ```powershell flyctl auth whoami flyctl status -a omniroute flyctl secrets list -a omniroute flyctl deploy flyctl logs --no-tail -a omniroute ``` Normal bir sürüm için temel komut yalnızca şudur: ```powershell flyctl deploy ``` Yeni bir ortamda ilk kez dağıtım yapmak için temel adımlar şunlardır: 1. `flyctl auth login` 2. `flyctl apps create omniroute` 3. `flyctl secrets set ... -a omniroute` 4. `flyctl deploy` 5. `flyctl logs --no-tail -a omniroute`