baha.
Obuna boʻlish Buyurtma berish Aloqa

Odoo 19 ni Linuxʼga oʻrnatish: toʻliq qoʻllanma

Odoo 19 ni Linuxga oʻrnatish uch usulda: rasmiy repozitoriy, tayyor .deb/.rpm paket yoki sourcedan. PostgreSQL, worker va tipik xatolar bilan.

3 daqiqa oʻqish Oʻrnatish va DevOps Mos versiyalar: Odoo 19 Nashrlar: Community · Enterprise

Oldingi maqolada Windowsʼga oʻrnatishni koʻrib chiqdik va u yerda bitta ogohlantirish bor edi: Windows production uchun mos emas.

Linux — bu Odoo haqiqatan ishlashi uchun yaratilgan muhit. Barcha jonli serverlar shu yerda turadi.

Bu maqolada uchta usulni koʻrib chiqamiz, keyin esa production uchun eng muhim sozlamalarni. Barcha buyruqlar Odoo 19 uchun va rasmiy hujjatlardan olingan.

Qaysi usulni tanlash kerak

1. Repozitoriy orqali (apt / dnf)
Kimga: tez ishga tushirish kerak boʻlganlarga. Faqat Community.
Yangilanish: apt upgrade bilan avtomatik yangilanadi.

2. Tayyor paket (.deb / .rpm)
Kimga: Enterprise kerak boʻlganlarga yoki aniq versiya kerak boʻlsa.
Yangilanish: qoʻlda boʻladi.

3. Manbadan (git)
Kimga: dasturchilarga, custom modul yozadiganlarga.
Yangilanish: git pull bilan.

Agar modul yozmoqchi boʻlsangiz — faqat uchinchi usul(tavsiya etiladi). Qolgan ikkitasi tayyor tizimni ishga tushiradi.

Tayyorgarlik: PostgreSQL

Uchala usul ham PostgreSQL talab qiladi. Shuning uchun undan boshlaymiz.

Odoo 19 uchun minimal versiya — PostgreSQL 13. Bu Odoo 19 da oʻzgargan: avval 12 yetarli edi.

Ubuntu / Debian:

Terminal window
sudo apt install postgresql -y

Fedora / CentOS / RHEL:

Avval sudo buyrugʻi mavjud ekanligiga va toʻgʻri sozlanganiga ishonch hosil qiling, keyin:

Terminal window
sudo dnf install -y postgresql-server
sudo postgresql-setup --initdb --unit postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql

1-usul. Odoo repozitoriysi orqali

Eng tez yoʻl. Odoo S.A. oʻz repozitoriysini taqdim etadi — faqat Community versiyasi uchun.

Ubuntu / Debian:

Terminal window
wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/19.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install odoo

Keyinchalik yangilash uchun oddiy apt-get upgrade buyrugʻi yetarli.

Fedora:

Terminal window
sudo dnf config-manager --add-repo=https://nightly.odoo.com/19.0/nightly/rpm/odoo.repo
sudo dnf install -y odoo
sudo systemctl enable odoo
sudo systemctl start odoo

Muhim: Enterprise uchun nightly repozitoriy mavjud emas. Agar Enterprise kerak boʻlsa, 2-usulga oʻting.

2-usul. Tayyor paket (.deb yoki .rpm)

Bu usul Community va Enterprise uchun ishlaydi.

Paketni Odoo yuklab olish sahifasidan oling: odoo.com/page/download

Enterprise paketini yuklab olish uchun toʻlovchi on-premise mijoz yoki hamkor sifatida tizimga kirgan boʻlishingiz kerak.

Ubuntu

Odoo 19 ning****deb paketi hozircha Ubuntu Noble (24.04 LTS) ni qoʻllab-quvvatlaydi.

Yuklab olgandan keyin root sifatida bajaring:

Terminal window
apt update
apt install <paket_fayli_manzili>

Bu buyruq uchta ishni birdan qiladi: Odooʻni xizmat (service) sifatida oʻrnatadi, kerakli PostgreSQL foydalanuvchisini yaratadi va serverni avtomatik ishga tushiradi.

Fedora

Odoo 19 ning****rpm paketi Fedora 42 ni qoʻllab-quvvatlaydi.

Terminal window
sudo dnf localinstall odoo_19.0.latest.noarch.rpm
sudo systemctl enable odoo
sudo systemctl start odoo

Brauzerda oching: http://localhost:8069

3-usul. Manba(Source)dan oʻrnatish (dasturchilar uchun)

Agar modul yozmoqchi boʻlsangiz yoki kodni oʻzgartirmoqchi boʻlsangiz — bu yagona toʻgʻri yoʻl.

1-qadam. Python

Odoo 19 Python 3.10 yoki undan yuqori versiyani talab qiladi.

Paket menejeri orqali oʻrnating va tekshiring:

Terminal window
python3 --version
pip3 --version

