Come installare Odoo 17 su un server europeo sicuro: guida completa
Scopri come installare, configurare e mettere in sicurezza Odoo 17 su un server Linux ospitato in Europa. Tutorial passo-passo su configurazione di PostgreSQL, reverse proxy, SSL e hosting conforme al GDPR.
Se gestisci un'azienda europea e hai bisogno di un sistema ERP che rispetti la sovranità dei tuoi dati, installare Odoo 17 su un server fisicamente situato nell'UE è una delle scelte più intelligenti che puoi fare. Eppure la maggior parte dei tutorial tralascia i dettagli fondamentali: dove si trova effettivamente il server, come metterlo in sicurezza per la produzione e quali obblighi GDPR assumi nel momento in cui i dati dei clienti vengono scritti su disco.
Questa guida ti accompagna nell'installazione di Odoo 17 su un server Linux europeo partendo da zero — coprendo PostgreSQL, reverse proxy Nginx, certificati SSL e le misure di sicurezza di base necessarie per ogni istanza in produzione.
Perché la posizione del server conta per Odoo
Odoo archivia tutto — fatture, contatti dei clienti, dati dei dipendenti, dati contabili. Secondo il GDPR, questo configura un trattamento di dati personali. Se il tuo server si trova fuori dall'UE (o presso un provider con sede negli Stati Uniti soggetto al CLOUD Act), potresti avere problemi di conformità indipendentemente da quanto dichiarato nella tua informativa sulla privacy.
Scegliere un provider di hosting europeo con server nell'UE elimina questo rischio a livello infrastrutturale. Niente Standard Contractual Clauses da gestire, nessuna decisione di adeguatezza da monitorare — i tuoi dati restano semplicemente sotto la giurisdizione europea.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Un server Ubuntu 22.04 LTS o Debian 12 appena installato, con almeno 2 vCPU, 4 GB di RAM e 40 GB SSD
- Un nome di dominio che punta all'indirizzo IP del tuo server
- Accesso root o sudo via SSH
- Il server ospitato in un data centre nell'UE (Germania, Finlandia, Francia o Paesi Bassi sono scelte comuni)
Passaggio 1: Preparazione del sistema
Aggiorna il sistema e installa le dipendenze necessarie:
sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-pip python3-dev python3-venv \
libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev \
libldap2-dev build-essential libssl-dev libffi-dev \
libjpeg-dev libpq-dev liblcms2-dev libblas-dev \
libatlas-base-dev node-less npm wkhtmltopdf
Crea un utente di sistema dedicato per Odoo — non eseguirlo mai come root:
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
Passaggio 2: Installare e configurare PostgreSQL
Odoo richiede PostgreSQL. Installalo e crea un utente del database:
sudo apt install -y postgresql
sudo su - postgres
createuser --createdb --username postgres --no-createrole \
--no-superuser --pwprompt odoo
exit
Scegli una password robusta e conservala in modo sicuro. Questo utente sarà il proprietario di tutti i database Odoo.
Per la produzione, ottimizza PostgreSQL in base alla RAM disponibile. Modifica /etc/postgresql/15/main/postgresql.conf:
shared_buffers = 1GB
effective_cache_size = 3GB
work_mem = 16MB
maintenance_work_mem = 256MB
Riavvia PostgreSQL dopo le modifiche:
sudo systemctl restart postgresql
Passaggio 3: Installare Odoo 17 dal sorgente
Clona il repository ufficiale e configura un ambiente virtuale Python:
sudo su - odoo
git clone https://github.com/odoo/odoo.git --depth 1 \
--branch 17.0 /opt/odoo/odoo17
python3 -m venv /opt/odoo/odoo17-venv
source /opt/odoo/odoo17-venv/bin/activate
pip install wheel
pip install -r /opt/odoo/odoo17/requirements.txt
deactivate
exit
Crea il file di configurazione di Odoo in /etc/odoo.conf:
[options]
admin_passwd = YOUR_STRONG_MASTER_PASSWORD
db_host = localhost
db_port = 5432
db_user = odoo
db_password = YOUR_DB_PASSWORD
addons_path = /opt/odoo/odoo17/addons
default_productivity_apps = True
logfile = /var/log/odoo/odoo.log
log_level = warn
xmlrpc_port = 8069
proxy_mode = True
Importante: Imposta proxy_mode = True poiché Odoo verrà eseguito dietro Nginx.
Passaggio 4: Creare un servizio Systemd
Crea il file /etc/systemd/system/odoo17.service:
[Unit]
Description=Odoo 17
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo17
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo17-venv/bin/python3 \
/opt/odoo/odoo17/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
Restart=on-failure
[Install]
WantedBy=multi-user.target
Abilita e avvia il servizio:
sudo systemctl daemon-reload
sudo systemctl enable --now odoo17
Passaggio 5: Configurare Nginx come reverse proxy con SSL
Installa Nginx e Certbot per i certificati gratuiti Let's Encrypt:
sudo apt install -y nginx certbot python3-certbot-nginx
Crea la configurazione del sito Nginx in /etc/nginx/sites-available/odoo:
upstream odoo {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name your-domain.eu;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
server_name your-domain.eu;
ssl_certificate /etc/letsencrypt/live/your-domain.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.eu/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 200m;
location / {
proxy_pass http://odoo;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odoo;
}
}
Abilita il sito e ottieni il certificato SSL:
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo certbot --nginx -d your-domain.eu
sudo systemctl restart nginx
Passaggio 6: Hardening della sicurezza
Un'istanza Odoo in produzione ha bisogno di molto più del solo SSL. Applica queste misure di sicurezza essenziali:
Regole firewall — consenti solo SSH, HTTP e HTTPS:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Disabilita il database manager in produzione aggiungendo a /etc/odoo.conf:
list_db = False
Abilita gli aggiornamenti di sicurezza automatici:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Configura fail2ban per proteggerti dagli attacchi brute-force:
sudo apt install -y fail2ban
Backup automatici
I dati di Odoo sono il tuo business. Configura backup giornalieri di PostgreSQL:
sudo -u odoo pg_dump odoo_production | gzip > \
/opt/odoo/backups/odoo_$(date +%F).sql.gz
Aggiungi questo comando a un cron job e valuta la replica dei backup in una seconda località nell'UE per il disaster recovery.
Errori comuni da evitare
- Eseguire Odoo come root — usa sempre un utente di sistema dedicato
- Dimenticare
proxy_mode— senza questa opzione, Odoo non riesce a vedere gli IP reali dei client dietro Nginx - Usare la master password predefinita — cambia
admin_passwdimmediatamente - Nessuna strategia di backup — la corruzione del database o una cancellazione accidentale ti costeranno caro
- Ignorare la rotazione dei log — i log di Odoo possono riempire il disco; configura logrotate
Quando il self-hosting diventa un peso
Installare Odoo in autonomia ti dà il pieno controllo, ma significa anche assumerti ogni responsabilità operativa: patch di sicurezza, ottimizzazione di PostgreSQL, rinnovo dei certificati SSL, verifica dei backup, monitoraggio dell'uptime e scalabilità man mano che la tua azienda cresce.
Molte aziende europee iniziano con il self-hosting per poi rendersi conto che il carico operativo sottrae tempo di sviluppo al proprio prodotto principale. È esattamente il problema che Alplink risolve.
In Alplink gestiamo hosting Odoo completamente gestito su infrastruttura europea basata su NixOS — con deployment riproducibili, backup automatici, hardening della sicurezza e conformità GDPR integrata fin dal primo giorno. Ottieni tutti i vantaggi del self-hosting (piena sovranità sui dati, residenza dei dati esclusivamente nell'UE) senza il peso operativo. Contattaci e lascia che ci occupiamo noi dell'infrastruttura, così potrai concentrarti sulla tua azienda.