mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-24 00:35:10 +00:00
- 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.
11 KiB
11 KiB
Environment Variables Kılavuzu
Bu doküman, Frappe ERPNext Dokploy deployment'ında kullanılan tüm environment variable'ları detaylı olarak açıklar.
📋 İçindekiler
- Zorunlu Değişkenler
- Network ve Port Ayarları
- Frappe Framework Ayarları
- Nginx Ayarları
- Docker Image Ayarları
- Database Ayarları
- Redis Ayarları
- İsteğe Bağlı Ayarlar
- Gelişmiş Ayarlar
- Harici Servisler
- Örnek Konfigürasyonlar
Zorunlu Değişkenler
SITE_NAME
- Açıklama: Frappe site'ın domain adı veya hostname'i
- Varsayılan:
site1.localhost - Örnekler:
erp.yourdomain.com(production)site1.localhost(development)192.168.1.100(IP tabanlı)
- Notlar:
- Production'da gerçek domain kullanın
- DNS kaydı bu domain'i sunucunuza yönlendirmeli
- Subdomain kullanabilirsiniz
ADMIN_PASSWORD
- Açıklama: Administrator kullanıcısının şifresi
- Varsayılan:
admin(GÜVENSİZ!) - Gereksinimler:
- Minimum 12 karakter
- En az bir büyük harf
- En az bir küçük harf
- En az bir sayı
- En az bir özel karakter
- Örnekler:
MySecure@Pass123! - ⚠️ ÖNEMLİ: Production'da MUTLAKA değiştirin!
DB_PASSWORD
- Açıklama: MariaDB root kullanıcı şifresi
- Varsayılan:
changeit(GÜVENSİZ!) - Gereksinimler: Admin password ile aynı
- Örnekler:
DB@Secure456! - ⚠️ ÖNEMLİ:
- Production'da MUTLAKA değiştirin!
- Admin şifresinden farklı kullanın
- Asla paylaşmayın
Network ve Port Ayarları
HTTP_PORT
- Açıklama: Frontend Nginx servisinin publish edilecği port
- Varsayılan:
80 - Örnekler:
80(production HTTP)8080(development/test)443(HTTPS - Dokploy otomatik halleder)
- Notlar:
- Dokploy genelde otomatik port atar
- Local test için 8080 kullanabilirsiniz
- Production'da 80 veya 443 kullanın
Frappe Framework Ayarları
FRAPPE_SITE_NAME_HEADER
- Açıklama: HTTP header'dan site çözümlemesi
- Varsayılan:
$$host - Seçenekler:
$$host: Domain'den otomatik (önerilen)mysite: Sabit site adı
- Kullanım:
- Multi-site setup'larda domain'e göre site seçimi
- Single-site'da
$$hostkullanın
UPSTREAM_REAL_IP_ADDRESS
- Açıklama: Güvenilir upstream proxy adresi
- Varsayılan:
127.0.0.1 - Örnekler:
127.0.0.1(local)10.0.0.0/8(internal network)
- Kullanım: Reverse proxy arkasında çalışırken
UPSTREAM_REAL_IP_HEADER
- Açıklama: Real IP için kullanılacak header
- Varsayılan:
X-Forwarded-For - Seçenekler:
X-Forwarded-For(standart)X-Real-IPCF-Connecting-IP(Cloudflare)
UPSTREAM_REAL_IP_RECURSIVE
- Açıklama: Recursive real IP search
- Varsayılan:
off - Seçenekler:
on,off - Kullanım: Multiple proxy chain varsa
on
Nginx Ayarları
PROXY_READ_TIMEOUT
- Açıklama: Proxy okuma timeout süresi (saniye)
- Varsayılan:
120 - Önerilen:
- Development:
120 - Production:
300 - Heavy operations:
600
- Development:
- Kullanım:
- Uzun süren raporlar
- Büyük data export/import
- Kompleks hesaplamalar
CLIENT_MAX_BODY_SIZE
- Açıklama: Maximum upload dosya boyutu
- Varsayılan:
50m - Örnekler:
50m(development)100m(production)500m(large file support)
- Format: Nginx size format (k, m, g)
- Kullanım: Büyük dosya upload'ları için
Docker Image Ayarları
CUSTOM_IMAGE
- Açıklama: Kullanılacak Docker image adı
- Varsayılan:
erpnext-complete - Seçenekler:
erpnext-complete(local build)ghcr.io/ubden/frappe_docker/erpnext-complete(GitHub Registry)
- Kullanım: Production'da registry image kullanın
CUSTOM_TAG
- Açıklama: Docker image tag'i
- Varsayılan:
latest - Seçenekler:
latest: En son stabledevelop: Development branchv1.0.0: Specific versionmain: Main branch build
- Notlar: Production'da version tag kullanın
PULL_POLICY
- Açıklama: Image pull stratejisi
- Varsayılan:
build - Seçenekler:
build: Local'de build etalways: Her zaman registry'den çeknever: Sadece local imagemissing: Yoksa çek
- Önerilen:
- Development:
build - Production:
always
- Development:
RESTART_POLICY
- Açıklama: Container restart politikası
- Varsayılan:
unless-stopped - Seçenekler:
unless-stopped: Manuel durdurulmadıkça (önerilen)always: Her zamanon-failure: Sadece hata durumundano: Asla
- Önerilen: Production için
unless-stopped
Database Ayarları
DB_HOST
- Açıklama: MariaDB host adresi
- Varsayılan:
mariadb(docker-compose service name) - Örnekler:
mariadb(internal)db.example.com(external)192.168.1.50(IP)
- Notlar: External DB kullanıyorsanız değiştirin
DB_PORT
- Açıklama: MariaDB port
- Varsayılan:
3306 - Notlar: Standart MariaDB/MySQL portu
MARIADB_VERSION
- Açıklama: MariaDB image versiyonu
- Varsayılan:
10.6 - Seçenekler:
10.6,10.11,11.0 - Önerilen: Frappe ile test edilmiş versiyon
Redis Ayarları
REDIS_CACHE
- Açıklama: Redis cache connection string
- Varsayılan:
redis-cache:6379 - Format:
host:port - Örnekler:
redis-cache:6379(internal)redis.example.com:6379(external)redis://redis-cache:6379/0(full URL)
REDIS_QUEUE
- Açıklama: Redis queue connection string
- Varsayılan:
redis-queue:6379 - Format: Aynı REDIS_CACHE ile
- Notlar: Cache ve queue için ayrı instance önerilir
REDIS_VERSION
- Açıklama: Redis image versiyonu
- Varsayılan:
7 - Seçenekler:
6,7 - Önerilen: En son stable (7)
İsteğe Bağlı Ayarlar
ERPNEXT_VERSION
- Açıklama: ERPNext versiyonu (build için)
- Varsayılan:
version-15 - Örnekler:
v15.82.1,version-15,develop
FRAPPE_BRANCH
- Açıklama: Frappe framework branch
- Varsayılan:
version-15 - Örnekler:
version-15,develop,version-14
PYTHON_VERSION
- Açıklama: Python versiyonu
- Varsayılan:
3.11.6 - Önerilen: Frappe requirements ile uyumlu
NODE_VERSION
- Açıklama: Node.js versiyonu
- Varsayılan:
20.19.2 - Önerilen: LTS versiyon
Gelişmiş Ayarlar
SOCKETIO_PORT
- Açıklama: Socket.IO internal port
- Varsayılan:
9000 - Notlar: Genelde değiştirmeyin
DEVELOPER_MODE
- Açıklama: Developer mode aktif/pasif
- Varsayılan:
0(kapalı) - Seçenekler:
0(kapalı),1(açık) - ⚠️ ÖNEMLİ: Production'da MUTLAKA
0
MAINTENANCE_MODE
- Açıklama: Maintenance mode
- Varsayılan:
0(kapalı) - Seçenekler:
0(kapalı),1(açık) - Kullanım: Güncelleme sırasında
Harici Servisler
DB_PASSWORD_SECRETS_FILE
- Açıklama: Docker secrets dosya yolu
- Format:
/run/secrets/db_password - Kullanım: Docker secrets kullanıyorsanız
External Database
DB_HOST=external-db.example.com
DB_PORT=3306
DB_PASSWORD=ExternalDBPass123!
External Redis
REDIS_CACHE=external-redis.example.com:6379
REDIS_QUEUE=external-redis.example.com:6380
Örnek Konfigürasyonlar
Development Setup
# .env (Development)
SITE_NAME=dev.localhost
ADMIN_PASSWORD=admin
DB_PASSWORD=dev123
HTTP_PORT=8080
PULL_POLICY=build
DEVELOPER_MODE=1
PROXY_READ_TIMEOUT=120
CLIENT_MAX_BODY_SIZE=50m
Staging Setup
# .env (Staging)
SITE_NAME=staging.yourdomain.com
ADMIN_PASSWORD=Staging@Pass123!
DB_PASSWORD=Staging@DB456!
HTTP_PORT=80
PROXY_READ_TIMEOUT=300
CLIENT_MAX_BODY_SIZE=100m
PULL_POLICY=always
CUSTOM_IMAGE=ghcr.io/ubden/frappe_docker/erpnext-complete
CUSTOM_TAG=develop
RESTART_POLICY=unless-stopped
Production Setup
# .env (Production)
SITE_NAME=erp.yourdomain.com
ADMIN_PASSWORD=Prod@VerySecurePass789!
DB_PASSWORD=Prod@DBVerySecure012!
HTTP_PORT=80
PROXY_READ_TIMEOUT=300
CLIENT_MAX_BODY_SIZE=100m
PULL_POLICY=always
RESTART_POLICY=unless-stopped
CUSTOM_IMAGE=ghcr.io/ubden/frappe_docker/erpnext-complete
CUSTOM_TAG=v1.0.0
DEVELOPER_MODE=0
MAINTENANCE_MODE=0
LETSENCRYPT_EMAIL=admin@yourdomain.com
High-Performance Setup
# .env (High-Performance)
SITE_NAME=erp.enterprise.com
ADMIN_PASSWORD=Enterprise@SecurePass999!
DB_PASSWORD=Enterprise@DBSecure999!
PROXY_READ_TIMEOUT=600
CLIENT_MAX_BODY_SIZE=500m
MARIADB_VERSION=10.11
REDIS_VERSION=7
# External services
DB_HOST=db-cluster.internal
REDIS_CACHE=redis-cluster.internal:6379
REDIS_QUEUE=redis-cluster.internal:6380
Best Practices
Güvenlik
-
Güçlü Şifreler
- Minimum 12 karakter
- Karakter çeşitliliği
- Password manager kullanın
-
Environment Separation
- Dev, staging, production için ayrı .env
- Farklı şifreler kullanın
-
Secret Management
- .env dosyasını Git'e commit etmeyin
- Hassas bilgileri şifreleyin
- Docker secrets kullanmayı düşünün
Performance
-
Timeout Ayarları
- İş yüküne göre ayarlayın
- Monitoring ile optimize edin
-
Resource Limits
- Upload limit'i gerçekçi belirleyin
- Database connection sayısını ayarlayın
-
Caching
- Redis memory'i optimize edin
- Cache invalidation stratejisi
Maintenance
-
Version Pinning
- Production'da specific version kullanın
- Güncellemeleri kontrollü yapın
-
Backup
- .env dosyasını güvenli yerde saklayın
- Disaster recovery planı
-
Documentation
- Değişiklikleri dokümante edin
- Team ile paylaşın
Troubleshooting
Variable Tanınmıyor
# .env dosyasının doğru yerde olduğundan emin olun
ls -la .env
# Docker Compose'a .env dosyasını belirtin
docker-compose --env-file .env up
Değişiklikler Uygulanmıyor
# Container'ları yeniden başlatın
docker-compose down
docker-compose up -d
# Image'i yeniden build edin
docker-compose build --no-cache
Şifre Çalışmıyor
# Özel karakterleri escape edin veya tırnak kullanın
ADMIN_PASSWORD='MyPass@123!'
# Veya
ADMIN_PASSWORD="MyPass@123!"
Referanslar
- Docker Compose Environment Variables
- Frappe Framework Docs
- Nginx Configuration
- MariaDB Configuration
Son Güncelleme: 2025-10-13
Versiyon: 1.0.0