Ubuntu 24.04 üzerinde Docker'da Odoo 19 Kurulumu: Eksiksiz Kılavuz (Topluluk ve Kurumsal) | INTROSERV

Docker'da Odoo 19: Ubuntu 24.04 için Eksiksiz Kurulum Kılavuzu (Community & Enterprise)

Giriş

Bir ERP sistemini dağıtmak genellikle göz korkutucu bir görev gibi görünür, ancak konteynerleştirme bu süreci kolaylaştırılmış bir iş akışına dönüştürür. Bu kılavuzda, Odoo 19'u yeni bir Ubuntu 24.04 örneğinde nasıl kuracağımızı anlatacağız.

Bu yöntemin en önemli özelliği çok yönlülüğüdür. Sadece modülleri kopyalayarak Enterprise'a anında yükseltme yeteneğini korurken ücretsiz Community sürümü ile başlamanıza olanak tanıyan bir mimari tanımlıyoruz. "Anında" yapılandırma hileleri yok - sadece temiz konteyner yönetimi ve Caddy aracılığıyla otomatik SSL.

Teknik Yığın (Doğrulanmış):

  • İşletim Sistemi: Ubuntu 24.04 LTS (Bu bir Docker kurulumu olduğundan, yöntem diğer Linux dağıtımları için de geçerlidir)
  • Konteynerleştirme: Docker 29.1.5 + Docker Compose
  • Web Sunucusu: Caddy (Otomatik HTTPS)
  • Veritabanı: PostgreSQL 18
  • VM Özellikleri: 2 vCPU, 4 GB RAM, 40 GB NVMe

Adım 0: Docker'ı Kurun

Docker'ı resmi depodan yükleyin:

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh

Kullanıcınızı docker grubuna ekleyin:

sudo usermod -aG docker $USER newgrp docker

Docker'ı etkinleştirin ve başlatın:

sudo systemctl enable docker sudo systemctl start docker

Kurulumu doğrulayın:

docker ps

Adım 1: Proje Yapısını Kurun

Çalışma dizinini ve gerekli klasörleri oluşturun:

mkdir odoo-stack && cd odoo-stack mkdir -p addons enterprise

Adım 2: docker-compose.yml dosyasını oluşturun

Yeni bir Docker Compose dosyası oluşturun:

nano docker-compose.yml

