Mencoba login ke Odoo pasca instalasi dengan docker compose

ODOO · LOCAL DEVELOPMENT

Jika sebelumnya saya telah install Odoo dengan standar minimum dan pendekatan paling mudah yaitu dengan docker compose di artikel ini https://undebugable.blogspot.com/2026/07/instalasi-odoo-di-local-dengan-docker.html.

Halaman login Odoo dengan docker compose CLI

Saat pertama kali menginstall Odoo pada artikel sebelumnya, user admin yang tersedia untuk login adalah user admin dengan password admin, admin/admin itu diset oleh Odoo sendiri saat inisialisasi database pertama kali, bukan dari .env.

Programmer ERP sedang bekerja dengan Odoo
CATATAN
  • --without-demo=all tidak menghapus user admin awal.
  • Kalau DB/volume dihapus lalu dibuat ulang, akun default muncul lagi.
  • Setelah login pertama, sebaiknya langsung ganti password admin.

Instalasi pada artikel sebelumnya ini bisa dikatakan adalah Odoo kosongan (clean start), bersih tanpa data demo.

Di docker-compose.yml, service odoo-init menjalankan:

  • -i base (hanya install module inti base)
  • --without-demo=all (jangan load demo data untuk module yang di-install saat init)

Artinya saat bootstrap database pertama, Odoo tidak isi sample customer/order/product/demo user.

Seberapa kosong saat mulai:

Ada:

  • struktur database Odoo
  • user admin awal
  • metadata wajib sistem (groups, access rights inti, country/currency/lang bawaan, company default)

Tidak ada:

  • transaksi bisnis demo (SO/PO/Invoice)
  • sample contact/customer/vendor
  • sample product/stock/employee/project (kecuali nanti kamu install module tertentu dan isi manual)

Jadi pada titik ini, adalah titik awal yang bagus untuk belajar:

  • user management
  • security rules
  • multi-company/multi-tenant
CATATAN PENTING
Karena ada volume postgres_data dan odoo_data, state ini persisten. Kalau volume dihapus lalu init ulang, kembali ke kondisi awal bersih yang sama.
Melihat Halaman Login

Umumnya saat kita telah berhasil menginstall aplikasi berbasis web maka halaman awal yang akan kita temui adalah halaman Login page yang memiliki akses user dan password defaultnya, pada kasus Odoo ini username dan password adalah admin/admin.

Odoo login page
Halaman Log In Odoo dengan pilihan Log In atau "Log In as superuser"

Keberadaan dua jenis login di awal ini memang fitur yang sering bikin bingung di awal, di Odoo ada dua "mode" akses:

Log in (normal mode)
Masuk sebagai user biasa (termasuk admin biasa), lalu semua Access Rights dan Record Rules tetap berlaku.
Log in as superuser (superuser mode)
Masuk dengan mode istimewa yang bypass pembatasan Access Rights + Record Rules.
Ini dipakai untuk administrasi tingkat tinggi/troubleshooting, bukan kerja harian.

Menurut dokumentasi Odoo 17, tombol Log in as superuser itu memang alternatif untuk masuk ke superuser mode dari layar login.

Kenapa Odoo kasih dua opsi ini? Karena kebutuhan berbeda:

  • Keamanan operasional sehari-hari: user harus dibatasi oleh role/rule.
  • Recovery / emergency admin: kadang rule salah konfigurasi bikin admin "terkunci"; mode superuser diperlukan untuk memperbaiki.

Kapan pakai masing-masing?

  • Pakai Log in untuk aktivitas normal (sales, inventory, accounting, dll).
  • Pakai Log in as superuser hanya saat:
    • mengoreksi access rights/rules yang rusak
    • tugas teknis yang memang butuh bypass policy
    • investigasi masalah permission
RISIKO SUPERUSER MODE
  • Bisa lihat/ubah data lintas batas yang normalnya diblok.
  • Salah ubah rule/group bisa bikin kondisi "impotent admin" (tidak ada user yang bisa memperbaiki rights lagi).

Kesimpulannya di Odoo, tombol Log in dipakai untuk masuk sebagai pengguna normal sehingga semua hak akses dan batasan data tetap berlaku sesuai role user, sedangkan Log in as superuser dipakai untuk masuk dalam mode khusus yang melewati batasan hak akses dan record rules, biasanya hanya untuk kebutuhan administrasi atau perbaikan konfigurasi keamanan yang bermasalah, jadi untuk penggunaan harian sebaiknya tetap memakai Log in biasa karena lebih aman.

Manage Databases

Pada halaman login awal milik Odoo juga terdapat link menarik disana yaitu "Manage Databases" yang bila di klik akan menuju ke halaman http://localhost:8069/web/database/manager.

Manage Databases itu adalah halaman Database Manager Odoo (level server), bukan fitur bisnis harian di dalam satu database. Di sana bisa create, duplicate, backup, restore, rename, atau delete database Odoo, jadi fungsinya untuk administrasi instance Odoo secara global.

PERHATIAN
Akses aksi-aksi ini dilindungi oleh master password (admin_passwd di odoo.conf), bukan password user aplikasi biasa. Karena sangat sensitif, dokumentasi Odoo menyarankan halaman ini dipakai untuk dev/admin saja; kalau server menyala secara umum di internet, jangan dibiarkan terbuka tanpa pengamanan ketat dan pastikan admin_passwd kuat/random.
Button Manage Database
Halaman Manage Database
Kita Lihat Ke Dalam Database Postgres
Koneksi via DBeaver ke PostgreSQL (postgres/odoo_dev_password_change_me)
Pastikan pilih Show all databases
Koneksi di .env
SELECT count(*) FROM information_schema.tables WHERE table_type = 'BASE TABLE';
Semua Tabel Milik Odoo
Melihat Mekanisme Login Secara Apa Adanya
Inspect Form Login
Login request pada network console
Login request pada network console
Login request pada network console
Cookies: session_id
Cookies: session_id
Memahami Mekanisme Login Odoo dari Snapshot DevTools

Dari snapshot Network di atas, mekanisme login Odoo terlihat bekerja dengan pola web yang rapi dan aman. Prosesnya dimulai saat browser mengirim POST /web/login setelah tombol Log in ditekan. Server lalu membalas dengan status 303 See Other dan mengarahkan browser ke Location: /web. Ini bukan error, justru tanda bahwa kredensial diterima dan server meminta browser pindah ke halaman utama aplikasi.

Di snapshot berikutnya, terlihat GET /web mendapat status 200 OK. Artinya sesi login sudah valid, sehingga user bisa masuk ke web client Odoo dan asset seperti web.assets_* mulai dimuat. Jadi urutannya jelas: submit login, redirect, lalu masuk dashboard.

Konfirmasi paling kuat ada di tab Cookies: session_id pada request lama berbeda dengan session_id pada response. Ini menunjukkan server melakukan pembaruan sesi saat autentikasi berhasil. Dengan kata lain, Odoo tidak hanya menerima login, tapi juga membuat sesi baru yang kemudian dipakai untuk request berikutnya. Dari seluruh snapshot, alurnya konsisten: login sukses, sesi aktif, dan akses ke /web berjalan normal.

User Log In ke Odoo Dashboard

Comments

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Debugging PHP Web dengan XDebug di Intellij IDEA (PHP STORM)

Membangun AI Development Assistant Lokal