Günlük diziniDockup / saha notu
Note / self-host-it-tools

2026'da IT Tools'u Self-Host Etme: TLS, Stateless Deploy'lar ve Güncellemeler

Docker, portlar, kalıcı veriler, TLS, güvenlik, yedekler ve production kullanımını engelleyen sorunları kapsayan pratik bir IT Tools self-hosting rehberi. Kontroller dahil.

IT Tools'u self-host etmek, ilk docker run komutunda değil, ilk redeploy işleminde ilgi çekici hâle gelir. Proxy yanlış container portunu hedefliyorsa veya eski bir application shell'i cache'liyorsa Docker yine de sürecin tamamen sağlıklı olduğunu bildirebilir. Aşağıdaki deployment, gözlemlenebilir davranışlar etrafında düzenlenmiştir: arayüzü yüklemek, bir hash üretmek, bir JWT decode etmek ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullanmak.

IT Tools'un hedeflediği kullanım açıktır: hash koleksiyonu, converter'lar, generator'lar ve developer araçları. Bu tanım, nelerin public kalması, nelerin private tutulması ve bir backup'ın neleri yeniden oluşturması gerektiğini gösterir.

IT Tools'u bağımlılıklarından ayırın

IT Tools network namespace'i ile başlayın: web listener'ı, bir laptop tutorial'ından kopyalanmış host portu değil, 80 numaralı porttur. Standart IT Tools build'i bir database veya ayrı bir persistent runtime service gerektirmez. Web container'ını değiştirilebilir tutun ve gelecekteki authentication, collaboration veya storage bileşenlerini ayrı belgelenmiş bir sınırın arkasına yerleştirin.

Gereksinim karşılandıktan sonra senaryonun tamamını çalıştırın — arayüzü yükleyin, bir hash üretin, bir JWT decode edin ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullanın. Client browser memory, static asset delivery ve server-side database veya queue çalışmasının bulunmadığına ilişkin log'ları ve ölçümleri kaydedin. Bu kanıt, ilk bilinen iyi mimariyi oluşturur ve daha sonra Dockup compute ile bağlı bir server arasındaki geçişleri test edilebilir hâle getirir.

Değiştirilebilir bir IT Tools container'ı oluşturun

Platformun daha sonra neyi yöneteceğini ortaya koyan minimal bir komut faydalıdır.

docker run -d \
  --name it-tools \
  --restart unless-stopped \
  -p 127.0.0.1:80:80 \
  corentinth/it-tools:latest

Burada 80 numaralı port host üzerinde private kalır ve gerekli tüm path'ler açıkça belirtilmiştir. Dışa açmadan önce local gereksinimi doğrulayın: database yok; yalnızca küçük bir web container'ı var. Başlangıcı hem log'larla hem de application-specific kanıtla doğrulayın: arayüzü yükleyin, bir hash üretin, bir JWT decode edin ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullanın. Doğrulama tamamlandıktan sonra image version'ını sabitleyin; böylece rutin bir replacement davranışı fark ettirmeden değiştirmez.

TLS kolaydır; üretilen URL'ler o kadar kolay değildir

IT Tools için public boundary tek bir canonical hostname, automatic TLS ve 80 numaralı port üzerindeki tek bir internal target olmalıdır. Static web application'ı HTTPS üzerinden route edin; böylece client'lar service'in tanıdığı bir adrese geri döner.

Acceptance transaction başarısız olursa ilk hatayı sınıflandırın. DNS, certificate ve 502 sorunları TLS validation checklist kapsamındadır. “Proxy yanlış container portunu hedefliyor veya eski bir application shell'i cache'liyor” koşulu ise bir request IT Tools'a başarıyla ulaştıktan sonraki application tarafına aittir.

Volume'ler yalnızca ilk recovery katmanıdır

Stateless IT Tools için recovery, reproducibility çalışmasıdır. Server data saklamayın; deployment configuration'ı koruyun; writable container layer replacement sonrasında gerekli hiçbir şeyi içermemelidir.

Pinned image ve gözden geçirilmiş configuration'ı kullanarak IT Tools'u boş bir compute üzerinde yeniden build edin. Fresh container, server-side user state olmadığı için aynı tool set'ini yeniden oluşturduğunda drill başarılı olur. Değiştirilebilir artifact için Git-to-production deployment workflow rehberini izleyin; isteğe bağlı tüm external service'ler ise ayrı bir backup procedure kullanmalıdır.

Tam digest'i ve acceptance input'unu belgeleyin. Bu, bir operator'ün application regression ile eksik state'i birbirinden ayırmasını sağlar ve IT Tools'un hiç okumadığı törensel bir volume'ü eklemesini önler.

Geçici setup erişimini kapatın

Stateless IT Tools için security, hayali bir account setting'den değil, supply-chain ve ingress kontrollerinden başlar. Browser-side araçların, güvenilmeyen bir host'a yapıştırılan secret'ları güvenli hâle getirdiğini varsaymayın. Amaç, trusted bir upstream image sunmak ve kullanıcılara self-hosting'in compromised bir browser'ı güvenilir hâle getirmediğini hatırlatmaktır.

IT Tools'u trusted bir pinned image'dan sunun, kitle private ise platform authentication ekleyin ve HTTPS üzerinden yalnızca 80 numaralı portu expose edin. Client browser memory, static asset delivery ve server-side database veya queue çalışmasının bulunmadığı durum etrafında resource ve request limit'leri belirleyin. Bu baseline'da built-in secret bulunmadığından access policy'yi route configuration içinde tutun ve policy'yi unauthorized bir client'tan test edin.

