Skip to content

icarus-odak/odak-docker

Repository files navigation

Odak Docker Kurulumu

Bu belge, Odak projesini Docker Compose kullanarak kurma ve çalıştırma talimatlarını içerir. Proje; backend, veritabanı, RabbitMQ, Celery, Redis, Elasticsearch ve Kibana gibi birden çok servisi barındırmaktadır.

Ön Gereksinimler

  1. Docker ve Docker Compose Kurulumu:

  2. Depoyu Klonlama:

    git clone [https://github.com/icarus-odak/backend.git](https://github.com/icarus-odak/backend.git)
    cd backend/odak_docker
  3. Ortam Değişkenleri:

    • odak_docker dizininde gerekli ortam değişkenlerini içeren bir .env dosyası oluşturun.

Kurulum ve Çalıştırma

  1. Kurulum Betiğini Çalıştırma:

    • Servisleri kurmak ve başlatmak için sağlanan setup_and_run.sh betiğini kullanın:

      bash setup_and_run.sh
    • Bu betik, servisleri otomatik olarak derleyip başlatacak ve gerekli veritabanı migrasyonlarını çalıştıracaktır.

  2. Manuel Adımlar (İsteğe Bağlı):

    • Eğer manuel kurulumu tercih ederseniz, şu adımları izleyin:

      # Veritabanı servisini derleyip başlatın
      docker compose up -d db --build
      
      # Veritabanının başlaması için bekleyin
      sleep 10
      
      # Diğer tüm servisleri derleyip başlatın
      docker compose up -d --build
      
      # Backend konteynerında migrasyonları çalıştırın
      docker exec odak_backend python manage.py makemigrations
      docker exec odak_backend python manage.py makemigrations content
      docker exec odak_backend python manage.py migrate --noinput

Docker Compose Servisleri

1. Veritabanı (pgvector ile PostgreSQL)

  • Servis Adı: db
  • Açıklama: Uygulama verilerini depolar ve vektör tabanlı işlemleri destekler.

2. Backend

  • Servis Adı: backend
  • Açıklama: Django backend uygulaması.
  • Portlar: 8008:8000

3. RabbitMQ

  • Servis Adı: rabbitmq
  • Açıklama: Celery görevleri için mesaj kuyruğu (message broker).

4. Celery Worker

  • Servis Adı: celery
  • Açıklama: Asenkron görevleri yürütür.

5. Celery Beat

  • Servis Adı: celery-beat
  • Açıklama: Periyodik görevler için zamanlayıcı.

6. Redis

  • Servis Adı: redis
  • Açıklama: Web soketi ve verimli istek yönetimi için kullanılan bellek içi veri deposu.

7. Elasticsearch

  • Servis Adı: elasticsearch
  • Açıklama: Logları indeksler.

8. Kibana

  • Servis Adı: kibana
  • Açıklama: Elasticsearch verileri için görselleştirme aracı.
  • Portlar: 5601

9. Filebeat

  • Servis Adı: filebeat
  • Açıklama: Elasticsearch için log gönderici (log shipper).

Loglar ve Hata Ayıklama

  • Logları Görüntüleme:

    docker compose logs -f
  • Bir Servis Kabuğuna Erişme:

    docker exec -it <servis_adı> bash

Durdurma ve Temizleme

  • Servisleri Durdurma:

    docker compose down
  • Tüm Konteynerları Kaldırma:

    docker ps -a -q | xargs docker rm -f
  • Tüm Volümleri Kaldırma:

    docker volume prune

Releases

No releases published

Packages

 
 
 

Contributors

Languages