የSmartERP መመሪያ የAshewa Technology Solutions መድረክ

በdoc.smarterp.et ላይ ማተም

መመሪያውን ከራሱ ዶሜይን በHTTPS ያቅርቡ፤ የቀረውን የSmartERP ክፍል ለውጭ ሳያጋልጡ።

በነባሪነት ጣቢያው በSmartERP አድራሻዎ ላይ በ/docs ይገኛል። እንደ https://doc.smarterp.et ባለ የራሱ ዶሜይን ለማቅረብ፣ ከፊት ለፊት ሪቨርስ ፕሮክሲ (nginx) ያስቀምጡ፣ የዶሜይኑን ሥር (root) ወደ /docs/ ያዛምዱ፣ እንዲሁም አገናኞቹ ከሥሩ መጀመር እንዳለባቸው ለሞጁሉ ይንገሩ።

የሚሰራ ውቅር ከሞጁሉ ጋር ይመጣል፦ smarterp_docs/deploy/nginx-doc.smarterp.et.conf።

የሚያስፈልግዎት#

  • smarterp_docs የተጫነበት፣ የሚሰራ SmartERP፣ ከፕሮክሲው ሊደረስበት የሚችል (ብዙውን ጊዜ 127.0.0.1:8069)።
  • nginx ማስኬድ የሚችል፣ ወደቦች 80 እና 443 የተከፈቱበት ሰርቨር።
  • የsmarterp.et DNS ማስተዳደር መቻል።

ደረጃዎች#

1. DNS#

ለdoc.smarterp.et ወደ ፕሮክሲ ሰርቨሩ የሚያመለክት A መዝገብ (record) ይፍጠሩ (IPv6 የሚጠቀሙ ከሆነ AAAA መዝገብንም ይፍጠሩ)።

2. Odoo ከፕሮክሲ ጀርባ መሆኑን ይንገሩት#

በodoo.conf ውስጥ፦

proxy_mode = True

Odooን እንደገና ያስጀምሩ። ይህ Odoo የX-Forwarded-* ራስጌዎችን (headers) እንዲያምን ያደርገዋል፤ ስለዚህ አድራሻዎችና ማዞሪያዎች (redirects) https እና እውነተኛውን የአስተናጋጅ ስም (host name) ይጠቀማሉ።

3. የመሠረት መንገዱን (base path) ያዘጋጁ#

በSmartERP ውስጥ Settings → Technical → Parameters → System Parameters ላይ ይፍጠሩ ወይም ያስተካክሉ፦

ቁልፍእሴት
smarterp_docs.base_path/

ከዚያ ጣቢያው ከ/docs/en/... ይልቅ እንደ /en/getting-started/... ያሉ አገናኞችን ይጽፋል፤ ወደ doc.smarterp.et የሚመጣ ጎብኚ የሚፈልገው ይህንኑ ነው። ጣቢያውን በዋናው አድራሻዎ ላይ ሲጠቀሙ በነባሪው (/docs) ይተዉት።

4. ሰርተፍኬት ያግኙ#

sudo mkdir -p /var/www/certbot
sudo certbot certonly --webroot -w /var/www/certbot -d doc.smarterp.et

(የማረጋገጫ ጥያቄው (challenge) እንዲመለስ አስቀድመው nginx ን በወደብ 80 ብሎክ ያስጀምሩ።)

5. nginx ን ያዋቅሩ#

sudo cp smarterp_docs/deploy/nginx-doc.smarterp.et.conf /etc/nginx/sites-available/doc.smarterp.et
sudo ln -s /etc/nginx/sites-available/doc.smarterp.et /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

መጀመሪያ በፋይሉ ውስጥ ሁለት ነገሮችን ያስተካክሉ፦ በX-Odoo-dbfilter ^smarterp$ ውስጥ ያለውን የዳታቤዝ ስም እና ወደቡ 8069 ካልሆነ የላይኛውን ወደብ (upstream port)።

6. ያረጋግጡ#

curl -sI https://doc.smarterp.et/            # 302 to /en or /am
curl -s  https://doc.smarterp.et/en | head   # the home page
curl -sI https://doc.smarterp.et/web/login   # 404: the rest of Odoo is not exposed
curl -s  https://doc.smarterp.et/sitemap.xml # every published page

ማዛመዱ እንዴት እንደሚሰራ#

location / {
    proxy_pass http://smarterp_odoo/docs/;
    ...
}

proxy_pass መንገድ (/docs/) ስላለው nginx የተዛመደውን / በእሱ ይተካል። ስለዚህ / ወደ /docs/ ይቀየራል፣ /en/administration/troubleshooting ደግሞ ወደ /docs/en/administration/troubleshooting ይቀየራል። በዚህ አስተናጋጅ (host) በኩል በOdoo ውስጥ ሌላ ምንም ነገር ሊደረስበት አይችልም፦ /web/login ወደ /docs/web/login ይቀየራል፤ ይህ ደግሞ የለም።

