Edellisessä Odoo-blogipostauksessani virittelin Let's Encrypt SSL-sertifikaatin ja Nginx-webbipalvelimen Odoo 10:n eteen. Lopputulemana Odoo mäpättiin toimimaan niin, että tietokannan nimi = alidomainin nimi.

Nyt halusin kuitenkin konfiguroida webbiserverin niin, että usean Odoo-kannan ympäristössä tietty kantaa mäppäytyy suoraan domainiin, ei alidomainiin. Tunnustan, että minulta meni Googlaillessa aika kauan, ennen kuin sain tuon toimimaan. Onnistuihan se lopulta ja nyt minulla on samalla palvelimella useampia Odoo-kantoja, joista osa mäpätään Nginx-konfiguroinnilla subdomain-nimellä ja osa suoraan domain-nimellä.

Tämän kirjoituksen esimerkissä mäpätään "kaikki"-niminen Odoo-kanta "kaikki"-nimisellä Nginx-konfigurointifilellä toimimaan ssl-salauksella,  kirjoittipa selaimeen minkä tahansa alla olevista osoitteista:

Kaiken voi tehdä muutoin samoin kuin edellisessäkin ohjeessa, mutta Nginx-konffista on säädettävä alla olevien lihavoitujen kohtien mukaisesti:

 

upstream kaikki {

server 127.0.0.1:8069 weight=1 fail_timeout=0;

}

upstream kaikki-im {

server 127.0.0.1:8072 weight=1 fail_timeout=0;

}

## http redirects to https ##

server {

listen 80;

server_name kaikkipanee.com www.kaikkipanee.com 

# Strict Transport Security

add_header Strict-Transport-Security max-age=2592000;

rewrite ^/.*$ https://$host$request_uri? permanent;

}

server {

# server port and name

listen 443;

server_name kaikkipanee.com www.kaikkipanee.com

# Specifies the maximum accepted body size of a client request,

# as indicated by the request header Content-Length.

client_max_body_size 200m;

# add ssl specific settings

keepalive_timeout 60;

ssl on;

ssl_certificate /etc/letsencrypt/live/kaikkipanee.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/kaikkipanee.com/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;

        ssl_dhparam /etc/ssl/certs/dhparam.pem;

        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

        ssl_session_timeout 1d;

        ssl_session_cache shared:SSL:50m;

        ssl_stapling on;

        ssl_stapling_verify on;

        add_header Strict-Transport-Security max-age=15768000;

# limit ciphers

# ssl_ciphers HIGH:!ADH:!MD5;

# ssl_protocols SSLv3 TLSv1;

# ssl_prefer_server_ciphers on; 

# increase proxy buffer to handle some OpenERP web requests

proxy_buffers 16 64k;

proxy_buffer_size 128k;

#general proxy settings

# force timeouts if the backend dies

proxy_connect_timeout 600s;

proxy_send_timeout 600s;

proxy_read_timeout 600s;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

# set headers

# proxy_set_header Host $host (kommentoitu pois ja vaihdettu alla olevaan);

proxy_set_header Host kaikki.kaikkipanee.com$request_uri?;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;

# Let the OpenERP web service know that were using HTTPS, otherwise

# it will generate URL using http:// and not https://

proxy_set_header X-Forwarded-Proto https;

#proxy_redirect off (kommentoitu pois ja vaihdettu alla olevaan);

proxy_redirect http://kaikki.kaikkipanee.com/ http://kaikkipanee.com/;

proxy_buffering off;

location ~ /.well-known {

                allow all;

}

location / {

proxy_pass http://kaikki;

}

location /longpolling {

proxy_pass http://kaikki-im;

}

# cache some static data in memory for 60mins.

# under heavy load this should relieve stress on the OpenERP web interface a bit.

location /web/static/ {

proxy_cache_valid 200 60m;

proxy_buffering on;

expires 864000;

proxy_pass http://kaikki;

}

}

 

Tuon lisäksi on tarkistettava etc/odoo-server.conf -filestä, että proxy_mode = True. Defaultisti se ainakin mulla oli False:

#dbfilter = .*

dbfilter = ^%d$

#list_db = True

list_db = False

#proxy_mode = False

proxy_mode = True

 

