Installazione di Odoo 19 in Docker su Ubuntu 24.04: Guida completa (Comunità e impresa) | INTROSERV

Odoo 19 in Docker: Guida completa all'installazione per Ubuntu 24.04 (Comunità ed Impresa)

Introduzione

La distribuzione di un sistema ERP sembra spesso un compito scoraggiante, ma la containerizzazione trasforma questo processo in un flusso di lavoro semplificato. In questa guida spiegheremo come configurare Odoo 19 su un'istanza Ubuntu 24.04.

Il punto forte di questo metodo è la sua versatilità. Stiamo definendo un'architettura che consente di iniziare con la versione Community gratuita, mantenendo la possibilità di passare immediatamente alla versione Enterprise semplicemente copiando i moduli. Nessun hack di configurazione "al volo": solo una gestione pulita dei container e un SSL automatico tramite Caddy.

Stack tecnico (verificato):

  • Sistema operativo: Ubuntu 24.04 LTS (poiché si tratta di un'installazione Docker, il metodo si applica anche ad altre distribuzioni Linux).
  • Containerizzazione: Docker 29.1.5 + Docker Compose
  • Server web: Caddy (HTTPS automatico)
  • Database: PostgreSQL 18
  • Specifiche della macchina virtuale: 2 vCPU, 4 GB di RAM, 40 GB NVMe

Passo 0: installare Docker

Installare Docker dal repository ufficiale:

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

Aggiungere il proprio utente al gruppo docker:

sudo usermod -aG docker $USER newgrp docker

Abilitare e avviare Docker:

sudo systemctl enable docker sudo systemctl start docker

Verificare l'installazione:

docker ps

Passo 1: Impostare la struttura del progetto

Creare la directory di lavoro e le cartelle necessarie:

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

Passo 2: Creare docker-compose.yml

Creare un nuovo file Docker Compose:

nano docker-compose.yml

Incollare la seguente configurazione (sostituire odoo_secure_password nelle sezioni ambiente db e ambiente odoo con la password effettiva):

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 ambiente: - HOST=db - USER=odoo - PASSWORD=odoo_secure_password comando: > --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 volumi: odoo-web-data: odoo-db-data: caddy-data:

Passo 3: Creare il Caddyfile

Creare il file di configurazione di Caddy:

nano Caddyfile

Incollare la configurazione sottostante (sostituire :80 con il proprio dominio per l'SSL automatico):

# Sostituire :80 con IL TUO DOMINIO per l'SSL automatico :80 { # Aumentare la dimensione massima del corpo del client per il caricamento dei file request_body { max_size 300MB } # Longpolling per le chat e le notifiche reverse_proxy /longpolling/* odoo:8072 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {schema} } # Traffico principale reverse_proxy odoo:8069 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {schema} } }

Passo 4: Avviare lo stack

Avviare lo stack:

docker compose up -d

Controllare lo stato (tutti e 3 i contenitori dovrebbero essere "Up"):

docker compose ps

Controllare i log per verificare che non ci siano errori:

docker compose logs odoo

Passo 5: Configurazione iniziale

Aprire il browser e navigare verso:

  • Via IP: http://YOUR_SERVER_IP
  • Via Domain: https://YOUR_DOMAIN (se configurato nel Caddyfile)

Completare il modulo di creazione del database:

  • Password principale: al primo accesso verrà suggerita una password principale (conservatela, è fondamentale).
  • Nome del database: ad esempio, mycompany.
  • Email: L'indirizzo e-mail accessibile (sarà il vostro login).
  • Password: la password di accesso al sistema.
  • Lingua: Selezionare la lingua preferita.
  • Paese: Selezionare il proprio Paese.
  • Dati demo: Lasciare deselezionato per ottenere un database di produzione pulito.

Fare clic su Crea database e attendere il completamento del processo (1-2 minuti).

Aggiornamento da Community a Enterprise

Per passare da Community a Enterprise, è sufficiente collocare i moduli nella directory designata.

Passo 1. Ottenere i moduli Enterprise (tramite abbonamento Odoo).

Fase 2. Estrarli nella cartella ./enterprise/.

Passo 3. Riavviare il contenitore:

docker compose restart odoo

Passo 4. Installare i moduli Enterprise richiesti tramite l'interfaccia utente.
Non è necessario modificare i file di configurazione: il percorso dei moduli enterprise è già preconfigurato.

Configurazione del firewall

Se si utilizza UFW, eseguire quanto segue:

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

Comandi utili

Fermare tutto:

docker compose down

Riavvia solo Odoo:

docker compose restart odoo

Visualizzare i log:

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

Backup del database:

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

Ripristino del database:

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

Pulizia completa (attenzione!):

docker compose down -v rm -rf addons enterprise Caddyfile

Usare un nome di dominio

Per ottenere un certificato SSL automatico da Let's Encrypt:

Passo 1. Configurare il DNS: Puntate un record A di YOUR_DOMAIN all'IP del vostro server.

Passo 2. Aggiornare il Caddyfile: Sostituire :80 con IL TUO DOMINIO.

Passo 3. Riavviare Caddy:

docker compose restart caddy

Caddy fornirà automaticamente il certificato SSL.

Passo 4. Accedere a Odoo tramite https://YOUR_DOMAIN.

Verificare l'emissione del certificato:

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