Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
server_und_serverdienste:odoo_auf_ubuntu_mit_let_s_encrypt [2020/09/20 16:56] lomaserver_und_serverdienste:odoo_auf_ubuntu_mit_let_s_encrypt [2022/03/16 08:46] (aktuell) loma
Zeile 1: Zeile 1:
-====== Odoo auf Ubuntu 20.04 mit Let's Encrypt ======+====== Odoo13 auf Ubuntu 20.04 mit IPV6 und Let's Encrypt ====== 
 +Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! LOL \\ 
 +[[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KE592Y5993ZKW|{{:wiki:btn_donatecc_lg.gif|}}]] \\ 
 +\\ 
 +Hauseigenes Apt-Repo: [[https://apt.iteas.at]]    
 +\\ 
 +GITLAB Enterprise: [[https://git.osit.cc|{{:gitlab_logo.png?nolink&60|}}]]  
 +\\ 
 +\\
  
-Als erstes installiert man sich einen Ubuntu Server 20.04. Alles Standard. Als erstes richten wir zusätzliche Paketquellen ein.+{{:server_und_serverdienste:odoo-logo.png?nolink&200|}} 
 + 
 +\\ 
 +\\ 
 +===== Installation ===== 
 + 
 +Als erstes installiert man sich einen Ubuntu Server 20.04. Alles Standard. Nun richten wir zusätzliche Paketquellen ein.
 <code> <code>
 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415
Zeile 9: Zeile 23:
 apt update apt update
 </code> </code>
-Darin installieren wir zuerst den Postgresql und ein paar nützliche Abhängigkeiten.+Darin installieren wir zuerst den Postgresql Server und ein paar nützliche Abhängigkeiten.
 <code> <code>
-apt install postgresql postgresql-client python3-ldap wkhtmltox python-dev libldap2-dev libsasl2-dev libssl-dev+apt install postgresql postgresql-client python3-ldap wkhtmltox python-dev libldap2-dev libsasl2-dev libssl-dev -y
 </code> </code>
 Hat das geklappt gehts auch schon and die Odoo Installation. Hat das geklappt gehts auch schon and die Odoo Installation.
Zeile 17: Zeile 31:
 apt install odoo apt install odoo
 </code> </code>
-Danach ist Odoo bereits auf der Seite http://deinServer:8069/ erreichbar, und du kannst dir eine neue Datenbank anlegen. +Danach ist Odoo bereits auf der Seite http://erp.deinServer.foo:8069/ erreichbar, und du kannst dir eine neue Datenbank anlegen. 
  
-===== IPV6 für Odoo aktivieren =====+==== Addons ==== 
 +Möchte man manuel Addons installieren, muss man in der ''odoo.conf'' den Datenbanknamen unter ''db_name'' angeben und das Service neu starten. Danach muss man noch in den Developermode wechseln und die Appliste aktualisieren.  
 + 
 +==== IPV6 für Odoo aktivieren ====
 Hierfür editierst du einfach die Datei ''/etc/odoo/odoo.conf'', und änderst folgendes: Hierfür editierst du einfach die Datei ''/etc/odoo/odoo.conf'', und änderst folgendes:
 <code> <code>
Zeile 29: Zeile 46:
  
 ===== Nginx Proxy mit Let's Encrypt ===== ===== Nginx Proxy mit Let's Encrypt =====
 +Selbstverständlich willst du das dein Odoo verschlüsselt kommuniziert, richtig? Immerhin soll ja nicht jeder deine Daten mit lesen können ;)
 <code> <code>
 apt -y install nginx apt -y install nginx
 nano /etc/nginx/conf.d/odoo.conf nano /etc/nginx/conf.d/odoo.conf
 </code> </code>
-Nun ist das Portforwarding für HTTP und HTTPS auf den Server frei zu schalten. Du wirst vermutlich eine extra Hardwarefirewall hier für verwenden. +<code nginx> 
 +# Odoo Upstreams 
 +upstream erp.deinServer.foo { 
 + server [::1]:8069; 
 +
 + 
 +server { 
 +    listen 80; 
 +    listen [::]:80; 
 +    server_name erp.deinServer.foo; 
 +    access_log /var/log/nginx/odoo_access.log; 
 +    error_log /var/log/nginx/odoo_error.log; 
 + 
 + 
 +    # Proxy settings 
 +    proxy_read_timeout 720s; 
 +    proxy_connect_timeout 720s; 
 +    proxy_send_timeout 720s; 
 +    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; 
 + 
 +    # Request for root domain 
 +    location / { 
 +       proxy_redirect off; 
 +       proxy_pass http://erp.deinServer.foo; 
 +    } 
 + 
 +    # Cache static files 
 +    location ~* /web/static/
 +        proxy_cache_valid 200 90m; 
 +        proxy_buffering on; 
 +        expires 864000; 
 +        proxy_pass http://erp.deinServer.foo; 
 +    } 
 + 
 +    # Gzip 
 +    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; 
 +    gzip on; 
 +
 +</code> 
 + 
 + 
 +Nun ist das Portforwarding für HTTP und HTTPS auf den Server frei zu schalten. Du wirst vermutlich eine extra Hardwarefirewall hier für verwenden. Als nächstes installieren wir Certbot und holen uns ein frisches Zertifikat von Let's Encrypt. 
 +<code bash> 
 +apt install certbot -y 
 +systemctl stop nginx 
 +export DOMAIN="erp.deinServer.foo" 
 +export EMAIL="myemail@cdeinServer.foo" 
 +certbot certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiring 
 +</code> 
 +Ist alles korrekt, sieht der Output so aus: 
 +<code> 
 +IMPORTANT NOTES: 
 + - Congratulations! Your certificate and chain have been saved at: 
 +   /etc/letsencrypt/live/erp.deinServer.foo/fullchain.pem 
 +   Your key file has been saved at: 
 +   /etc/letsencrypt/live/erp.deinServer.foo/privkey.pem 
 +   Your cert will expire on 2020-12-19. To obtain a new or tweaked 
 +   version of this certificate in the future, simply run certbot 
 +   again. To non-interactively renew *all* of your certificates, run 
 +   "certbot renew" 
 + - Your account credentials have been saved in your Certbot 
 +   configuration directory at /etc/letsencrypt. You should make a 
 +   secure backup of this folder now. This configuration directory will 
 +   also contain certificates and private keys obtained by Certbot so 
 +   making regular backups of this folder is ideal. 
 + - If you like Certbot, please consider supporting our work by: 
 + 
 +   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate 
 +   Donating to EFF:                    https://eff.org/donate-le 
 +</code> 
 +Nachdem du das Zertifikat erfolgreich abgeholt hast, erweitern wir die Nginx Konfiguration wie folgt: 
 +<code nginx> 
 +# Odoo Upstreams 
 +upstream erp.deinServer.foo { 
 + server [::1]:8069; 
 +
 + 
 +server { 
 +    listen 80; 
 +    listen [::]:80; 
 +    server_name erp.deinServer.foo; 
 +    return 301 https://erp.deinServer.foo$request_uri; 
 +
 + 
 + 
 +server { 
 +    listen 443 ssl; 
 +    listen [::]:443 ssl; 
 +    server_name erp.deinServer.foo; 
 +    access_log /var/log/nginx/odoo_access.log; 
 +    error_log /var/log/nginx/odoo_error.log; 
 + 
 +    # SSL 
 +    ssl_certificate /etc/letsencrypt/live/erp.deinServer.foo/fullchain.pem; 
 +    ssl_certificate_key /etc/letsencrypt/live/erp.deinServer.foo/privkey.pem; 
 +    ssl_trusted_certificate /etc/letsencrypt/live/erp.deinServer.foo/chain.pem; 
 + 
 + 
 +    # Proxy settings 
 +    proxy_read_timeout 720s; 
 +    proxy_connect_timeout 720s; 
 +    proxy_send_timeout 720s; 
 +    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; 
 + 
 +    # Request for root domain 
 +    location / { 
 +       proxy_redirect off; 
 +       proxy_pass http://erp.deinServer.foo; 
 +    } 
 + 
 +    # Cache static files 
 +    location ~* /web/static/
 +        proxy_cache_valid 200 90m; 
 +        proxy_buffering on; 
 +        expires 864000; 
 +        proxy_pass http://erp.deinServer.foo; 
 +    } 
 + 
 +    # Gzip 
 +    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; 
 +    gzip on; 
 +
 +</code> 
 +Und starten Nginx wieder neu. ''systemctl restart nginx'' Nun hat man sein Odoo mit Proxy und neuem SSL Zertifikat. Auf der CMD kann man das Zertifikat jeder Zeit prüfen: 
 +<code> 
 +certbot certificates 
 +</code> 
 + 
 +{{:server_und_serverdienste:odoo-database.png?direct&700|}} 
 +{{ :server_und_serverdienste:odoo-app-page.png?direct&550|}} 
 + 
 + 
 +==== Cronjob für Let's Encrypt ==== 
 + 
 + 
 +Damit das ganze auch automatisch passiert, richten wir noch einen wöchentlichen Cronjob ein. ''nano /etc/cron.weekly/certbot-auto-odoo'', mit folgendem Inhalt: 
 +<code bash> 
 +#!/bin/bash 
 +/usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" 
 +</code> 
 +Datei ausführbar machen nicht vergessen ;) ''chmod +x /etc/cron.weekly/certbot-auto-odoo''.  
 + 
 +==== Sicherheit ==== 
 +Aus Sicherheitsgründen wird empfohlen den Datenbankmanager im öffentlichem Betrieb zu deaktivieren. Hierzu öffnet man die Odoo Hauptkonfiguration unter ''/etc/odoo/odoo.conf'' und ändert diesen Wert: 
 +<code> 
 +- list_db = True 
 ++ list_db = False 
 +</code> 
 + 
 +===== LDAPanbindung für UCS (Univention) ===== 
 +LDAP Server: FQDN \\ 
 +LDAP Port: 7389 \\ 
 +TLS verwenden: nicht anhaken \\ 
 +LDAP binddn: hier einen nicht privelgierten User anlegen, einen ldapreader \\ 
 +LDAP Filter: Beispiel \\ 
 +<code> 
 +(&(uid=%s)(memberof=cn=odoo,cn=groups,dc=tux,dc=lan)) 
 +</code> 
  
 +===== Links und Quellen =====
  
-===== Links =====+{{:server_und_serverdienste:odoo-logo.png?nolink|}}
  
 https://computingforgeeks.com/how-to-install-odoo-on-ubuntu-linux/ \\ https://computingforgeeks.com/how-to-install-odoo-on-ubuntu-linux/ \\