Odoo ni oʻz serveringizda ikki yoʻl bilan oʻrnatish mumkin: tayyor paket bilan yoki manba kodidan. Paket ishchi server uchun qulay, manba kodi esa dasturchilar va bir serverda bir necha versiya kerak boʻlganda mos keladi. Oʻrnatish ishning boshlanishi xolos: ishchilar soni, HTTPS, bazalar menejerini yopish va zaxira nusxa alohida sozlanadi. Enterprise bazasi esa haftada bir marta Odoo serveriga ulanib turishi kerak.
Aytaylik, kompaniya Odoo 20 ni oʻz serveriga qoʻymoqchi. Birinchi savol oddiy, lekin keyingi hamma narsa shunga bogʻliq: qaysi yoʻldan boramiz? Hujjat ikki yoʻl beradi. Birinchisi paketli oʻrnatuvchilar, yaʼni Debian asosidagi tizimlar, RPM asosidagi tizimlar va Windows uchun tayyor fayllar, ular Community va Enterprise nashrlari uchun mavjud. Ikkinchisi manba kodi: dasturni oʻrnatmasdan, kod papkasidan toʻgʻridan-toʻgʻri ishga tushirish.
Paket va manba kodi: ikki yoʻlning farqi
Paket oʻrnatilganda Odoo xizmat sifatida qoʻshiladi, kerakli PostgreSQL foydalanuvchisi yaratiladi va server oʻzi ishga tushadi. Odoo 20 uchun Debian paketi hozircha Ubuntu 24.04 LTS ni qoʻllaydi, RPM paketi esa Fedora 42 ni. Windows paketi haqida hujjat ochiq ogohlantiradi. U sinov va bitta foydalanuvchili mahalliy nusxa uchun moʻljallangan, ishchi tizimga esa tavsiya etilmaydi.
Manba kodi yoʻli boshqacha ishlaydi. Hujjatning oʻzi aytadi: bu oʻrnatish emas, kodni bevosita ishga tushirish. Buning uch foydasi bor. Server qachon yonishi va oʻchishi ustidan toʻliq nazorat qoladi, sozlamalarni sozlash faylini tahrirlamasdan buyruq qatoridan oʻzgartirish mumkin, bir mashinada esa bir necha versiyani yonma-yon yuritish mumkin. Kodni arxiv koʻrinishida yoki Git orqali olish mumkin.
Enterprise uchun bitta tafsilot muhim. Enterprise ombori toʻliq Odoo emas, u faqat qoʻshimcha ilovalar toʻplami, server kodi esa Community omborida turadi, shuning uchun ikkala ombor ham yuklab olinadi va Enterprise papkasi ilovalar yoʻllari roʻyxatida birinchi turishi shart. Tartib buzilsa, ilovalar toʻgʻri yuklanmaydi.
| Mezon | Paket | Manba kodi |
|---|---|---|
| Kimga mos | Ishchi server, tez ishga tushirish | Dasturchi, sinov, bir necha versiya |
| Xizmat sifatida ishlash | Oʻrnatuvchi oʻzi sozlaydi | Qoʻlda ishga tushiriladi |
| PostgreSQL foydalanuvchisi | Oʻrnatuvchi yaratadi | Qoʻlda yaratiladi |
| Yangilash | Yangi paket eskisi ustiga oʻrnatiladi | Arxiv almashtiriladi yoki Git orqali olinadi |
| Enterprise | Yuklab olish sahifasidan paket | Ikkita ombor kerak |
Yangilash sahifasi paketli yoʻlni tavsiya etilgan usul deb ataydi. Demak, jamoada alohida dasturchi boʻlmasa va bir serverdan koʻp narsa kerak boʻlmasa, qaror ancha oson. Manba kodi esa sinov serveri va maxsus modul ustida ishlaydigan odam uchun qulayroq.
Server talablari: uch narsa tekshiriladi
Odoo 20 uchun Python 3.12 yoki yangisi hamda PostgreSQL 16 yoki yangisi kerak. Python ning yuqori chegarasi kod ichida belgilangan va 3.14 ga teng. Oldingi versiyada bu raqamlar past edi: Python uchun 3.10, PostgreSQL uchun 13. Shu sababli eski serverni oldindan yangilash rejalashtiriladi, aks holda yangi Odoo umuman ishga tushmaydi. PostgreSQL ning 16 versiyasini loyiha 2028-yil 9-noyabrgacha qoʻllab-quvvatlaydi.
Uchinchi narsa PDF hisobotlarni chiqaruvchi alohida dastur. U odatiy usulda oʻrnatilmaydi. Hujjat uning aynan 0.12.6 versiyasini qoʻlda oʻrnatishni talab qiladi, aks holda hisobotlarda yuqori va pastki kolontitul chiqmaydi. PostgreSQL da esa Odoo uchun alohida foydalanuvchi ochiladi, chunki Odoo asosiy postgres foydalanuvchisi bilan ulanishni taqiqlaydi.
Birinchi ishga tushirish va uning tuzogʻi
Manba kodidan ishga tushirgach, brauzerda 8069-portni ochasiz. Hujjat birinchi kirish uchun login ham, parol ham admin deb yozadi. Xavfsizlik boʻlimi esa teskarisini talab qiladi: admin kabi standart parollar hech qachon, hatto sinov bazasida ham qolmasin. Bu ziddiyat emas, bosqich farqi: birinchisi dastlabki kirish haqida, ikkinchisi serverni internetga ochishdan oldin bajariladigan shart haqida, shuning uchun parolni birinchi kirishning oʻzidayoq almashtirgan maʼqul.
Ishchi server: bitta oqimdan bir nechta ishchiga
Odoo ning ichki serveri ikki rejimda ishlaydi. Koʻp oqimli rejim oddiy, sukut boʻyicha yoqilgan va Windows da ham ishlaydi, lekin u dasturlash va namoyish uchun moʻljallangan, chunki Python cheklovi tufayli jihozdan toʻliq foydalana olmaydi. Koʻp jarayonli rejim ishchi tizim uchun. U ishchilar guruhini yaratadi va resursdan oshib ketgan ishchini oʻzi qayta yoqadi, ammo faqat Linux da ishlaydi.
Ishchilar sonini hujjat oddiy qoida bilan hisoblaydi: yadrolar sonini ikkiga koʻpaytirib, bittasini qoʻshing. Bitta ishchi taxminan 6 ta bir vaqtdagi foydalanuvchiga yetadi, rejalashtirilgan vazifalar uchun esa yana alohida ishchi kerak. Xotira uchun hujjat ikki xil ishchini ajratadi. Ogʻir ishchi taxminan 1 GB, yengil ishchi taxminan 150 MB oladi, ogʻir soʻrovlar ulushi esa 20 foiz deb qabul qilinadi.
Hujjatdagi misolni qaytadan hisoblab koʻramiz.
| Qadam | Hisob |
|---|---|
| Sharoit | 4 yadro, 60 bir vaqtdagi foydalanuvchi |
| Foydalanuvchilar boʻyicha | 60 / 6 = 10 ishchi |
| Yadrolar boʻyicha yuqori chegara | 4 × 2 + 1 = 9 ishchi |
| Tanlangan son | 8 ishchi va rejalashtirilgan vazifalar uchun 1 ta |
| Bitta ishchining oʻrtacha hajmi | 0,8 × 150 + 0,2 × 1024 ≈ 325 MB |
| 9 ishchi uchun xotira | 9 × 325 ≈ 2923 MB, taxminan 3 GB |
Hisobdan koʻrinadiki, 60 kishilik jamoa uchun ham katta server shart emas. Odoo ning oʻziga taxminan 3 GB xotira yetadi, lekin PostgreSQL va operatsion tizimning xotirasi bu hisobga kirmaydi va alohida qoʻshiladi. Sozlama misolida chegaralar ham bor. Yumshoq xotira chegarasi 600 MB, qattiq chegara 1600 MB, bitta soʻrovga protsessor vaqti 600 soniya, umumiy vaqt 1200 soniya. Bular hujjatning namunasi, sizning yuklamangiz uchun tayyor qiymat emas.
HTTPS va teskari proksi
Odoo kirish maʼlumotini ochiq matn koʻrinishida uzatadi. Shu sababli internetga ochiq server faqat HTTPS orqali ishlashi kerak. Shifrlashni odatda Odoo oldida turgan teskari proksi bajaradi, hujjat misol uchun Nginx ni oladi. Proksi oddiy HTTP soʻrovlarni xavfsiz portga yoʻnaltiradi, Odoo esa proksi rejimini yoqadi. Bu rejim faqat Odoo haqiqatan proksi ortida turganda yoqiladi.
Jonli chat va boshqa uzoq ulanishlar uchun alohida ishchi bor. U boshqa portda tinglaydi: hujjat misolida bu 8072, asosiy port esa 8069. Proksi websocket yoʻlidagi soʻrovlarni shu portga yoʻnaltirmasa, ular oddiy ishchilarga tushadi. Statik fayllarni ham proksining oʻzi berishi mumkin, bu sahifalar tezligini oshiradi. Qoʻshimcha himoya sifatida hujjat bir yillik majburiy HTTPS sarlavhasini va seans cookie sini faqat shifrlangan aloqada yuborishni tavsiya qiladi.
Xavfsizlik: birinchi kuni yopiladigan joylar
Hujjatning xavfsizlik boʻlimi uzun, hammasini bir kunda bajarib boʻlmaydi. Ayrim bandlar esa aynan birinchi kunning ishi, chunki ular serverni internetga ochgan zahoti xavf tugʻdiradi:
- Bazalar menejeri sahifasini internetga ochiq tizimda oʻchiring. Hujjat uni ishlab chiqish va namoyish vositasi deb ataydi.
- Avval domen nomi boʻyicha bazani tanlash qoidasini sozlang, soʻng bazalar roʻyxatini yashiring.
- Menejer ochiq qolsa, asosiy parolni standart qiymatdan almashtiring va tasodifiy hosil qiling.
- PostgreSQL foydalanuvchisi super-foydalanuvchi boʻlmasin, bazalarga boshqa foydalanuvchi egalik qilsin.
- Internetga ochiq serverda demo maʼlumot oʻrnatmang: unda tayyor loginlar va parollar bor.
- Zaxira nusxani har kuni oling va serverning oʻzi yetib bormaydigan masofaviy joyga koʻchiring.
Kirish urinishlari jurnalga yoziladi va fail2ban kabi vosita ularni oʻqiy oladi. Hujjat misolida bir daqiqada 10 ta muvaffaqiyatsiz urinishdan keyin manzil 15 daqiqaga bloklanadi. Sinov va namoyish nusxalarini ham ishchi serverdan alohida mashinada yuritish va ularga ham xuddi shu choralarni qoʻllash tavsiya etiladi.
Enterprise bazasini roʻyxatdan oʻtkazish
Enterprise bazasi obuna kodi bilan ulanadi. Kod boshqaruv panelidagi bannerga kiritiladi, ulanish muvaffaqiyatli boʻlsa banner yashil boʻladi va tugash sanasini koʻrsatadi. Qoida oddiy: bitta obunaga bitta baza. Sinov yoki ishlab chiqish uchun ikkinchi baza kerak boʻlsa, uni obunaga ulamasdan, ishchi bazaning nusxasi sifatida olish mumkin. Nusxa olishda test uchun moʻljallangan variant tanlansa, tashqariga xat va toʻlov ketmaydi.
Tarmoq tomonida ish roʻyxatdan oʻtish bilan tugamaydi, chunki bazaning obunasi vaqti-vaqti bilan qayta tekshiriladi. Server Odoo ning tekshiruv serveriga chiqish ulanishini ochishi kerak: Odoo 18 va undan yangi versiyalarda services.odoo.com ga 80-port orqali. Yangilanish xabari haftada bir marta ishlaydi, shuning uchun port roʻyxatdan oʻtgandan keyin ham yopilmaydi. 80-port siyosatga zid boʻlsa, 443-port ochiladi va sozlamaga maxsus manzil qoʻshiladi.
Foydalanuvchilar soni obunadagidan oshib ketsa, bazada ogohlantirish chiqadi va 30 kunlik hisoblagich boshlanadi. Shu muddatda chora koʻrilmasa, baza muddati tugaydi. Chora ikkita: obunaga foydalanuvchi qoʻshish yoki ortiqcha foydalanuvchilarni faolsizlantirish.
Kodni yangilash va versiya oʻtkazish bir narsa emas
Oʻrnatilgan serverda kodni yangilash oson: yangi paketni eskisi ustiga oʻrnatish kifoya. Maʼlumot oʻzgarmaydi, agar PostgreSQL ni oʻchirib tashlamasangiz. Paketlar har kuni yangilanadi va xavfsizlik tuzatishlarini oʻz ichiga oladi. Oldin zaxira nusxa olinadi, oʻrnatishdan keyin esa xizmat qayta ishga tushiriladi. Git bilan oʻrnatilgan boʻlsa, yangi kod olinib, mahalliy oʻzgarishlar ustiga birlashtiriladi.
Versiya oʻtkazish esa boshqa ish. U baza tuzilmasini qaytarib boʻlmaydigan darajada oʻzgartiradi, kod yangilanishi esa eski nusxani qayta oʻrnatish bilan ortga qaytadi, shuning uchun bu ikki amalni bir kunda va bir qadamda aralashtirmaslik kerak.
Amalda nima qilish mumkin
Quyidagi qadamlar hujjat mantiqidan chiqarilgan, ularni tahririyat tavsiyasi deb oʻqing:
- Avval talabni yozib oling: foydalanuvchilar soni, bir vaqtdagi foydalanuvchilar, yadro va xotira. Ishchilar sonini hujjat formulasidan chiqaring.
- Ishchi tizim uchun Linux va paketni tanlang. Manba kodini sinov va ishlab chiqish serveriga qoldiring.
- Internetga chiqarishdan oldin HTTPS, proksi, bazalar menejerini yopish, asosiy parol va zaxirani tekshiring.
- Enterprise boʻlsa, serverdan chiqish ulanishini xavfsizlik devorida oldindan oching.
- Sinov bazasini ishchi baza nusxasidan oling va obunaga ikkinchi bazani ulamang.
Paket tayyor yoʻl, manba kodi esa erkin yoʻl. Ikkalasida ham asosiy ish oʻrnatishdan keyin boshlanadi: ishchilar soni, HTTPS, bazalar menejerini yopish va zaxira. Keyingi savol shu: bu sozlamalarni kim va qancha muddatda tekshirib turadi?
Asosiy atamalar
- On-premise
- Dasturni bulutda emas, kompaniyaning oʻz serverida yoki ijaraga olingan serverida ishlatish usuli.
- Paketli oʻrnatuvchi
- Odoo ni bir necha bosqichda oʻrnatadigan tayyor fayl. U xizmatni va kerakli foydalanuvchini oʻzi sozlaydi.
- Manba kodi
- Dasturning ochiq matn koʻrinishidagi kodi. Odoo ni oʻrnatmasdan, shu kod papkasidan toʻgʻridan-toʻgʻri ishga tushirish mumkin.
- PostgreSQL
- Odoo maʼlumotlarini saqlaydigan bepul maʼlumotlar bazasi dasturi.
- Ishchi jarayon
- Odoo soʻrovlarini bajaradigan alohida jarayon. Ishchilar koʻp boʻlsa, bir vaqtda koʻproq foydalanuvchiga xizmat koʻrsatiladi.
- Teskari proksi
- Internet bilan Odoo oʻrtasida turuvchi dastur. U shifrlashni bajaradi va soʻrovlarni kerakli portga yoʻnaltiradi.
- HTTPS
- Brauzer bilan server oʻrtasidagi aloqani shifrlaydigan usul. Parol va maʼlumot oʻqib boʻlmaydigan holda uzatiladi.
- Bazalar menejeri
- Odoo ichidagi sahifa: u bazalarni yaratadi, nusxalaydi va oʻchiradi. Internetga ochiq serverda yopib qoʻyiladi.
- Obuna kodi
- Enterprise bazasini Odoo obunasi bilan bogʻlaydigan kod. Bitta kod faqat bitta bazaga ulanadi.
- Fayllar ombori
- Baza bilan birga saqlanadigan hujjat va rasm fayllari. Zaxira nusxada baza ham, shu fayllar ham boʻlishi kerak.
Manbalar
Maqola quyidagi manbalarga tayanadi:
- Odoo 20.0 hujjatlari, Database management: On-premise, Packaged installers (Debian, Fedora, Windows paketlari, PDF dastur versiyasi). https://www.odoo.com/documentation/20.0/administration/on_premise/packages.html (koʻrilgan: 23-oktabr, 2026)
- Odoo 20.0 hujjatlari, On-premise: Source install (kodni olish, Python va PostgreSQL talabi, Enterprise ombori, birinchi ishga tushirish). https://www.odoo.com/documentation/20.0/administration/on_premise/source.html (koʻrilgan: 23-oktabr, 2026)
- Odoo 20.0 hujjatlari, Database management: On-premise (bazani roʻyxatdan oʻtkazish, nusxa olish, chiqish ulanishi, foydalanuvchi limiti). https://www.odoo.com/documentation/20.0/administration/on_premise.html (koʻrilgan: 23-oktabr, 2026)
- Odoo 20.0 hujjatlari, On-premise: System configuration (ishchilar, xotira, HTTPS, proksi, xavfsizlik). https://www.odoo.com/documentation/20.0/administration/on_premise/deploy.html (koʻrilgan: 23-oktabr, 2026)
- Odoo 20.0 hujjatlari, On-premise: Bugfix updates (kod yangilash tartibi, update va upgrade farqi). https://www.odoo.com/documentation/20.0/administration/on_premise/update.html (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., odoo/release.py, 20.0 branchi: MIN_PY_VERSION, MAX_PY_VERSION va MIN_PG_VERSION qiymatlari, GitHub. https://github.com/odoo/odoo/blob/20.0/odoo/release.py (koʻrilgan: 23-oktabr, 2026)
- PostgreSQL Global Development Group, Versioning Policy, postgresql.org (16 versiyasi uchun oxirgi relizlar sanasi). https://www.postgresql.org/support/versioning/ (koʻrilgan: 23-oktabr, 2026)