Wiki.js'i Docker ile Dağıtma: Kapsamlı Bir Kılavuz

Docker aracılığıyla Wiki.js'i kendin barındırma konusunda kapsamlı bir kılavuz, optimize edilmiş dağıtım stratejileri, güvenlik güçlendirmeleri ve üretim en iyi uygulamalarını kapsar.

Satış ortaklığı açıklaması Bazı bağlantılar satış ortaklığı bağlantılarıdır. Bu bağlantılardan alışveriş yaptığınızda komisyon kazanabiliriz. Sipariş vermeden önce güncel fiyatları ve teklifleri sağlayıcıdan doğrulayın.

Bu sayfada
  1. Temel Altyapı Gereksinimleri
  2. Üretim Düzeyinde Docker Dağıtımı
  3. Güvenlik Güçlendirme Kontrol Listesi
  4. Performans Optimizasyonu
  5. Bakım Operasyonları

Wiki.js'i Docker ile Dağıtma: Kapsamlı Bir Kılavuz
Docker aracılığıyla Wiki.js'i kendin barındırmak, esnekliği kurumsal düzeyde belgeleme yetenekleriyle birleştirir. Bu kılavuz, optimize edilmiş dağıtım stratejilerini, güvenlik güçlendirmelerini ve üretim en iyi uygulamalarını kapsar.


Temel Altyapı Gereksinimleri

Temel Bileşenler:

  • Docker Engine 24+ & Docker Compose 2.21+
  • PostgreSQL 15+ (önerilir) veya MySQL 8+
  • Minimum 2 vCPU/4GB RAM (eşzamanlı kullanıcı sayısına göre ölçeklenir)
  • Ana işletim sistemi olarak Ubuntu 22.04 LTS veya RHEL 8.5+

Ağ Hazırlığı:

# Özel Docker ağı oluştur  
docker network create wikinet  
# Güvenli DB kimlik bilgileri oluştur  
mkdir -p /etc/wiki && openssl rand -base64 32 > /etc/wiki/.db-secret  

Üretim Düzeyinde Docker Dağıtımı

Seçenek 1: Docker Compose (Önerilir)

version: "3.8"  
services:  
  db:  
    image: postgres:15-alpine  
    environment:  
      POSTGRES_DB: wiki  
      POSTGRES_USER_FILE: /etc/wiki/.db-secret  
      POSTGRES_PASSWORD_FILE: /etc/wiki/.db-secret  
    volumes:  
      - pgdata:/var/lib/postgresql/data  
    networks:  
      - wikinet  

  wiki:  
    image: ghcr.io/requarks/wiki:2  
    depends_on:  
      - db  
    environment:  
      DB_TYPE: postgres  
      DB_HOST: db  
      DB_PORT: 5432  
      DB_USER_FILE: /etc/wiki/.db-secret  
      DB_PASS_FILE: /etc/wiki/.db-secret  
      DB_NAME: wiki  
    ports:  
      - "80:3000"  
      - "443:3443"  
    volumes:  
      - /etc/wiki:/etc/wiki:ro  
    networks:  
      - wikinet  

volumes:  
  pgdata:  
networks:  
  wikinet:  
    external: true  

docker compose up -d ile başlayın

Seçenek 2: Manuel Docker Dağıtımı

# Veritabanı konteyneri  
docker run -d --name=wiki-db \  
  -v pgdata:/var/lib/postgresql/data \  
  -e POSTGRES_DB=wiki \  
  -e POSTGRES_USER=wiki \  
  --network=wikinet \  
  postgres:15-alpine  

# Wiki.js konteyneri  
docker run -d --name=wiki \  
  -e DB_TYPE=postgres \  
  -e DB_HOST=wiki-db \  
  -e DB_PORT=5432 \  
  -e DB_USER=wiki \  
  -p 80:3000 \  
  --network=wikinet \  
  ghcr.io/requarks/wiki:2  

Güvenlik Güçlendirme Kontrol Listesi

  1. Gizli Bilgilerin Yönetimi

    • Kimlik bilgilerini şifrelenmiş Docker gizli bilgileri olarak saklayın
    echo "wikijsrocks" | docker secret create db_password -  
    
  2. Ağ İzolasyonu

    services:  
      db:  
        networks:  
          wikinet:  
            aliases:  
              - database.internal  
    
  3. SSL Yapılandırması

    environment:  
      LETSENCRYPT_DOMAIN: wiki.example.com  
      LETSENCRYPT_EMAIL: [email protected]  
      SSL_ACTIVE: "1"  
    
  4. Kaynak Sınırları

    deploy:  
      resources:  
        limits:  
          cpus: '2'  
          memory: 4G  
    

Performans Optimizasyonu

  • Önbellekleme: Redis'i -e REDIS_ENABLED=true ile etkinleştirin
  • Varlık Sıkıştırması:
    gzip_types text/plain text/css application/json application/javascript;  
    
  • Veritabanı İndeksleme:
    CREATE INDEX CONCURRENTLY page_content_idx ON pages USING gin(to_tsvector('english', content));  
    

Bakım Operasyonları

Yedekleme Stratejisi:

# Günlük DB anlık görüntüsü  
docker exec wiki-db pg_dump -U wiki -d wiki > wiki_backup_$(date +%s).sql  

# Versiyon kontrolü yapılmış içerik  
docker exec wiki rsync -av /wiki/data /mnt/wiki-snapshots/  

Güncelleme Prosedürü:

docker pull ghcr.io/requarks/wiki:2  
docker stop wiki && docker rm wiki  
# Güncellenmiş imaj ile konteyneri yeniden oluştur  
docker compose up -d --force-recreate  

Felaket Kurtarma

graph LR  
A[Wiki Konteyneri] --> B[Günlük SQL Yedekleri]  
A --> C[Git Destekli Depolama]  
B --> D(S3 Bucket)  
C --> E(GitLab Repo)  

Otomatik ölçeklendirme ve 7/24 izleme gerektiren kurumsal dağıtımlar için, yerleşik güvenlik uyumluluğu ve kenar önbellekleme ile LightNode'un yönetilen Docker barındırma hizmetini değerlendirin.


Sorun Giderme SSS

  • 502 Bad Gateway: Veritabanı bağlantı dizelerini kontrol edin
  • Yavaş Sayfa Yüklemeleri: pg_trgm uzantısının etkin olduğunu doğrulayın
  • SSL Hataları: Sertifikaları docker exec wiki node /wiki/scripts/refresh-letsencrypt ile yenileyin

Bu dağıtım modeli, 4 vCPU/16GB RAM yapılandırmalarında 15k RPM (dakikada istek) işlemlerini başarıyla yönetmektedir. Haftalık sağlık kontrolleri crawl4ai-doctor --security-check kullanılarak, yaygın sorunların %93'ünü önleyebilir.

Daha Fazla VPS

Önerilen sağlayıcıyı ve konuma göre VPS kılavuzlarını inceleyin.