Kurulum

Mikromax ERP projesinin kurulumu için tavsiye edilen yöntem Portainer üzerinden Docker stack yönetimi mekanizmasıdır. Stack tanımı ve ortam değişkenleri Portainer arayüzünden yönetilir; sunucuda herhangi bir docker-compose.yml veya .env dosyası bulundurmanıza gerek yoktur.

Projenin tamamında bağlantıların HTTPS protokolü üzerinden yürümesi gerektiği için servisler önünde bir Nginx reverse proxy kurulması gerekmektedir. Bunun için gerekli kurulum dokümanına buradan ulaşabilirsiniz.

Docker Yönetimi — Portainer

Docker ortamını kolayca yönetmek için Portainer kullanılmasını tavsiye ederiz. Portainer; konteyner başlatma, durdurma, log görüntüleme ve compose dosyası yönetimi gibi işlemleri web arayüzü üzerinden yapmanıza imkân tanır.

docker volume create portainer_data

docker run -d \
  --name portainer \
  --restart always \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Kurulumun ardından http://<sunucu-ip>:9000 adresinden Portainer arayüzüne erişebilirsiniz. Daha fazla bilgi için Portainer belgelerine bakınız.

Klasör Yapısı

Sunucuda /etc/mikromax dizini altında aşağıdaki yapıyı oluşturun:

/etc/mikromax/
└── nginx/
    ├── conf.d/             # Nginx servis konfigürasyonları
    └── certs/              # SSL sertifika dosyaları

Not: Stack tanımı ve ortam değişkenleri Portainer arayüzünden yönetildiği için sunucuda docker-compose.yml veya .env dosyası oluşturmanıza gerek yoktur.

Portainer Stack Tanımı

Portainer arayüzünde Stacks → Add stack menüsüne gidin ve yazılım ekibinden temin edilen docker-compose.environment.yaml dosyasının içeriğini Web editor alanına yapıştırın. Bu dosya tüm Mikromax servislerini tanımlar.

Ortam Değişkenleri

Stack tanımının altındaki Environment variables bölümünden ortam değişkenlerini girin. Yazılım ekibinden temin edilen .env.example dosyasındaki anahtarları referans alarak aşağıdaki alanları ortamınıza göre doldurun:

# Versiyon Etiketleri — yüklemek istediğiniz sürüme göre güncelleyin
IMAGE_TAG=latest
NOTIFICATOR_IMAGE_TAG=latest
IDENTITY_IMAGE_TAG=latest
# ... diğer servis etiketleri

# Alan adı
IDENTITY_AUTHORITY=https://identity.yourdomain.com
PUBLIC_URI=https://web.yourdomain.com

# Veritabanı bağlantı dizeleri
API_DB_DEFAULT_CONNECTION_STRING=Server=<db-host>;Database=ErpDb;...

# Gizli anahtarlar
API_CLIENT_SECRET=<your-secret>
WEB_CLIENT_SECRET=<your-secret>
# ... diğer servis gizli anahtarları

Tüm değişkenlerin tam listesi için yazılım ekibinden temin edilen .env.example dosyasına bakınız. Değişkenleri Portainer’da girdikten sonra Deploy the stack butonuna tıklayın.

Servisleri Başlatma

Servisleri başlatmak için Portainer arayüzündeki Stacks sayfasından stack’i seçin ve Start butonuna tıklayın.

Tüm konteynerlerin durumunu takip etmek için Portainer Containers sayfasını veya bireysel servis loglarını kullanabilirsiniz.

Migration Uygulama

Veri tabanı migrationlarını uygulamak için mmx-migrator servisi bir defaya mahsus çalıştırılmalıdır. Portainer arayüzünden Containers → Add container seçeneğiyle veya doğrudan terminalde şu komutla çalıştırabilirsiniz (<IMAGE_TAG> değerini kullanmak istediğiniz sürümle değiştirin):

docker run -it --rm \
  --env-file <(docker inspect --format='' $(docker ps -q -f name=mmx-api) | grep -v PATH) \
  mikromaxdocker/mmx-migrator:<IMAGE_TAG>

Ya da ortam değişkenlerini tek tek -e parametresiyle geçerek çalıştırabilirsiniz:

docker run -it --rm \
  -e API_DB_DEFAULT_CONNECTION_STRING="Server=<db-host>;Database=ErpDb;..." \
  mikromaxdocker/mmx-migrator:<IMAGE_TAG>