Edellisessä Odoo-ohjeessani asensin Odoo 10 -toiminnanohjausjärjestelmän Ubuntu 16.04 virtuaaliserverille, mutta yhteyttä ei vielä suojattu, eikä serverin osoite http://<IP-osoite>:8069 ole kovin miellyttävä sekään. Tämän ohjeen asennuksien ja konfigurointien jälkeen edellisessä ohjeessa asentamani Odoo-ympäristön yksi kanta (ja ainoastaan se), nimeltään "odoo", on käytettävissä Let's Encrypt open source SSL-sertifikaatilla (https://...) varustettuna osoitteessa:

https://odoo.rockit.fi

Koska olen luomassa sertifikaattia odoo-nimiselle rockit.fi -domainin alidomainille, minun on ensiksi varmistuttava, että rockit.fi:n DNS-konfigurointi on tehty niin, että nimipalvelimet tietävät, miltä serveriltä tuollaista odoo.rockit.fi -osoitetta pitää lähteä hakemaan. Tarvittavan A-recordin pääsen luomaan rockit.fi-verkkotunnukseni cPanelissa:

Olen onnistunut aiemmin tekemään vastaavat asennukset Odoo 8 ja Odoo 9 ympäristöille ja eri Ubuntu-versioille näitä kahta löytämääni ohjetta yhdistelemällä, joten oletan saman onnistuvan myös Odoo 10 -versiolle ja Ubuntu 16.04 -virtuaaliserverille:

  1. How To Secure Nginx with Let's Encrypt on Ubuntu 14.04

  2. REVERSE PROXY WITH ODOO 8 | NGINX | UBUNTU 14.04 LTS | LONGPOLLING

Let's Encrypt SSL-sertifikaatin luonti

Aloitetaan siitä, mihin edellisessä ohjeessa jäätiin, eli ollaan kirjautuneena serverille ssh-yhteydellä (ssh root@<IP-osoite>). Aluksi käskyt ohjeen 1 mukaisesti. Kannattaa seurata noita alkuperäisiä ohjeita, koska niissä myös selitetään, mitä ollaan tekemässä. Tähän ohjeeseen laitan vain muistilistaa itselleni, jos nuo alkuperäiset ohjeet vaikka häviävät tuolta linkin takaa.

cd /usr/local/sbin

sudo wget https://dl.eff.org/certbot-auto

sudo chmod a+x /usr/local/sbin/certbot-auto

sudo apt-get update

sudo apt-get install nginx

sudo apt-get install nano

sudo nano /etc/nginx/sites-available/default

Muokataan aukaistun default-tiedoston sisällöksi:

server {

listen 80 default_server;

listen [::]:80 default_server;

root /usr/share/nginx/html;

index index.html index.htm index.nginx-debian.html;

server_name _;

location ~ /.well-known {

                allow all;

        }

}

Mikäli kaikki on mennyt oikein, seuraavan syntaxin tarkistuksen tuloksen pitäisi olla ok:

sudo nginx -t

Jonka jälkeen Nginxin uudelleenkäynnistys komennolla (serverilläni ei jostain syystä toimi ohjeen mukainen komento "sudo service nginx restart"):

sudo /etc/init.d/nginx restart

Tämän jälkeen jatketaan luomalla SSL-sertifikaatti. Mikäli luot sertejä samalla useammalle verkkotunnukselle/aliverkkotunnukselle, erottele tunnukset -d:llä ohjeen mukaisesti:

Now that we know our webroot-path, we can use the Webroot plugin to request an SSL certificate with these commands. Here, we are also specifying our domain names with the -d option. If you want a single cert to work with multiple domain names (e.g. example.com and www.example.com), be sure to include all of them, starting with the most high level domain (e.g. example.com).

certbot-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com

Koska olen nyt luomassa sertifikaattia ainoastaan aliverkkotunnukselle odoo.rockit.fi, komento on:

certbot-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d odoo.rockit.fi

Tuon jälkeen näytölle ilmestyy ruutuja missä kysellään sähköpostiosoitetta (for urgent notices and lost key recovery) ja hyväksyntää. Lopulta ruudulle pitäisi tulla ilmoitus, josta käy ilmi, että sertifikaatti on onnistuneesti asennettu: "Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/odoo.rockit.fi/fullchain.pem. Your cert will expire on..."

Suojausta voi edelleen kasvattaa luomalla "strong Diffie-Hellman group":n:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Edellä luotuja sertifikaattitiedostoja käytämme Nginx-konfiguroinnissa myöhemmin. 

Sertifikaatin automaattinen uusiminen

