frappe_docker/dokploy/DEPLOYMENT.md
ubden 3e9c8bbd4e feat: Complete Dokploy setup with modular structure and extensive documentation
- Added Dokploy setup documentation including Dockerfile, Docker Compose configurations, and automation scripts.
- Integrated 9 applications (ERPNext, CRM, LMS, Builder, Print Designer, Payments, Wiki, Twilio Integration, ERPNext Shipping) into a single image.
- Implemented health checks, production optimizations, and CI/CD workflows with GitHub Actions.
- Created comprehensive guides for environment variables, deployment, and modular setup.
- Introduced a checklist for deployment and a changelog for tracking changes.
2025-10-13 22:51:01 +03:00

8 KiB
Raw Blame History

Dokploy Deployment Kılavuzu

Bu kılavuz, Frappe ERPNext'i Dokploy'da deploy etmek için adım adım talimatları içerir.

Ön Gereksinimler

  1. Dokploy kurulu bir sunucu
  2. En az 4GB RAM ve 20GB disk alanı
  3. Domain adı (isteğe bağlı, localhost ile de çalışır)

Deployment Yöntemleri

Yöntem 1: Dokploy UI ile GitHub'dan Deploy (En Kolay)

  1. Dokploy Dashboard'a Giriş

    • Dokploy panel adresinize gidin (örn: https://dokploy.example.com)
    • Giriş yapın
  2. Yeni Proje Oluşturma

    • Sol menüden "Projects" seçeneğine tıklayın
    • "Create Project" butonuna tıklayın
    • Proje adı: frappe-erpnext
    • ıklama: Frappe ERPNext with all apps
  3. Yeni Service Oluşturma

    • Oluşturduğunuz projenin içinde "Add Service" butonuna tıklayın
    • Service Type: Docker Compose
    • Service Name: erpnext-complete
  4. Git Repository Bağlama

    • Repository Type: GitHub
    • Repository URL: https://github.com/ubden/frappe_docker
    • Branch: main
    • Compose File Path: dokploy/docker-compose.yml
  5. Environment Variables Ayarlama

    Aşağıdaki değişkenleri ekleyin:

    SITE_NAME=erp.yourdomain.com
    ADMIN_PASSWORD=your_secure_password_here
    DB_PASSWORD=your_db_password_here
    HTTP_PORT=80
    

    ÖNEMLİ:

    • SITE_NAME değerini domain adınız veya IP adresiniz ile değiştirin
    • ADMIN_PASSWORD ve DB_PASSWORD için güçlü şifreler kullanın
    • Şifreleri "Secret" olarak işaretleyin
  6. Domain Yapılandırması (İsteğe Bağlı)

    • "Domains" sekmesine gidin
    • Domain adınızı ekleyin (örn: erp.yourdomain.com)
    • SSL sertifikası için "Enable HTTPS" seçeneğini işaretleyin
  7. Deploy

    • "Deploy" butonuna tıklayın
    • Deployment loglarını izleyin
    • İlk deployment 10-15 dakika sürebilir (image build ve tüm uygulamaların kurulumu)
  8. Deployment Durumunu Kontrol

    • "Logs" sekmesinden container loglarını izleyin
    • "create-site" servisinin başarıyla tamamlandığından emin olun
    • Tüm servislerin "healthy" durumunda olmasını bekleyin

Yöntem 2: CLI ile Deploy

  1. Dokploy CLI Kurulumu

    npm install -g @dokploy/cli
    
  2. Login

    dokploy login https://your-dokploy-instance.com
    
  3. Proje Oluşturma

    dokploy project create frappe-erpnext
    
  4. Service Deploy

    cd dokploy
    dokploy deploy \
      --project frappe-erpnext \
      --service erpnext-complete \
      --compose docker-compose.yml \
      --env .env
    

Yöntem 3: Manuel Docker Compose

Dokploy kullanmadan direkt sunucuda:

# Repository'yi klonlayın
git clone https://github.com/ubden/frappe_docker.git
cd frappe_docker/dokploy

# .env dosyasını düzenleyin
nano .env

# Deploy
chmod +x install.sh
./install.sh

Deployment Sonrası

İlk Giriş

  1. Browser'da site adresinize gidin: http://your-site-name veya https://your-domain.com
  2. Giriş bilgileri:
    • Username: Administrator
    • Password: .env dosyasında belirlediğiniz ADMIN_PASSWORD

Kurulu Uygulamaları Kontrol

  1. Sol menüden "App Manager" seçeneğine gidin (veya /app URL'sine)
  2. Aşağıdaki uygulamaların kurulu olduğunu doğrulayın:
    • ERPNext
    • CRM
    • LMS
    • Builder
    • Print Designer
    • Payments
    • Wiki
    • Twilio Integration
    • ERPNext Shipping

İlk Yapılandırma

  1. System Settings

    • Setup Wizard'ı tamamlayın (şirket bilgileri, para birimi vb.)
  2. Email Ayarları

    • Email Account oluşturun (SMTP ayarları)
    • Notifications için email göndericisini ayarlayın
  3. Kullanıcı Oluşturma

    • Ek kullanıcılar oluşturun
    • Roller ve izinler atayın

Güncelleme

Dokploy UI ile

  1. Dokploy dashboard'da service'inize gidin
  2. "Redeploy" butonuna tıklayın
  3. Yeni image build edilecek ve container'lar güncellenecektir

Manuel Güncelleme

# Container'a bağlanın
docker exec -it <backend-container-name> bash

# Uygulamaları güncelleyin
cd /home/frappe/frappe-bench
bench update --reset

# Site'ı migrate edin
bench --site <site-name> migrate

# Assets'leri build edin
bench build

# Container'ları yeniden başlatın
exit
docker-compose restart

Backup ve Restore

Otomatik Backup (Cron ile)

  1. compose.backup-cron.yaml dosyasını kullanın:
    docker-compose -f docker-compose.yml -f ../overrides/compose.backup-cron.yaml up -d
    

Manuel Backup

# Container'a girin
docker exec -it <backend-container-name> bash

# Backup oluştur
bench --site <site-name> backup --with-files

# Backup'ları listele
ls -lh sites/<site-name>/private/backups/

Restore

# Container'a girin
docker exec -it <backend-container-name> bash

# Database restore
bench --site <site-name> --force restore \
  /home/frappe/frappe-bench/sites/<site-name>/private/backups/[database-file].sql.gz

# Files restore (isteğe bağlı)
bench --site <site-name> --force restore \
  --with-private-files /path/to/private-files.tar \
  --with-public-files /path/to/public-files.tar

Monitoring ve Loglar

Dokploy Dashboard

  • "Logs" sekmesinden tüm servislerin loglarını görebilirsiniz
  • "Metrics" sekmesinden kaynak kullanımını izleyebilirsiniz

CLI ile

# Tüm servislerin logları
docker-compose logs -f

# Belirli bir servisin logları
docker-compose logs -f backend

# Create-site servisinin logları
docker-compose logs create-site

Performans Optimizasyonu

Database

docker-compose.yml içinde MariaDB ayarlarını günceleyin:

mariadb:
  command:
    - --innodb-buffer-pool-size=4G  # RAM'in %50-75'i
    - --innodb-log-file-size=1G
    - --max-connections=1000

Gunicorn Workers

Backend servisi için worker sayısını artırın:

backend:
  command:
    - gunicorn
    - --workers=4  # CPU core sayısı x 2
    - --threads=8

Troubleshooting

Site açılmıyor

# Container'ların durumunu kontrol et
docker-compose ps

# Backend loglarını kontrol et
docker-compose logs backend

# Database bağlantısını kontrol et
docker-compose exec mariadb mysql -u root -p

"Site not found" hatası

# Site'ların listesini kontrol et
docker-compose exec backend bench --site all list-apps

# Site config'i kontrol et
docker-compose exec backend cat sites/<site-name>/site_config.json

Yavaş çalışıyor

  1. Redis memory'yi kontrol edin
  2. MariaDB buffer pool'u artırın
  3. Worker sayısını artırın
  4. Server kaynaklarını kontrol edin (CPU, RAM, Disk I/O)

Database bağlantı hatası

# MariaDB healthy mi kontrol et
docker-compose ps mariadb

# MariaDB loglarını kontrol et
docker-compose logs mariadb

# Manuel bağlantı testi
docker-compose exec backend wait-for-it mariadb:3306 -t 30

Güvenlik

Şifreleri Güncelleme

# Administrator şifresini değiştir
docker-compose exec backend bench --site <site-name> set-admin-password <new-password>

# Database şifresini değiştir (dikkatli olun!)
# Hem database'de hem de site_config.json'da güncelleyin

SSL/HTTPS

Dokploy otomatik olarak Let's Encrypt sertifikası oluşturabilir:

  1. Domain'inizi DNS'e ekleyin
  2. Dokploy'da domain'i ekleyin
  3. "Enable HTTPS" seçeneğini işaretleyin

Firewall

Sadece gerekli portlarıın:

  • 80 (HTTP)
  • 443 (HTTPS)
  • 22 (SSH - sadece güvenli IP'lerden)

Destek

Yararlı Komutlar

# Container'lara bağlan
docker-compose exec backend bash
docker-compose exec mariadb bash

# Servisleri yeniden başlat
docker-compose restart

# Logları temizle
docker-compose logs --tail=100

# Volumes'ları temizle (DİKKAT: Tüm veriler silinir!)
docker-compose down -v

# Resource kullanımını göster
docker stats

# Container'ları güncelle
docker-compose pull
docker-compose up -d