Aşağıdaki yapılandırmayı yapıştırın (hem db ortamı hem de odoo ortamı bölümlerindeki odoo_secure_password'ü gerçek parolanızla değiştirin):

YAML

services: db: image: postgres:18 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo_secure_password - POSTGRES_USER=odoo - PGDATA=/var/lib/postgresql/data/pgdata volumes: - odoo-db-data:/var/lib/postgresql/data/pgdata restart: unless-stopped odoo: image: odoo:19.0 depends_on: - db volumes: - odoo-web-data:/var/lib/odoo - ./addons:/mnt/extra-addons - ./enterprise:/mnt/enterprise-addons environment: - HOST=db - USER=odoo - PASSWORD=odoo_secure_password command: > --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/enterprise-addons,/mnt/extra-addons --proxy-mode restart: unless-stopped caddy: image: caddy:latest ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy-data:/data restart: unless-stopped volumes: odoo-web-data: odoo-db-data: caddy-data:

Adım 3: Caddy dosyasını oluşturun

Caddy yapılandırma dosyasını oluşturun:

nano Caddyfile

Yapılandırmayı aşağıya yapıştırın (otomatik SSL için :80'i alan adınızla değiştirin):

# Otomatik SSL için :80'i YOUR_DOMAIN ile değiştirin :80 { # Dosya yüklemeleri için istemci maksimum gövde boyutunu artırın request_body { max_size 300MB } # Sohbetler ve bildirimler için longpolling reverse_proxy /longpolling/* odoo:8072 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {scheme} } # Ana trafik reverse_proxy odoo:8069 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {scheme} } }

Adım 4: Yığını Başlatın

Yığını başlatın:

docker compose up -d

Durumu kontrol edin (3 konteyner de "Up" olmalıdır):

docker compose ps

Hata olmadığından emin olmak için günlükleri kontrol edin:

docker compose günlükleri odoo

Adım 5: İlk Kurulum

Tarayıcınızı açın ve şu adrese gidin:

  • IP üzerinden: http://YOUR_SERVER_IP
  • Etki Alanı Üzerinden: https://YOUR_DOMAIN (Caddyfile'da yapılandırılmışsa)

Veritabanı oluşturma formunu doldurun:

  • Ana Şifre: İlk girişte bir ana şifre önerilecektir (bu şifreyi kaydedin, çok önemlidir).
  • Veritabanı Adı: örneğin, mycompany.
  • E-posta: Erişilebilir e-posta adresiniz (bu sizin oturum açma bilgileriniz olacaktır).
  • Parola: Sistem oturum açma parolanız.
  • Dil: Tercih ettiğiniz dili seçin: Tercih ettiğiniz dili seçin.
  • Ülke: Ülkenizi seçin: Ülkenizi seçin.
  • Demo Veri: Temiz bir üretim veritabanı için işaretlenmemiş bırakın.

Veritabanı oluştur'a tıklayın ve işlemin tamamlanmasını bekleyin (1-2 dakika).

Community'den Enterprise'a Yükseltme

Community'den Enterprise'a geçmek için modülleri belirlenen dizine yerleştirmeniz yeterlidir.

Adım 1. Enterprise modüllerini edinin (Odoo aboneliği aracılığıyla).

Adım 2. Bunları ./enterprise/ klasörüne çıkarın.

3. Adım Konteyneri yeniden başlatın:

docker compose restart odoo

Adım 4. Gerekli Kurumsal modülleri kullanıcı arayüzü üzerinden yükleyin.
Yapılandırma dosyalarında herhangi bir değişikliğe gerek yoktur - kurumsal modüllerin yolu zaten önceden yapılandırılmıştır.

Güvenlik Duvarı Yapılandırması

Eğer UFW kullanıyorsanız aşağıdakileri çalıştırın:

sudo ufw allow ssh/tcp && \ sudo ufw allow 80/tcp && \ sudo ufw allow 443/tcp && \ sudo ufw default deny incoming && \ sudo ufw default allow outgoing && \ sudo ufw --force enable

Yararlı Komutlar

Her şeyi durdurun:

docker compose down

Yalnızca Odoo'yu yeniden başlatın:

docker compose restart odoo

Günlükleri görüntüle:

docker compose logs -f odoo docker compose logs -f db docker compose logs -f caddy

Veritabanı Yedekleme:

docker compose exec db pg_dumpall -U odoo > backup_$(date +%Y%m%d).sql

Veritabanını Geri Yükle:

cat backup_20240125.sql | docker compose exec -T db psql -U odoo

Tam Silme (Dikkat!):

docker compose down -v rm -rf addons enterprise Caddyfile

Alan Adı Kullanma

Let's Encrypt'ten otomatik bir SSL sertifikası almak için:

Adım 1. DNS'i yapılandırın: YOUR_DOMAIN adresinden bir A kaydını sunucunuzun IP'sine yönlendirin.

Adım 2. Caddyfile'ı güncelleyin: 80'i YOUR_DOMAIN ile değiştirin.

3. Adım Caddy'yi yeniden başlatın:

docker compose restart caddy

Caddy, SSL sertifikasını otomatik olarak sağlayacaktır.

Adım 4. Odoo'ya https://YOUR_DOMAIN üzerinden erişin.

Sertifika verildiğini doğrulayın:

docker compose logs caddy | grep certificate


VAT

  • Other

    Other

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    %
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • Other
  • canada
  • poland
  • european-union
  • france
  • germany
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria