In 2025 heeft Agile Minds zijn volledige Odoo-instantie gemigreerd van Odoo Online (SaaS) naar een self-hosted VPS bij OVHcloud. Deze Odoo migratie VPS was een strategische beslissing die onze manier van werken fundamenteel heeft veranderd. Dit ervaringsverslag beschrijft de redenen voor deze migratie, de gekozen architectuur, de ondervonden problemen en de volledige procedure, stap voor stap. Of je nu een Belgische KMO bent die overweegt om Odoo self-hosted te draaien, of een IT-consultant die een klant begeleidt bij een Odoo Online migratie, dit artikel biedt je een concreet en eerlijk overzicht van wat je kunt verwachten.
Waarom Odoo Online verlaten?
Odoo Online is een uitstekende oplossing om snel van start te gaan. De installatie duurt letterlijk enkele minuten, er is geen technische kennis nodig en Odoo SA beheert de volledige infrastructuur. Maar naarmate je bedrijf groeit en je behoeften complexer worden, worden de beperkingen steeds zichtbaarder. Bij Agile Minds hebben we deze limieten bereikt na ongeveer twee jaar intensief gebruik:
- Beperkte controle: geen SSH-toegang, geen fijnmazig serverbeheer, geen gepersonaliseerde cron-taken. Je bent volledig afhankelijk van de standaard Odoo-interface voor alle configuraties. Zelfs eenvoudige taken zoals het aanpassen van logrotatie of het monitoren van serverprestaties zijn onmogelijk.
- Stijgende kosten: de prijs per gebruiker loopt snel op met de groei. Voor een team van vijf gebruikers betaalden we al snel 250 euro per maand, en dat bedrag stijgt lineair met elke nieuwe medewerker. Voor een groeiende Belgische KMO wordt dit op termijn een aanzienlijke kostenpost.
- Aangepaste modules onmogelijk: Odoo Online accepteert geen niet-gecertificeerde modules van derden. Dit betekent dat je geen maatwerk-integraties kunt bouwen met bijvoorbeeld je bestaande boekhoudsoftware, je eigen n8n-workflows of externe AI-agents. Voor bedrijven die specifieke bedrijfsprocessen willen automatiseren, is dit een fundamentele beperking.
- Beperkte API-toegang: beperkingen op API-aanroepen en webhooks maken het bijzonder moeilijk om Odoo te integreren in een bredere automatiseringsarchitectuur. Rate limiting en het ontbreken van custom webhooks waren voor ons een dagelijks obstakel bij het bouwen van geautomatiseerde workflows.
- Prestaties: gedeelde server, geen controle over de resources. Tijdens piekuren merkten we duidelijk tragere laadtijden, wat de productiviteit van het team negatief beïnvloedde. Rapportgeneratie voor de boekhouding kon soms meer dan 30 seconden duren.
- Gegevenssoevereiniteit: gegevens gehost buiten je directe controle. Voor Belgische bedrijven die werken met gevoelige klantgegevens en AVG-compliance serieus nemen, is het belangrijk om te weten waar je data precies staat en wie er toegang toe heeft.
De doelarchitectuur
Bij het plannen van onze Odoo self-hosted omgeving in België hebben we bewust gekozen voor een architectuur die zowel performant als onderhoudbaar is op lange termijn. Elk onderdeel van de stack is geselecteerd op basis van stabiliteit, community-ondersteuning en compatibiliteit met het Odoo-ecosysteem. Hier is de technische stack die bij Agile Minds is geïmplementeerd:
| Component | Technische keuze | Verantwoording |
|---|---|---|
| Host | OVHcloud VPS (Gravelines, Frankrijk) | Nabijheid tot België, AVG-conformiteit (EU-datacenter), uitstekende prijs/kwaliteitverhouding. Het datacenter in Gravelines ligt op minder dan 200 km van Brussel, wat een latentie van minder dan 5 ms garandeert. |
| OS | Debian 12 (Bookworm) | Stabiliteit, Long Term Support tot 2028, enorme community en bewezen track record voor productieservers. Debian is ook het referentie-OS voor Odoo-installaties. |
| Database | PostgreSQL 18 | Aanbevolen door Odoo, uitstekende prestaties bij complexe queries, robuuste replicatiemogelijkheden voor toekomstige schaalbaarheid. |
| Reverse proxy | Traefik v3 | Automatische SSL-certificaten, dynamische routing, native Docker-integratie en een overzichtelijk dashboard voor het beheer van al onze services. |
| SSL | Let’s Encrypt (via Traefik) | Gratis SSL-certificaten met automatische verlenging elke 90 dagen. Geen handmatig beheer nodig, geen kosten voor commerciele certificaten. |
| Python | Python 3.12 (venv) | Isolatie van afhankelijkheden via een virtuele omgeving voorkomt conflicten met systeempakketten en maakt upgrades veiliger. |
| Back-up | pg_dump + OVHcloud snapshots | Dubbele beveiliging: dagelijkse database-dumps voor snelle point-in-time recovery, gecombineerd met wekelijkse VPS-snapshots voor volledige systeemherstel. |
| Monitoring | Uptime Kuma | Realtime alerts via Slack en e-mail bij downtime, met een overzichtelijk statusdashboard. Open source, lichtgewicht en eenvoudig te configureren. |
Deze architectuur draait nu al meer dan een jaar stabiel en heeft zich bewezen tijdens meerdere Odoo-upgrades en piekbelastingperiodes. De totale maandelijkse kost bedraagt ongeveer 35 euro voor de VPS, tegenover 250 euro voor een vergelijkbare Odoo Online-configuratie.
Migratieprocedure in 4 fasen
De volledige Odoo Online migratie naar self-hosted duurde zes werkdagen. We raden aan om deze migratie te plannen tijdens een rustige periode, idealiter een weekend of een vakantieperiode, om de impact op de dagelijkse bedrijfsvoering te minimaliseren. Hieronder beschrijven we elke fase in detail.
Fase 1: Servervoorbereiding (Dag 1-2)
De eerste twee dagen zijn volledig gewijd aan het opzetten en beveiligen van de serverinfrastructuur. Een goede voorbereiding in deze fase voorkomt tal van problemen later in het migratieproces.
- Bestel een OVHcloud VPS (8 vCPU, 22 GB RAM, SSD NVMe) — kies een configuratie die ruim voldoende is voor je verwachte belasting. Wij adviseren minimum 4 vCPU en 16 GB RAM voor een productie-installatie met 5 tot 15 gebruikers.
- Installeer Debian 12 en beveilig de server: schakel root-login via SSH uit, configureer SSH-sleutels, installeer en configureer fail2ban voor brute-force bescherming, en stel de UFW-firewall in om alleen poorten 22, 80 en 443 toe te staan.
- Installeer PostgreSQL 18 en configureer de toegang: maak een dedicated database-gebruiker aan voor Odoo, stel
pg_hba.confin op lokale verbindingen alleen, en optimaliseerpostgresql.confvoor de beschikbare RAM (shared_buffers, work_mem, effective_cache_size). - Installeer de Python-afhankelijkheden: wkhtmltopdf (de gepatchte versie 0.12.6.1, niet de versie uit de Debian-repositories), alle vereiste systeembibliotheken voor Odoo (libxml2, libxslt, libjpeg, enz.).
- Configureer Traefik v3 met Let’s Encrypt voor automatische SSL-certificaten en reverse proxy routing naar je Odoo-instantie.
Fase 2: Odoo-installatie (Dag 3)
Met de server klaar en beveiligd, is het tijd om Odoo zelf te installeren. Wij verkiezen een installatie vanuit de broncode via GitHub boven een pakketinstallatie, omdat dit meer flexibiliteit biedt voor updates en debugging.
- Kloon de Odoo 19 Enterprise repository van GitHub — zorg ervoor dat je een geldige Enterprise-licentie hebt. De Community-editie is gratis beschikbaar, maar mist een aantal kritieke modules voor bedrijfsgebruik (boekhouding, MRP, HR).
- Creeer een dedicated virtuele Python-omgeving met
python3.12 -m venv odoo-venvom afhankelijkheden volledig te isoleren van het besturingssysteem. - Installeer de Python-afhankelijkheden (
pip install -r requirements.txt) — dit kan enkele minuten duren, vooral voor zwaardere pakketten zoals lxml en Pillow. - Configureer het
odoo.confbestand: stel de juiste databaseverbinding in, configureer het aantal workers, de poorten, de paden naar addons, en de limietinstellingen voor geheugen en CPU-tijd per request. - Creeer de systemd-service voor Odoo zodat de applicatie automatisch start bij een serverherstart en betrouwbaar beheerd kan worden via
systemctl. - Test de opstart op poort 8069 — controleer de Odoo-logbestanden op fouten en verifieer dat je de welkomstpagina kunt bereiken in de browser.
Fase 3: Gegevensmigratie (Dag 4-5)
Dit is de meest kritieke fase van het hele migratieproces. Een fout bij de gegevensmigratie kan leiden tot verlies van boekhoudkundige gegevens, klantinformatie of historische data. Neem ruim de tijd en controleer alles dubbel.
- Exporteer de database vanuit Odoo Online via het menu Database Manager — je ontvangt een ZIP-bestand met daarin de PostgreSQL-dump en de filestore (bijlagen, afbeeldingen). Bewaar dit bestand op een veilige locatie als backup.
- Breng de dump over naar de VPS via SCP — gebruik een beveiligde verbinding en verifieer de integriteit van het bestand na de overdracht met een checksum.
- Herstel de database in lokale PostgreSQL met
pg_restoreofpsql, afhankelijk van het dumpformaat. Kopieer ook de filestore naar de juiste Odoo data-directory. - Controleer de gegevensintegriteit: verifieer de boekhoudkundige balansen, controleer of alle contacten en klantgegevens correct zijn overgezet, en test de voorraadbewegingen als je de inventarismodule gebruikt.
- Update de systeeminstellingen: wijzig de basis-URL van je Odoo-instantie, configureer de uitgaande e-mailserver opnieuw (SMTP), en pas eventuele hardgecodeerde URL’s aan in e-mailtemplates en rapportlay-outs.
- Installeer de benodigde aangepaste modules — dit is precies het voordeel van self-hosted: je kunt nu elke module installeren die je nodig hebt, zonder beperkingen van Odoo Online.
Fase 4: Productie live zetten (Dag 6)
De laatste dag is gewijd aan het live zetten van de nieuwe omgeving. Plan deze stap zorgvuldig en communiceer duidelijk naar je team over de verwachte downtime.
- Configureer de DNS (odoo.agile-minds.be naar het IP-adres van de VPS) — houd rekening met de DNS-propagatietijd van maximaal 24 tot 48 uur. Verlaag de TTL een dag van tevoren naar 300 seconden om de overgang te versnellen.
- Activeer SSL via Traefik — dit gebeurt automatisch zodra het DNS correct is geconfigureerd. Controleer of het HTTPS-certificaat geldig is.
- Configureer de Odoo workers voor optimale prestaties: een vuistregel is
(2 x CPU-cores) + 1workers, met een aparte configuratie voor cron-threads. Bij onze 8 vCPU-server gebruiken we 4 workers en 2 cron-threads. - Stel automatische back-ups in via een cron-taak die elke nacht
pg_dumpuitvoert en de oudste back-ups automatisch opruimt. Bewaar minstens 14 dagen aan back-ups. - Test alle bedrijfsprocessen grondig: maak een testfactuur aan, verstuur een offerte via e-mail, genereer een boekhoudkundig rapport, en test de portaaltoegang voor klanten.
- Schakel gebruikers over — geef het team de nieuwe URL en begeleid hen bij de eerste aanmelding. De wachtwoorden worden mee gemigreerd, dus gebruikers kunnen zich met hun bestaande inloggegevens aanmelden.
Ondervonden problemen en oplossingen
Geen enkele Odoo migratie VPS verloopt zonder hindernissen. Hieronder delen we de vijf belangrijkste problemen die we tegenkwamen tijdens onze Odoo Online migratie, samen met de oplossingen die we hebben toegepast. Dit is waardevolle informatie voor iedereen die een vergelijkbare migratie plant.
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| wkhtmltopdf-fout (lege PDF’s) | Incompatibele versie in Debian repositories. De standaard Debian-versie van wkhtmltopdf mist de Qt-patches die Odoo nodig heeft voor correcte PDF-generatie. | Installeer de gepatchte versie 0.12.6.1 rechtstreeks van de officiële GitHub-releases. Dit is een bekende valkuil bij elke Odoo self-hosted installatie. |
| Extreem trage opstart | workers = 0 (single-thread modus). Odoo draait standaard in single-thread modus, wat betekent dat slechts een gebruiker tegelijk bediend wordt. | Configureer workers = 4 en max_cron_threads = 2 in odoo.conf. Monitor vervolgens het geheugengebruik en pas aan indien nodig. |
| Gebroken CSS op het portaal | Assets niet opnieuw gegenereerd na migratie. De gecompileerde CSS- en JavaScript-bestanden bevatten nog verwijzingen naar de oude Odoo Online URL. | Verwijder de gecompileerde assets uit de database en herstart Odoo met de vlag -u base om alle modules en assets opnieuw te laden. |
| Uitgaande e-mails geblokkeerd | Poort 25 geblokkeerd door OVHcloud. Dit is standaardbeleid bij de meeste cloudproviders om spam te voorkomen. | Gebruik poort 587 met STARTTLS via Google Workspace SMTP-relay. Configureer de juiste SPF- en DKIM-records in je DNS voor optimale deliverability. |
| Traefik timeout bij grote rapporten | Standaard timeout te kort. Complexe boekhoudkundige rapporten en PDF-exports kunnen meer dan 60 seconden duren. | Verhoog respondingTimeouts naar 300s in de Traefik-configuratie en overweeg het gebruik van asynchrone rapportgeneratie voor de zwaarste rapporten. |
Voor / Na: de vergelijking
Na een jaar ervaring met onze Odoo self-hosted omgeving in België kunnen we de verschillen nu concreet en objectief vergelijken. De onderstaande tabel is gebaseerd op onze werkelijke metingen en ervaringen.
| Aspect | Odoo Online | VPS Self-hosted |
|---|---|---|
| Maandelijkse kosten (5 gebruikers) | ~250 €/maand | ~35 €/maand (VPS) |
| Aangepaste modules | Onmogelijk | Onbeperkt |
| Servertoegang | Geen | Volledige root |
| Prestaties | Variabel (gedeeld) | Constant (dedicated) |
| API / webhooks | Beperkt | Onbeperkt |
| Back-ups | Dagelijks (Odoo beheert) | Aanpasbaar (onze controle) |
| Gemiddelde responstijd | ~800 ms | ~200 ms |
| Onderhoud | Nul (Odoo beheert) | Voor onze rekening |
De kostenbesparing over een volledig jaar bedraagt meer dan 2.500 euro, en dat bedrag groeit naarmate je meer gebruikers toevoegt. Daarnaast is de prestatiewinst van een factor 4 in responstijd direct merkbaar voor het hele team. Het enige nadeel is dat je zelf verantwoordelijk bent voor het serverbeheer, maar met de juiste monitoring en automatisering (Uptime Kuma, cron-scripts) is deze werklast zeer beheersbaar — reken op ongeveer 2 uur per maand voor routineonderhoud.
Ons oordeel na 1 jaar
De Odoo migratie VPS was zonder twijfel de beste technische investering van Agile Minds in 2025. De prestatiewinst, de vrijheid om aangepaste modules te installeren (met name voor n8n-integratie en AI-agents) en de aanzienlijke kostenreductie rechtvaardigen ruimschoots de initiele inspanning van 6 werkdagen.
Concreet heeft de migratie ons in staat gesteld om een volledig geautomatiseerde workflow op te zetten tussen Odoo, n8n en Claude AI, iets wat op Odoo Online simpelweg onmogelijk was door de API-beperkingen. We kunnen nu custom modules ontwikkelen en installeren wanneer we willen, we hebben volledige controle over onze back-upstrategie, en onze medewerkers genieten van een merkbaar snellere werkomgeving.
Voor Belgische bedrijven die overwegen om van Odoo Online naar Odoo self-hosted België te migreren, raden wij het volgende aan:
- KMO met minder dan 3 gebruikers en standaardbehoeften: blijf bij Odoo Online. De eenvoud en het ontbreken van onderhoudslast wegen op tegen de beperkingen.
- KMO met 3-10 gebruikers en groeiende behoeften: plan een migratie naar self-hosted. De investering van 6 dagen betaalt zichzelf binnen 3 maanden terug door de lagere maandelijkse kosten.
- KMO met 10+ gebruikers of specifieke integratie-eisen: migreer zo snel mogelijk. De kostenbesparing en de flexibiliteit van self-hosted zijn op deze schaal onmisbaar.
Tip: plan je migratie tijdens een rustige periode en voorzie minstens een week. Wil je zekerheid? Schakel een ervaren Odoo-integrator in die het volledige proces begeleidt en eventuele valkuilen op voorhand detecteert.
Patrick Impens · CEO Agile Minds SRL · agile-minds.be
Odoo-onderhoud en technische ondersteuning na migratie
Onze Odoo-begeleiding voor uw migratieproject.
Lees ook
Laten we over uw project praten
Afspraak maken →