2026'da DokuWiki Nasıl Self-Host Edilir: Dosya Depolama, ACL'ler ve Yedekler
Docker, portlar, kalıcı veriler, TLS, güvenlik, yedekler ve production kullanımını engelleyen hataları kapsayan pratik bir DokuWiki self-hosting rehberi. Kontroller dahil.
DokuWiki'yi bir Docker image'ı olarak değil, küçük bir sistem olarak ele alın. DokuWiki'nin kullanıcıya dönük amacı nettir: veritabanına ihtiyaç duymayan, dosya tabanlı bir wiki. Deployment ancak kurulum kimlik bilgilerini değiştirebildiğinizde, bir sayfayı düzenleyebildiğinizde, medya yükleyebildiğinizde, ACL uygulayabildiğinizde, bir revizyonu görüntüleyebildiğinizde ve eski bir sürümü geri yükleyebildiğinizde kabul edilebilir durumdadır.
Bu ayrım, operatörlerin local testlerden sonra karşılaştığı arıza modunu ortaya çıkarır: UI yüklenmesine rağmen dosya sahipliği sayfaların kaydedilmesini engeller. Ayrıca yedekleme ve upgrade planını test edilebilecek kadar somut hâle getirir.
Portlar, process'ler ve private servisler
DokuWiki'nin network namespace'i ile başlayın: web listener'ı 80 numaralı porttur; laptop tutorial'ından kopyalanmış bir host portu değildir. Local runtime gereksinimi, sayfaları, medyayı ve ACL'leri içeren kalıcı bir config volume'üdür. Bunu bir image default'u olarak bırakmak yerine beklenen kapasiteyi, sahipliği ve failure mode'u belgeleyin.
Gereksinim karşılandıktan sonra uçtan uca senaryoyu çalıştırın — kurulum kimlik bilgilerini değiştirin, bir sayfayı düzenleyin, medya yükleyin, bir ACL uygulayın, bir revizyonu görüntüleyin ve eski bir sürümü geri yükleyin. Filesystem metadata'sı, media volume'ü, search indexing ve PHP worker'ları için log'ları ve ölçümleri kaydedin. Bu kanıt, bilinen ilk iyi mimariyi oluşturur ve Dockup compute ile bağlı bir server arasındaki sonraki geçişleri test edilebilir hâle getirir.
DokuWiki için failure drill'leri
Çalışır durumdaki bir container gereklidir ancak tek başına yeterli değildir. Service-level indicator, “kurulum kimlik bilgilerini değiştirme, bir sayfayı düzenleme, medya yükleme, bir ACL uygulama, bir revizyonu görüntüleme ve eski bir sürümü geri yükleme” işleminin başarıyla tamamlanmasıdır. Olası pressure signal'ları ise filesystem metadata'sı, media volume'ü, search indexing ve PHP worker'larıdır.
Plugin'ler ve template'ler, düz sayfa dosyaları okunabilir durumda kalsa bile DokuWiki sürümlerinin gerisinde kalabildiğinden change control önemlidir. Eski image'ı koruyun, migration'ları kopyalanmış state üzerinde test edin ve schema taşındıktan sonra rollback'in desteklenip desteklenmediğini belgeleyin. UI yüklenmesine rağmen dosya sahipliği sayfaların kaydedilmesini engelliyorsa, çalışan ortamdan farklı olan ilk sınırı teşhis edin.
Bilinen iyi bir DokuWiki deployment'ını kaydedin
DokuWiki için bir release candidate, sabit bir senaryoyu tamamlayarak trafiği hak eder: kurulum kimlik bilgilerini değiştirme, bir sayfayı düzenleme, medya yükleme, bir ACL uygulama, bir revizyonu görüntüleme ve eski bir sürümü geri yükleme. Image digest'ini, secret içermeyen etkin configuration'ı, public origin'i ve bu senaryoya ait timestamp'leri kaydedin. Test verileri disposable olmalı, ancak kullanıcıların izlediği yolu çalıştıracak kadar gerçekçi olmalıdır.
Runtime'ı değiştirdikten sonra çalıştırın ve ardından servisi sayfalardan, medyadan, metadata'dan, kullanıcılardan, ACL'lerden ve plugin'lerden yeniden oluşturun. Recovery, sayfalar, revizyonlar, medya, kullanıcılar, ACL'ler ve plugin'ler geri geldiğinde ve korumalı sayfa korumalı kalmaya devam ettiğinde başarılıdır. Filesystem metadata'sı, media volume'ü, search indexing ve PHP worker'ları için resource ölçümlerini önceki release ile karşılaştırın ve promotion öncesinde anlamlı sapmaları araştırın.
Son olarak şu kontrollü failure senaryosunu çalıştırın: bu sınırla ilişkili resource veya format limitinin yakınında zararsız bir input gönderin: dosya sahipliği, UI yüklenmesine rağmen sayfaların kaydedilmesini engeller. DokuWiki'nin failure'ı açıkladığını, mevcut state'e zarar vermediğini ve geçerli koşul geri döndüğünde çalışmaya devam ettiğini doğrulayın. Redact edilmiş bir log excerpt'ini ve recovery süresini kaydedin. Bu kontroller birlikte yalnızca process uptime'ını değil; davranışı, dayanıklılığı ve işletilebilirliği kapsar.
İlk production-shaped instance'ı çalıştırın
Her önemli seçimi görünür kılan bir command kullanın. Bu baseline, DokuWiki'yi host loopback'e bind eder, bilinen data mount'larını ekler ve ilk gerekli setting'i sağlar. Exposure'dan önce local gereksinimi doğrulayın: sayfaları, medyayı ve ACL'leri içeren kalıcı bir config volume'ü.
docker run -d \
--name dokuwiki \
--restart unless-stopped \
-p 127.0.0.1:80:80 \
-v dokuwiki-data:/config \
lscr.io/linuxserver/dokuwiki:latest
Değişken tag'leri test edilmiş bir version veya digest ile değiştirin. Başlangıçtan sonra docker logs --tail 200 dokuwiki çıktısını inceleyin ve process'in 80 numaralı portu dinlediğini doğrulayın. Ardından DokuWiki acceptance action'ını çalıştırın; root-page response, uçtan uca senaryonun başarıyla tamamlandığını kanıtlayamaz: kurulum kimlik bilgilerini değiştirin, bir sayfayı düzenleyin, medya yükleyin, bir ACL uygulayın, bir revizyonu görüntüleyin ve eski bir sürümü geri yükleyin.
Volume'ler yalnızca ilk recovery katmanıdır
DokuWiki için redeploy güvenliği sayfalarla, medyayla, metadata'yla, kullanıcılarla, ACL'lerle ve plugin'lerle başlar. Bootstrap işleminden önce /config'i mount edin, zararsız örnek veriler yazın ve bu path'in gerçekten kalıcı olduğunu kanıtlamak için container'ı değiştirin. Zararsız örnek veriler mevcutken container'ı değiştirerek path'i test edin; bu işlem mount'ların bir directory fazla yukarıya veya aşağıya yönlendirilmesini ortaya çıkarır.
Sonraki adımda boş bir host üzerinde disaster recovery'yi test edin. Gerektiğinde application-consistent bir database export kullanın ve sayfaların, revizyonların, medyanın, kullanıcıların, ACL'lerin ve plugin'lerin geri geldiğini, korumalı sayfanın da korumalı kaldığını doğrulayın. Test edilmiş restore içeren database backup rehberi, yalnızca bir archive file oluşturulduğunu kontrol etmekten daha güçlü bir hedef sunar.
DokuWiki'ye tek bir canonical adres verin
TLS issuance, DokuWiki route'unun yalnızca yarısıdır. Wiki'yi HTTPS üzerinden sunun ve canonical base URL'sini ayarlayın. Trafiği dahili olarak 80 numaralı porta gönderin ve oluşturulan URL'lerin ve secure cookie'lerin tutarlı kalması için external scheme'i forward edin.
DokuWiki senaryosunun tamamını yalnızca root page üzerinden değil, temiz bir network'ten çalıştırın. 502 veya certificate failure sorunları automatic domain and TLS setup ile yalıtılabilir. Trafik process'e ulaşıyor ve dosya sahipliği, UI yüklenmesine rağmen sayfaların kaydedilmesini engelliyorsa, redirect'leri üst üste eklemek yerine bu koşulu oluştuğu yerde teşhis edin.
Geçici setup erişimini kapatın
Yalnızca login formunu değil, DokuWiki'nin gerçekleştirdiği action'ı threat model'leyin. Buradaki yüksek riskli hata, installer veya registration ayarlarını açık bırakmaktır. Şu sınırı uygulayın: installer erişimini kaldırın, registration'ı gözden geçirin ve ACL dosyalarını page content ile birlikte koruyun.
Bu baseline'da DokuWiki'nin zorunlu bir bootstrap secret'ı yoktur; bunun yerine gerçek administrator hesabını veya upstream authentication'ı koruyun. Bir permission error'ı container'ı root olarak çalıştırarak veya host'u geniş kapsamlı mount ederek çözmeye çalışmayın. Filesystem metadata'sı, media volume'ü, search indexing ve PHP worker'ları kullanıcılar tarafından tetiklenebildiğinde resource limit'leri de security design'ın parçasıdır.
Platform katmanı için Dockup kullanın
Bir Dockup template'i image'ı, 80 numaralı portu, mount'ları, health timing'i, domain'i, TLS'i ve secret delivery'yi tanımlamalıdır. Operatör şu local gereksinimi doğrularken Dockup, DokuWiki runtime ayarlarını korumalıdır: sayfaları, medyayı ve ACL'leri içeren kalıcı bir config volume'ü. Aynı deployment, Dockup server'larını veya müşterinin bağlı kapasitesini hedefleyebilir.
Route aktif olduktan sonra public setting'i uygulayın ve kurulum kimlik bilgilerini değiştirmeyi, bir sayfayı düzenlemeyi, medya yüklemeyi, bir ACL uygulamayı, bir revizyonu görüntülemeyi ve eski bir sürümü geri yüklemeyi deneyin. Sayfaları, medyayı, metadata'yı, kullanıcıları, ACL'leri ve plugin'leri yedekleyin ve restore çalışmasını operating plan'ın içinde tutun; bunlar infrastructure provisioning sonrasında da görünür kalan DokuWiki sorumluluklarıdır.
Sık sorulan sorular
Production deployment için DokuWiki'nin neye ihtiyacı vardır?
DokuWiki container'ını tek bir HTTPS origin üzerinden 80 numaralı porta yönlendirin. Local runtime gereksinimi, sayfaları, medyayı ve ACL'leri içeren kalıcı bir config volume'üdür. Kurulum kimlik bilgilerini değiştirebildiğinizde, bir sayfayı düzenleyebildiğinizde, medya yükleyebildiğinizde, bir ACL uygulayabildiğinizde, bir revizyonu görüntüleyebildiğinizde ve eski bir sürümü geri yükleyebildiğinizde DokuWiki'yi hazır kabul edin.
Hangi DokuWiki verileri yedeğe dahil edilmelidir?
/config'i kalıcı hâle getirin ve sayfaları, medyayı, metadata'yı, kullanıcıları, ACL'leri ve plugin'leri aynı recovery manifest'ine dahil edin. Temiz bir DokuWiki restore işlemi, yalnızca sayfalar, revizyonlar, medya, kullanıcılar, ACL'ler ve plugin'ler geri geldiğinde ve korumalı sayfa korumalı kalmaya devam ettiğinde başarılıdır.
Reverse proxy arkasında DokuWiki için HTTPS gerekir mi?
Public DokuWiki origin'i için HTTPS kullanın ve internal route üzerinde 80 numaralı portu koruyun. DokuWiki setting'ini doğru uygulayın: wiki'yi HTTPS üzerinden sunun ve canonical base URL'sini ayarlayın. DokuWiki için HTTPS, credentials veya user content'in transit sırasında korunmasını ve origin'e duyarlı client davranışının tutarlı kalmasını sağlar.
Bir DokuWiki upgrade'i nasıl test edilmelidir?
Mevcut DokuWiki state'ini izole bir deployment'a restore edin, candidate version'ı uygulayın ve acceptance transaction'ını tekrarlayın. Plugin'ler ve template'ler, düz sayfa dosyaları okunabilir durumda kalsa bile DokuWiki sürümlerinin gerisinde kalabildiğinden özellikle dikkatli olun. Data migration ve rollback sınırları anlaşılana kadar önceki DokuWiki image'ını koruyun.
