Odoo 17 — Entorn de Desenvolupament separat al port 8070

Guia pas a pas per preparar ~/odoo-dev, definir la configuració de desenvolupament, resoldre errors típics (ports, PostgreSQL, admin_passwd, error 500, etc.) i deixar Odoo funcionant a http://localhost:8070.

0) Context i punts clau

Instal·lació existent
Odoo està instal·lat com a paquet del sistema:
which odoo
/usr/bin/odoo
Addons oficials (Ubuntu/Debian):
python3 -c "import odoo;print(','.join(odoo.conf.addons_paths))"
/usr/lib/python3/dist-packages/odoo/addons
Objectiu
No tocarem el servei del sistema (port 8069). Crearem un entorn de dev a part, amb fitxer de config propi, base de dades pròpia i port 8070.

1) Carpeta de treball

  1. Crea l’estructura:
    mkdir -p ~/odoo-dev/{custom-addons,data,logs}
  2. (Opcional) Comprova que postgresql estigui actiu:
    sudo systemctl status postgresql || sudo systemctl start postgresql

2) Fitxer de configuració de desenvolupament

Crearem ~/.odoorc.dev (independent de la config del sistema).

[options]
admin_passwd = admin
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/home/isard/odoo-dev/custom-addons
db_host = False
db_port = False
db_user = isard
db_password = False
data_dir = /home/isard/odoo-dev/data
logfile = /home/isard/odoo-dev/logs/odoo.log
Substitueix isard pel teu usuari Unix real (p. ex. isard).
Per què “admin_passwd”? És la clau per a “Manage Databases”. No és la contrasenya de l’usuari admin — aquesta la configurarem més avall.

3) PostgreSQL: usuari i base de dades de dev

  1. Crea (si cal) el rol amb permís de crear BDs usant el teu usuari Unix:
    sudo -u postgres createuser -d isard
  2. Crea la base de dades de desenvolupament:
    sudo -u postgres createdb -O isard dev_escola
Si vas veure “Peer authentication failed for user "odoo"”
canvia db_user a l’usuari Unix (p. ex. isard) i crea-li el rol com dalt.

4) Ports i servei del sistema

El 8069 està en ús?
sudo ss -lptn 'sport = :8069'
Atura el servei del sistema si cal (per no confondre’l amb el dev):
sudo systemctl stop odoo || sudo systemctl stop odoo17
Dev escoltarà al 8070
Així evitem xocs amb l’8069. Pots comprovar el port amb:
sudo ss -lptn 'sport = :8070' || echo "8070 lliure"

5) Inicialitzar la BD (evitar el 500 “ir_module_module does not exist”)

Una BD nova està buida. Cal instal·lar el mòdul base la primera vegada.

odoo -c ~/.odoorc.dev -d dev_escola -i base --http-port=8070 --without-demo=all --dev=all --log-level=debug --logfile=/dev/stdout
Quan acabi, obre http://localhost:8070. Ja no apareixerà el 500.

6) Accés: usuari i contrasenya

Inici de sessió (aplicació)
Usuari: admin
Contrasenya: la que tingui l’usuari admin a la BD. Si cal, reseteja-la:
odoo shell -c ~/.odoorc.dev -d dev_escola
admin = env['res.users'].search([('login','=','admin')], limit=1)
admin.write({'password': 'admin'})
exit()
Manage Databases
Clau: la de admin_passwd a ~/.odoorc.dev (a la guia: admin).

7) Arrencar i treballar cada dia

# Arrencar el servidor de dev (port 8070)
odoo -c ~/.odoorc.dev -d dev_escola --http-port=8070 --dev=all

# Veure logs (si uses fitxer en lloc de consola)
tail -f ~/odoo-dev/logs/odoo.log
Ja pots entrar a http://localhost:8070 i treballar-hi sense tocar el servei del sistema.

8) Crear el teu repositori de mòduls

  1. Els mòduls propis van a ~/odoo-dev/custom-addons (ja referenciat a addons_path).
  2. Crear un mòdul buit amb scaffold:
    odoo scaffold escola ~/odoo-dev/custom-addons
  3. A Apps: activa Developer modeUpdate Apps List → busca “Escola” → Install.
  4. Per aplicar canvis de codi:
    odoo -c ~/.odoorc.dev -d dev_escola -u escola --stop-after-init
    i torna a arrencar normalment.

9) Problemes habituals i solucions ràpides

“Peer authentication failed for user ‘odoo’”
Usa db_user = el_teu_usuari i crea el rol:
sudo -u postgres createuser -d EL_TEU_USUARI
“Address already in use” (8069)
sudo systemctl stop odoo || sudo systemctl stop odoo17
i usa 8070 pel dev.
Error 500 “ir_module_module does not exist / KeyError: 'ir.http'”
Inicialitza la BD:
odoo -c ~/.odoorc.dev -d dev_escola -i base --http-port=8070
No puc entrar amb admin
Reseteja la contrasenya a l’odoo shell (vegeu Pas 6).

10) Resum curt (checklist)

  1. Crea ~/odoo-dev/{custom-addons,data,logs}.
  2. Escriu ~/.odoorc.dev amb admin_passwd, addons_path, db_user, data_dir, logfile.
  3. PG: createuser -d isard i createdb -O isard dev_escola.
  4. Inicialitza: odoo … -i base --http-port=8070.
  5. Login: usuari admin (reset si cal), “Manage Databases” usa la clau de admin_passwd.
  6. Scaffold del mòdul a ~/odoo-dev/custom-addons.

Annex: valors exactes que vam usar