0) Context i punts clau
Instal·lació existent
Odoo està instal·lat com a paquet del sistema:
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.
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
- Crea l’estructura:
mkdir -p ~/odoo-dev/{custom-addons,data,logs} -
(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
- Crea (si cal) el rol amb permís de crear BDs usant el teu usuari Unix:
sudo -u postgres createuser -d isard - 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.
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:
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:
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).
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
- Els mòduls propis van a ~/odoo-dev/custom-addons (ja referenciat a addons_path).
- Crear un mòdul buit amb scaffold:
odoo scaffold escola ~/odoo-dev/custom-addons - A Apps: activa Developer mode → Update Apps List → busca “Escola” → Install.
- Per aplicar canvis de codi:
i torna a arrencar normalment.odoo -c ~/.odoorc.dev -d dev_escola -u escola --stop-after-init
9) Problemes habituals i solucions ràpides
“Peer authentication failed for user ‘odoo’”
Usa db_user = el_teu_usuari i crea el rol:
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:
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).
Reseteja la contrasenya a l’odoo shell (vegeu Pas 6).
10) Resum curt (checklist)
- Crea ~/odoo-dev/{custom-addons,data,logs}.
- Escriu ~/.odoorc.dev amb admin_passwd, addons_path, db_user, data_dir, logfile.
- PG: createuser -d isard i createdb -O isard dev_escola.
- Inicialitza: odoo … -i base --http-port=8070.
- Login: usuari admin (reset si cal), “Manage Databases” usa la clau de admin_passwd.
- Scaffold del mòdul a ~/odoo-dev/custom-addons.
Annex: valors exactes que vam usar
- Executable: /usr/bin/odoo
- Addons oficials: /usr/lib/python3/dist-packages/odoo/addons
- Repositori propi: ~/odoo-dev/custom-addons
- Fitxer dev: ~/.odoorc.dev
- Usuari PG: isard
- Base de dades: dev_escola
- Port dev: 8070
- admin_passwd (Manage DBs): admin