Avoimen lähdekoodin Let's Encrypt -sertifikaatti on voimassa 90 päivää. Teemme ohjeen mukaan tausta-ajon (cron job), joka uusii sertifikaatin joka maanantai kello 02:30 ja lataa uudelleen Nginxin 02:35:

sudo crontab -e

Ja kopioi tiedostoon rivit:

30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log

35 2 * * 1 /etc/init.d/nginx reload

(paina i-kirjainta päästäksesi insert-moodiin ja esc-näppäintä poistuaksesi insert-tilasta rivien kopioinnin jälkeen. Editorista poistutaan kirjoittamalla :x ja painamalla enter)

Nginx-webbipalvelimen konfigurointitiedoston luominen 

sudo nano /etc/nginx/sites-available/odoo 

Kopioi tiedostoon sisältö:

upstream odoo {

server 127.0.0.1:8069 weight=1 fail_timeout=0;

}

upstream odoo-im {

server 127.0.0.1:8072 weight=1 fail_timeout=0;

## http redirects to https ##

server {

listen 80;

server_name odoo.rockit.fi;

# Strict Transport Security

add_header Strict-Transport-Security max-age=2592000;

rewrite ^/.*$ https://$host$request_uri? permanent;

}

server {

# server port and name

listen 443;

server_name odoo.rockit.fi;

# Specifies the maximum accepted body size of a client request,

# as indicated by the request header Content-Length.

client_max_body_size 200m;

# add ssl specific settings

keepalive_timeout 60;

ssl on;

ssl_certificate /etc/letsencrypt/live/odoo.rockit.fi/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/odoo.rockit.fi/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;

        ssl_dhparam /etc/ssl/certs/dhparam.pem;

        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

        ssl_session_timeout 1d;

        ssl_session_cache shared:SSL:50m;

        ssl_stapling on;

        ssl_stapling_verify on;

        add_header Strict-Transport-Security max-age=15768000;

# limit ciphers

# ssl_ciphers HIGH:!ADH:!MD5;

# ssl_protocols SSLv3 TLSv1;

# ssl_prefer_server_ciphers on;

# increase proxy buffer to handle some OpenERP web requests

proxy_buffers 16 64k;

proxy_buffer_size 128k;

#general proxy settings

# force timeouts if the backend dies

proxy_connect_timeout 600s;

proxy_send_timeout 600s;

proxy_read_timeout 600s;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

# set headers

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; 

# Let the OpenERP web service know that were using HTTPS, otherwise

# it will generate URL using http:// and not https://

proxy_set_header X-Forwarded-Proto https;

# by default, do not forward anything

proxy_redirect off;

proxy_buffering off;

location ~ /.well-known {

                allow all;

}

location / {

proxy_pass http://odoo;

}

location /longpolling {

proxy_pass http://odoo-im;

}

# cache some static data in memory for 60mins.

# under heavy load this should relieve stress on the OpenERP web interface a bit.

location /web/static/ {

proxy_cache_valid 200 60m;

proxy_buffering on;

expires 864000;

proxy_pass http://odoo;

}

}

Tämän jälkeen sivun enablointi luomalla "symbolinen linkki" site-enabled -hakemistoon:

sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo 

Odoon konfigurointi

sudo nano /etc/odoo-server.conf

Etsi ja muokkaa parametreihin alla olevat arvot: 

dbfilter = ^%d$

xmlrpc_interface = 127.0.0.1

Tämän jälkeen tarvitaan enää odoo-serverin ja nginxin uudelleenkäynnistys:

sudo /etc/init.d/odoo-server restart

sudo /etc/init.d/nginx restart

Jostain syystä tuo dbfilter ei kuitenkaan toiminut tuon restartin jälkeen. Kaikki oli kuitenkin kunnossa sen jälkeen, kun olin bootannut koko serverin komennolla:

sudo reboot 0

Uusi Odoo 10 julkaistiin tässä kuussa (2016/10) ja netistä löytyy jo valmiita skriptejä, miten sen saa helposti asennettua Ubuntu 16.04 -virtuaaliserverille.

Olen itse todennut Hetznerin serverit luotettaviksi ja edullisiksi jo Odoo 8 ja Odoo 9 -ympäristöjä ylläpitäessä ja Hezner laskuttaa noista useammista jo nyt vuokralla olevista servereistä kuukausittain suoraan firman luottokortilta, joten otin heiltä yhden CX20-serverin lisää Odoo 10 -testailujani varten. Tuon 6,90 €/kk (ALV0%) maksavan serverin olen havainnut riittävän tehokkaaksi, vaikka Odoo-tietokantoja, dataa ja käyttäjiä olisi vähän enemmänkin.

(Odoon voi toki asentaa myös lokaalisti omalle tietokoneelle, mutta pilvessä oleva virtuaaliserveri mahdollistaa yhteiskäytön; voit testailla ja kehittää ratkaisuja yhdessä kollegan kanssa tai vaikka luoda oman kannan Odoosta kiinnostuneelle asiakkaalle ja päästää hänet itse todentamaan Odoon erinomaisuus.)

Virtuaaliserverin asennuksen jälkeen palveluntarjoaja lähettää sähköpostin, jossa on serverin IP-osoite, root-käyttäjätunnus ja salasana. Noiden avulla serverille voi logata sisään. Tuon olen tehnyt Maccini Terminal-ohjelmalla:

ssh root@<IP-osoite>

Odoon asennukseen riittävät nämä käskyt (ohje on kopioitu täältä): 

sudo wget https://raw.githubusercontent.com/Yenthe666/InstallScript/10.0/odoo_install.sh

chmod +x odoo_install.sh

./odoo_install.sh

Tuon jälkeen asennus ruksutteli noin 5 minuuttia ja sen jälkeen ruudulla luki viimeisenä:

-----------------------------------------------------------

Done! The Odoo server is up and running. Specifications:

Port: 8069

User service: odoo

User PostgreSQL: odoo

Code location: odoo

Addons folder: odoo/odoo-server/addons/

Start Odoo service: sudo service odoo-server start

Stop Odoo service: sudo service odoo-server stop

Restart Odoo service: sudo service odoo-server restart

-----------------------------------------------------------

(Ainakaan minulla nuo start, stop ja restart -komennot eivät tosin suoraan noin toimineet, vaan ne täytyy syöttää seuraavasti: sudo /etc/init.d/odoo-server restart)

Asennuksen jälkeen Odoo v10 löytyy selaimella osoitteesta: http://xxx.xxx.xxx.xxx:8069 ja voit luoda ensimmäisen Odoo-tietokantasi. Pääkäyttäjän Email on "admin" ja salasanan luotavaan kantaan voit tuossa kantaa luodessa itse määrittää.

HUOM!!! Kun olet luonut tuon ensimmäisen kantasi, kannattaa kirjautua sieltä suoraan ulos ja valita Manage Databases ⇒ Set Master Password ja määrittää tuohon turvallinen salasana. Tuo on se the salasana, jonka tarvitset jatkossa, kun luot, monistat, tuhoat ja varmuuskopioit tietokantoja, joten on tärkeää, ettei ainakaan kukaan muu pääse tuota salasanaa ympäristöösi määrittämään. Skriptissä master-salasanaksi on määritelty "admin", joten se kannattaisi editoida jo sinne ennen asennusta joksikin muuksi.

Tuon jälkeen ei muuta kun kirjaudut takaisin sisään luomaasi kantaan ja alat asentaa moduuleita helposti moduulin Install-nappia painamalla. Avoimen lähdekoodin järjestelmässä (asensimme open source Odoo 10 Community -version) ei ole mitään rajoitteita, kuinka monta tietokantaa ja moduulia asennat tai miten monta käyttäjää kantoihin luot.

Vähän aikaa Odoota pyöriteltyäsi todennäköisesti huomaat, että sinustakin on tullut Odoo-fani :)