Ubuntu 24.04 da Python 3.12 oldindan oʻrnatilgan — qoʻshimcha ish shart emas.

2-qadam. PostgreSQL foydalanuvchisi

Odoo postgres foydalanuvchisi bilan ulanishni **taqiqlaydi, yani postgres userni ishlata olmaysiz.**Yangi foydalanuvchi yaratish shart:

Terminal window
sudo -u postgres createuser -d -R -S $USER
createdb $USER

Bu yerda bitta qulaylik bor: PostgreSQL foydalanuvchisi Unix login bilan bir xil nomda boʻlgani uchun, bazaga parolsiz ulanish mumkin. Lokal ishlab chiqish uchun bu juda qulay.

3-qadam. Tizim kutubxonalari

Baʼzi Python paketlari kompilyatsiya qilinadi, shuning uchun tizim kutubxonalari kerak:

Terminal window
sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev

4-qadam. Kodni yuklab olish

Terminal window
git clone --branch 19.0 --single-branch https://github.com/odoo/odoo.git

Enterprise ham kerak boʻlsa:

Terminal window
git clone --branch 19.0 --single-branch https://github.com/odoo/enterprise.git

Bu yerni tushunib olish muhim. Enterprise repozitoriysi toʻliq Odoo kodini oʻz ichiga olmaydi — u faqat qoʻshimcha modullar toʻplami. Server kodi Communityʼda. Enterpriseʼni ishlatish degani — Community serverini ishga tushirib, addons-path ga Enterprise papkasini qoʻshish degani. Shuning uchun Enterprise uchun ikkala repozitoriy ham kerak.

5-qadam. Python kutubxonalari

Odoo papkasiga oʻting va oʻrnating:

Terminal window
cd /CommunityPath
pip install -r requirements.txt

Maslahat: bir nechta Odoo versiyasi bilan ishlasangiz yoki tizim Pythonʼini toza saqlamoqchi boʻlsangiz, virtualenv orqali alohida muhit yarating. Majburiy emas, lekin versiyalar aralashib ketishining oldini oladi.

Bir eslatma: requirements.txt dagi paket versiyalari Odoo chiqqan paytdagi Debian/Ubuntu LTS versiyalariga mos tanlangan. Shuning uchun ularni oʻzboshimchalik bilan yangilash tavsiya etilmaydi.

6-qadam. wkhtmltopdf

Bu paket pip orqali oʻrnatilmaydi. Qoʻlda oʻrnatish kerak va aynan 0.12.6 versiyasi — faqat shu versiya kolontitullarni (header, footer) qoʻllab-quvvatlaydi.

Yuklab olish: github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3

Agar buni oʻtkazib yuborsangiz, Odoo ishlaydi — lekin PDF hisobot chiqarmoqchi boʻlganingizda xatolik beradi.

7-qadam. rtlcss (ixtiyoriy)

Faqat arab yoki ibroniy tillari kerak boʻlsa. Oʻzbek va rus tili uchun kerak emas.

Terminal window
sudo npm install -g rtlcss

8-qadam. Ishga tushirish

Terminal window
cd /CommunityPath
python3 odoo-bin --addons-path=addons -d mydb

Enterprise bilan — Enterprise yoʻli birinchi turishi shart, aks holda modullar notoʻgʻri yuklanadi:

Terminal window
python3 odoo-bin --addons-path=../enterprise,addons -d mydb

Terminalda shu qator chiqishini kuting:

odoo.modules.loading: Modules loaded.

Brauzerda oching: http://localhost:8069

Kirish: email admin, parol admin.

Diqqat: bu Odoo interfeysiga kirish hisobi. U PostgreSQL foydalanuvchisidan butunlay boshqa narsa.

Konfiguratsiya fayli

Har safar uzun buyruq yozish noqulay. Sozlamalarni faylga yozing — /etc/odoo/odoo.conf:

[options]
db_host = localhost
db_port = 5432
db_user = odoo
db_password = odoo
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom-addons
logfile = /var/log/odoo/odoo.log

Ishga tushirish:

Terminal window
python3 odoo-bin -c /etc/odoo/odoo.conf -d mydb

Paket orqali oʻrnatilgan boʻlsa, bu fayl allaqachon mavjud boʻladi.

Production uchun: eng muhim uchta narsa

Shu yergacha boʻlgan qismlar Odooʻni ishga tushiradi. Lekin real kompaniya ishlaydigan server uchun yana uchta narsa kerak.

1. Workers — koʻp jarayonli rejim

Standart holatda Odoo bitta jarayonda ishlaydi va Pythonʼning GIL cheklovi sababli protsessorning bir qismidan foydalanadi. Multi-processing rejimi esa ishni jarayonlar orasida taqsimlaydi.

U —workers parametri nolga teng boʻlmagan songa oʻrnatilganda yoqiladi.