ብቸኛው ተጨማሪ ቦታ (location) /smarterp_docs/static/ መመሪያው በሞጁሉ static አቃፊ ውስጥ የሚያመጣቸውን ምስሎች ያቀርባል።

ዳታቤዙን መምረጥ#

Odoo የትኛውን ዳታቤዝ ማንበብ እንዳለበት ማወቅ አለበት። ሁለት መንገዶች አሉ፦

  • የፕሮክሲ ራስጌ (ይመከራል)፦ በnginx ፋይሉ ውስጥ እንደመጣው ያለው የX-Odoo-dbfilter ^smarterp$ መስመር።
  • በodoo.conf ውስጥ ያለው dbfilter፦ dbfilter = ^smarterp$።

Odoo አንድ ዳታቤዝ ብቻ ካለው ራሱ ይመርጠዋል።

ማስተካከል#

አርታዒዎች የሚሰሩት በዋናው የSmartERP አድራሻ ላይ በባክኤንድ ነው፤ በመመሪያው ዶሜይን ላይ አይደለም። በገጽ ላይ ያለው ይህን ገጽ አርም አገናኝ የሚታየው ለገባ አርታዒ ብቻ ነው፤ ወደ ባክኤንድም ይጠቁማል።

ማወቅ ጥሩ የሆነው#

  • በሁሉም ቦታ HTTPS። የnginx ፋይሉ ወደብ 80ን ወደ 443 ያዞራል፣ HSTS ንም ያዘጋጃል።
  • የፍለጋ ሞተሮች። /robots.txt ማሰስን (crawling) ይፈቅዳል፣ /sitemap.xml ደግሞ የታተመውን እያንዳንዱን ገጽ በሁለቱም ቋንቋዎች ይዘረዝራል። ሳይትማፑን ለGoogle Search Console እና ለBing Webmaster Tools ያስገቡ።
  • ረቂቆች ግላዊ ሆነው ይቆያሉ። በዚህ አስተናጋጅ ላይ ያልታተሙ ገጾች 404 ይመልሳሉ፤ ምክንያቱም እዚያ የሚመጡ ጎብኚዎች እንደ አርታዒ ፈጽሞ አይገቡም።
  • ጊዜያዊ ማከማቻ። CSS እና JavaScript በገጹ ውስጥ ስለሚካተቱ አንድ ገጽ አንድ ጥያቄ (request) ብቻ ነው። የፕሮክሲ ጊዜያዊ ማከማቻ (caching) ከጨመሩ በሙሉ URL መሠረት ያከማቹ፤ ለገቡ ተጠቃሚዎች ግን አያከማቹ።
  • የጥያቄ መጠን ገደቦች። የፍለጋ መጨረሻ ነጥቦችን (endpoints) የሚገድብ በአስተያየት መልክ የተቀመጠ ምሳሌ በnginx ፋይሉ ውስጥ አለ።

የችግር መፍቻ#

ምልክቱምክንያትመፍትሔ
ለእያንዳንዱ ገጽ 404ሞጁሉ አልተጫነም፣ ወይም Odoo ዳታቤዝ መምረጥ አይችልም።ይጫኑት። የX-Odoo-dbfilter እሴቱን ያረጋግጡ።
የዳታቤዝ መምረጫ ገጽ ይታያልበርካታ ዳታቤዞች ይዛመዳሉ።X-Odoo-dbfilter በትክክል አንዱን ብቻ እንዲዛመድ ያድርጉ።
አገናኞች ወደ /docs/... ያመለክታሉ እና ይበላሻሉsmarterp_docs.base_path / አይደለም።ያዘጋጁት።
ማዞሪያዎች ወደ http:// ይሄዳሉproxy_mode ጠፍቷል።proxy_mode = True ያዘጋጁ እና እንደገና ያስጀምሩ።
ምስሎች አይጫኑምየ/smarterp_docs/static/ ቦታ (location) የለም።በnginx ፋይሉ ውስጥ ያቆዩት።
በዋናው አድራሻ ጥሩ ነው፣ በዶሜይኑ ላይ ግን የተሳሳተበጊዜያዊ ማከማቻ ውስጥ የቆየ CSS ወይም ጊዜው ያለፈበት ግቤት።Odooን እንደገና ያስጀምሩ እና የፕሮክሲ ጊዜያዊ ማከማቻውን ያጽዱ።
መጨረሻ የተሻሻለው: 2026-10-16