Riskli IT Tools değişikliğini prova edin

Yalnızca süreci değil, davranışı izleyin: arayüzü yükleyin, bir hash üretin, bir JWT decode edin ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullanın. Çevredeki pressure signal'lar client browser memory, static asset delivery ve server-side database veya queue çalışmasının bulunmamasıdır. Bu kontrolü startup sonrasında ve service'i aşırı yükleyemeyecek bir schedule üzerinde çalıştırın.

Bir update, image update'in client-side algorithm'leri veya dependency'leri değiştirebileceği test edildikten sonra promote edilebilir; bu nedenle sensitive input'u işleyen build'i pinleyin ve doğrulayın. Parallel bir candidate, pinned digest'ler ve bilinen input'lar kullanın; bu base image'in prova edilmesi gereken bir schema migration'ı yoktur. Proxy yanlış container portunu hedefliyor veya eski bir application shell'i cache'liyorsa ingress'i değiştirmeden ya da storage eklemeden önce iki version'ı karşılaştırın.

Bilinen iyi bir IT Tools deployment'ı kaydedin

IT Tools için ilk user traffic'i acceptance test'i yapmayın. Zararsız sample state hazırlayın ve “arayüzü yükle, bir hash üret, bir JWT decode et ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullan” eyleminin tamamını çalıştırın. Çalıştırmayla ilişkili tam public URL'yi, sonucu, image reference'ı ve log interval'ını not edin.

Container'ı replace edin ve data'yı yeniden build etmeden tekrarlayın. Ardından empty bir host üzerinde recovery yapın; fresh container, server-side user state olmadığı için aynı tool set'ini yeniden oluşturduğunda recovery koşulu karşılanmış olur. Her geçişte client browser memory'yi, static asset delivery'yi ve server-side database veya queue çalışmasının bulunmadığını gözlemleyin; idle container metric'leri yerine transaction'ın degraded olması etrafında bir alert tanımlayın.

Son bir kontrol bilerek başarısız olmalıdır: bu boundary ile ilişkili resource veya format limitine yakın zararsız bir input gönderin: proxy yanlış container portunu hedefliyor veya eski bir application shell'i cache'liyor. Ortaya çıkan IT Tools mesajının data deletion başlatmak ya da endless restart döngüsüne girmek yerine ilgili boundary'yi tanımladığını doğrulayın. Geçerli koşulu geri yükleyin ve aynı sample transaction'ın başarıyla tamamlandığını onaylayın. Bu kısa drill'i release checklist'e ekleyin.

Dockup deployment'ı da bir IT Tools acceptance test'i gerektirir

Dockup, pinned IT Tools image'ını Dockup compute'a veya müşterinin bağladığı bir server'a deploy edebilir, public hostname'i 80 numaralı porta route edebilir ve TLS'i otomatik olarak etkinleştirebilir. Standard container'ın application database'i yoktur; bu nedenle Dockup, stateful bir template'i taklit etmek amacıyla anlamsız bir data volume'ü attach etmemelidir.

Deployment sonrasında static web application'ı HTTPS üzerinden route edin. Dockup, operator şu local gereksinimi doğrularken IT Tools runtime settings'lerini korumalıdır: database yok; yalnızca küçük bir web container'ı var. Known-output check'i çalıştırın: arayüzü yükleyin, bir hash üretin, bir JWT decode edin ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullanın. Custom font'lar, authentication, collaboration veya configuration daha sonra eklenirse bu bileşenleri ve state'lerini açıkça tanımlayın; bunları stateless web image'ının içine katmayın. Böylece one-click deployment, Dockup'ın neyi yönettiği ve IT Tools'un gerçekte ne sakladığı konusunda dürüst kalır.

Sık sorulan sorular

Production deployment için IT Tools'un nelere ihtiyacı vardır?

IT Tools container'ını 80 numaralı port üzerinden tek bir HTTPS origin'e route edin. Standart IT Tools build'i bir database veya ayrı bir persistent runtime service gerektirmez. Arayüzü yükleyemeden, bir hash üretemeden, bir JWT decode edemeden ve asset'ler cache'lendikten sonra tarayıcı ağ bağlantısı kesikken bir converter kullanamadan IT Tools'u hazır kabul etmeyin.

Hangi IT Tools verileri backup'a dahil edilmelidir?

Standart IT Tools image'ının gerekli bir application-data mount'u yoktur. Deployment configuration'ını koruyun ve bağlı state'i ayrı olarak back up edin; fresh container, server-side user state olmadığı için aynı tool set'ini yeniden oluşturduğunda recovery başarılıdır.

Reverse proxy arkasında IT Tools için HTTPS gerekir mi?

Public IT Tools origin'i için HTTPS kullanın ve internal route üzerinde 80 numaralı portu koruyun. IT Tools setting'ini doğru uygulayın: static web application'ı HTTPS üzerinden route edin. IT Tools için HTTPS, credentials veya user content'in transit sırasında korunmasını ve origin-sensitive client davranışının tutarlı kalmasını sağlar.

IT Tools upgrade'i nasıl test edilmelidir?

Candidate IT Tools image'ını mevcut version'ın yanında deploy edin ve acceptance transaction'ı bilinen input'larla tekrarlayın. Bir image update'in client-side algorithm'leri veya dependency'leri değiştirebileceğini göz önünde bulundurun; bu nedenle sensitive input'u işleyen build'i pinleyin ve doğrulayın. Standard container'da data migration yoktur; output ve compatibility kontrolleri geçene kadar önceki digest'i saklayın.