Hisoblash qoidalari (rasmiy hujjatdan):

  • Workers soni = (CPU soni × 2) + 1
  • 1 worker ≈ 6 bir vaqtda ishlovchi foydalanuvchi
  • Cron uchun alohida worker kerak

Operativ xotira. Hisob soʻrovlarning 20% ogʻir, 80% yengil degan taxminga asoslanadi. Ogʻir worker ≈ 1 GB, yengil worker ≈ 150 MB.

Kerakli RAM = workers × ((0.8 × 150MB) + (0.2 × 1024MB))

Amaliy misol (rasmiy hujjatdagi namuna). Server: 4 CPU, 8 thread. 60 bir vaqtda ishlovchi foydalanuvchi.

  • 60 ÷ 6 = 10 — nazariy kerakli workers soni
  • (4 × 2) + 1 = 9 — nazariy maksimal workers soni
  • Tanlov: 8 worker + 1 cron
  • RAM = 9 × ((0.8×150) + (0.2×1024)) ≈ 3 GB

Konfiguratsiya fayliga:

[options]
limit_memory_hard = 1677721600
limit_memory_soft = 629145600
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 8

Eslatma: multi-processing rejimi Linux serverlari uchun chuqur moslashtirilgan va Windowsʼda ishlamaydi. Bu Linuxʼni tanlashning yana bir sababi.

2. Reverse proxy (nginx)

Odooʻni toʻgʻridan-toʻgʻri 8069 portda internetga chiqarish kerak emas. Oldiga nginx qoʻyiladi — u HTTPS, statik fayllar va yuklamani taqsimlash bilan shugʻullanadi.

Ikkita narsani unutmang:

LiveChat uchun alohida yoʻnaltirish. Multi-processing rejimida LiveChat uchun alohida worker ishga tushadi va u —gevent-port da tinglaydi. Odatiy holda HTTP soʻrovlar oddiy workerlarga boradi. Shuning uchun proxyʼda /websocket/ bilan boshlanadigan soʻrovlarni LiveChat workerʼiga yoʻnaltirish shart.

Proxy rejimi. Odooʻni —proxy-mode bilan ishga tushiring — shunda u proxyʼniki emas, haqiqiy mijoz maʼlumotlarini (hostname, scheme, IP) ishlatadi.

3. systemd xizmati

Server qayta ishga tushganda Odoo ham avtomatik koʻtarilishi kerak. Paket orqali oʻrnatilgan boʻlsa, bu allaqachon sozlangan:

Terminal window
sudo systemctl enable odoo
sudo systemctl start odoo
sudo systemctl status odoo

Manbadan oʻrnatgan boʻlsangiz, /etc/systemd/system/odoo.service faylini qoʻlda yaratish kerak boʻladi.

Eng koʻp uchraydigan xatolar

FATAL: role “odoo” does not exist
PostgreSQL foydalanuvchisi yaratilmagan yoki konfiguratsiyada boshqa nom koʻrsatilgan.

could not connect to server: Connection refused
PostgreSQL ishlamayapti: sudo systemctl status postgresql

pip install -r requirements.txt kompilyatsiya xatosi
Tizim kutubxonalari oʻrnatilmagan. libldap2-dev libpq-dev libsasl2-dev ni oʻrnating.

externally-managed-environment xatosi (Ubuntu 23.04+)
Yangi Ubuntu versiyalari tizim Pythonʼiga pip bilan oʻrnatishni bloklaydi. Yechim — virtualenv ishlatish. Bu aslida toʻgʻriroq yoʻl ham.

PDF hisobot chiqmaydi yoki kolontitulsiz
wkhtmltopdf oʻrnatilmagan yoki notoʻgʻri versiya. Aynan 0.12.6 kerak.

**Port band:**Address already in use
Boshqa Odoo nusxasi ishlab turibdi yoki port egallangan: —http-port=8070

Sayt sekin ishlaydi, foydalanuvchilar kutadi
Workers sozlanmagan. Standart bitta jarayonli rejim 5–10 foydalanuvchidan koʻpini koʻtarmaydi.

Qisqa xulosa

Linuxʼda Odoo oʻrnatish murakkab emas — murakkablik toʻgʻri usulni tanlashda.

  • Tezda koʻrib chiqish kerakmi → repozitoriy
  • Enterprise kerakmi → paket
  • Modul yozasizmi → manbadan
  • Real kompaniya ishlaydimi → manbadan yoki paket + workers + nginx + systemd

Oxirgi qatorni eʼtiborsiz qoldirmang. Odooʻni oʻrnatish — bu 20 daqiqalik ish. Uni production uchun toʻgʻri sozlash — bu alohida mavzu va u serverning qancha foydalanuvchi koʻtarishini belgilaydi.

Manbalar

  1. Packaged installers — Odoo 19.0 documentation www.odoo.com
  2. Source install — Odoo 19.0 documentation www.odoo.com
  3. Deploy — Odoo 19.0 documentation www.odoo.com

Yana oʻqing

Boʻlimlar