Odoo on CentOS 7 : https://www.rosehosting.com/blog/install-odoo-12-on-centos-7/
or official one : https://www.odoo.com/documentation/12.0/setup/install.html#fetch-the-sources
Don’t forget –depth 1 (otherwise : 2.3 GB, :-))
for os x, install postgres app, add bin directory to path in bash profile :
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
If os x Mojave, install header for zlib with this command :
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
For dev :
create a base module:
./odoo-bin scaffold mymodule ../odoo-modules/
install watchdog to auto update on code update
pip3 install watchdog
start server with external modules and development tools, -u mymodule is for update mymodule in development before start.
./odoo-bin --addons-path=addons,../odoo-modules/ --db-filter=odoo --dev=reload -u mymodule
follow odoo install from https://linuxize.com/post/how-to-deploy-odoo-12-on-ubuntu-18-04/
sudo yum install rh-python36 rh-python36-python-devel git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
for long polling and, thus, chat : add the line to /etc/odoo.conf
workers = 2
add service file for systemd
cat /etc/systemd/system/odoo12.service [Unit] Description=Odoo12 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo12 PermissionsStartOnly=true User=odoo12 Group=odoo12 ExecStart=/opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
add service and nginx configuration
cat /etc/nginx/sites-enabled/example.com # Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Handle longpoll requests location /longpolling { proxy_pass http://odoochat; } # Handle / requests location / { proxy_redirect off; proxy_pass http://odoo; } # Cache static files location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } # Gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; }
Selenium and chromedriver
on CentOS : install chromedriver and chromium browser and chromium headless, can be launched as root with –no-sandbox option
pip install selenium
example python script :
import time from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.headless = True options.add_argument('--no-sandbox') chrome_driver_binary = "chromedriver" driver = webdriver.Chrome(chrome_driver_binary, chrome_options=options) driver.get('http://www.google.com/xhtml'); #time.sleep(5) # Let the user actually see something! search_box = driver.find_element_by_name('q') search_box.send_keys('ChromeDriver') search_box.submit() #time.sleep(5) # Let the user actually see something! driver.quit()