Tämä on lähes suoraa kopiota aiemmasta Odoo 8 -asennusohjeesta. Tällä ohjeella voi asentaa nopeasti ja helposti Odoo v9 testaukseen ja ratkaisunkehitykseen soveltuvan ympäristön pilvipalveluun.

Ennen asennusta tarvitaan "clean" Ubuntu 16.04 x64 -virtuaaliserveri. Sellaisen saa hyvillä spekseillä ja todella edullisesti (6.90 €/kk ALV0%) Hetzneriltä:

CORES 2
RAM 2 GB
SSD 50 GB
Connection 1 Gbit/s
Traffic 5 TB

Virtuaaliserverin asennuksen jälkeen palveluntarjoaja lähettää sähköpostin, jossa on serverin IP-osoite, root-käyttäjätunnus ja salasana. Noiden avulla serverille voi logata sisään. Tuon olen tehnyt Maccini Terminal-ohjelmalla:

ssh root@<IP-osoite>

Odoon asennukseen riittävät nämä käskyt (ohje on kopioitu täältä): 

sudo wget https://raw.githubusercontent.com/Yenthe666/InstallScript/All/odoo_install.sh

chmod +x odoo_install.sh

./odoo_install.sh

Tuon jälkeen asennus ruksuttelee arviolta 5-10 minuuttia, jonka jälkeen Odoon löytää serverin ip-osoitteen takaa portista 8069 (http://xxx.xxx.xxx.xxx:8069).

Pääkäyttäjän "Email" on oletuksena admin ja myös Odoon master password on tuossa asennusscriptissä "admin”. Tuo Master Password kannattaa vaihtaa Database Managerilla (ks. kuva alla) välittömästi ensimmäisen kannan kuonnin jälkeen, mikäli sitä ei ole muuttanut jo suoraan scriptiin ennen sitä. Suora linkki Database Manageriin myöhemmin: http://xxx.xxx.xxx.xxx:8069/web/database/manager

En ole julkaissut näitä blogikirjoituksia Odoosta vähään aikaa. Se ei johdu ainakaan siitä, että en olisi tehnyt töitä Odooseen liittyen, koska tilanne on täysin päivastainen. Toisin kuin edellisten postauksieni aikaan, viimeksi kuluneen vuoden aikana Odoo on ollut päätulonlähteeni. Olen työskennellyt alihankkijana kahdessa kumppaniyritykseni Sprintit Oy:n omistamassa Odoo projektissa toimien molemmissa asiakkuuksissa projektipäälllikkönä ja Odoo-konsulttina. Sen lisäksi olen toteuttanut myös RockIT:n oman Odoo-projektin, jossa asiakkaalle otettiin hyvin nopeassa aikataulussa käyttöön Odoo-valmisratkaisu edullisena pilvipalveluna. Toivottavasti saan tuosta pian enemmänkin tarinaa Referenssit-valikkoon. Kokonaisratkaisuun ollaan parhaillaan liittämässä mERP-mobiilisovellusta, jolla lisätään tehokkuutta varastotoimintojen hallintaan.

Odoosta julkaistiin juuri versio 10. Sen sisältö käy hyvin ilmi toisen kumppaniyritykseni Avoin.Systems:n ansiokkaasti suomentamista Odoo 10 julkaisutiedoista. Kuten huomaatte, monen uuden ominaisuuden kohdalla lukee "Enterprice", mikä tarkoittaa käytännössä sitä, että ominaisuus ei ole tarjolla Odoon open source -ilmaisversiossa. Odoolla on luonnollisesti oltava myös oma ansaintalogiikkansa, vaikka se toisaalta onkin hiaman ristiriidassa avoimen lähdekoodin ideologian kanssa. Mikäli asiakas haluaa ottaa käyttöönsä tuon enterprice-version, hän joutuu maksamaan kotimaisen kumppanin hinnoitteleman palvelumaksun lisäksi vielä suoraan Odoo S.A.:lle 20 €/käyttäjä/kuukausi.

Ainakin toistaiseksi RockIT:n Odoo-valmisratkaisu perustuu vielä Odoo 9 Community -versioon (open source, ei siis lisenssimaksun sisältävä Enterprice). Tavoitteena on testata piakkoin kunnolla myös Odoo 10 Community -versio. Mikäli tuo on jo riittävän kypsä ja pitää sisällään parannuksia 9-versioon verrattuna, tavoitteena on luonnollisesti ottaa Odoon uusi versio myös RockIT:n tarjoaman ratkaisun pohjaksi. Version vaihdon pitäisi sujua suht helposti, koska tavoitteena on ollut nimenomaan perustaa ratkaisu standardiin ei-räätälöityyn Odooseen. Tarjolla oleva "valmisratkaisu" on siis syntynyt lähinnä konfiguroimalla, valmiita hyviksi havaittuja Odoo-yhteisön tekemiä lisämooduuleita asentamalla ja liittämällä kokonaisuuteen tehojas, turvallinen ja edullinen pilvipalvelu. Näin asiakkaalle voidaan varmistaa helposti päivitettävissä oleva aidosti toimittajariippumaton ratkaisu. RockIT sitoutuu myös luovuttamaan pääkäyttäjäoikeudet asiakaskohtaiselle virtuaaliserverille suoraan asiakkaalle, mikäli asiakas haluaa siirtää RockIT Oy:n toimittaman pilvipalvelun myöhemmin toisen toimittajan ympäristöön tai vaikka omille palvelimilleen.

Alakategoriat