GuiderFöretag och övervakningAffärssystem med Odoo

Kör Odoo Community med Podman utan root

Odoo 20 Community på Debian 13, affärssystemet med öppen källkod för CRM, försäljning och fakturering, i rootless Podman med PostgreSQL bakom Caddy, med låst databashanterare, svensk moms och veckorapporten till Odoo S.A. avstängd.

Testad på Odoo 20.0 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 14 oktober 2026

Rekommenderad server för guiden

SSD RAID 1 · ECC DDR4 · 10 Gbit

VC-P Alloy · 2 vCPU · 8 GB Minne · 60 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

100 kr/mån

Beställ nu
På den här sidan

Det här sätter du upp

Odoo är en samling affärsappar som delar en databas: CRM, försäljning, fakturering, kontakter, kalender och många fler, som lager, inköp, projekt och ett verktyg för webbplatser. Du installerar de appar du behöver, och en lead i CRM blir en offert, en order och en faktura utan att du skriver in något två gånger.

Odoo görs av Odoo S.A., ett bolag i Belgien, och finns i två utgåvor. Community, som den här guiden installerar, är öppen källkod under licensen LGPLv3 och fri att köra. Enterprise är proprietär och säljs som abonnemang per användare. Den lägger bland annat till bokföringsrapporterna (balansräkning, resultaträkning, momsrapporten), bankkoppling, Studio, Documents, Sign, Helpdesk, Planning, Payroll, mobilapparna, Odoos support och Odoos uppgraderingstjänst mellan huvudversioner. I Community heter bokföringsappen Invoicing: fakturor, leverantörsfakturor, betalningar, verifikationsserier och kontoplan, men inga ekonomiska rapporter. I våra tester rapporterade Odoo till Odoo S.A. en gång i veckan och skickade e-postdomänerna för nya leads i CRM till Odoos servrar; steg 11 visar vad som skickades och stänger av båda.

Behöver du främst bokföring för ett svenskt bolag, titta också på ERPNext. Den är helt öppen källkod, även bokföringsrapporterna, och kommer med den svenska BAS-kontoplanen. Odoo är lättare att komma igång med, har ett bredare utbud av appar och ett genomarbetat CRM, men rapporterna och flera appar finns bara i den betalda utgåvan.

Här körs Odoo från sin officiella avbild, som Odoo S.A. ger ut, som en pod under en egen användare som heter odoo, med PostgreSQL för dess data, bakom Caddy från Podman-guiden.

Varje steg nedan har körts på en nyinstallerad Melonslab VC-P Alloy (2 vCPU, 8 GB) med Debian 13:

  • Odoo 20.0 startade med PostgreSQL 18, med fyra webbprocesser anpassade för 8 GB. Databashanteraren svarade "The database manager has been disabled by the administrator", och en inloggning med admin och admin misslyckades.
  • Ett bolag i Sverige sattes upp. Odoo installerade den svenska lokaliseringen av sig självt, med kontoplan, SEK och moms på 25, 12, 6 och 0 procent.
  • En lead skapades i CRM och gjordes om till en affärsmöjlighet, en offert för den bekräftades och fakturerades, och fakturan visade 25 % moms, 2 500,00 kr på 10 000,00 kr, både på skärmen och i sin PDF.
  • Odoo loggade varje inloggning med besökarens riktiga adress, över IPv4 och IPv6, och struntade i en förfalskad X-Forwarded-For-header. Uppdateringarna i realtid gick över en websocket genom Caddy.
  • En inbjudan och en återställning av lösenord kom fram via en testserver för e-post på port 587 med STARTTLS. Ett mejl till säljteamets adress, info@, som hämtades från en IMAP-testserver, blev en affärsmöjlighet. Gränssnittet och fakturan visades på svenska.
  • En avlyssning av serverns trafik visade den veckovisa rapporten till services.odoo.com och uppgifterna om leads till iap-services.odoo.com, och ingen av dem efter ändringarna i steg 11.
  • Odoo återställdes från en säkerhetskopia till tomma volymer, uppdaterades till en nyare version av 20.0, och allt startade igen av sig självt efter en omstart av servern.

Podden använde omkring 950 MB minne efter en timmes användning, varav 890 MB för Odoos processer och 60 MB för PostgreSQL, och omkring 320 MB direkt efter en omstart.

Innan du börjar

Du behöver:

  • en server uppsatt som i Podman-guiden, med Caddy igång och minst 4 GB minne;
  • en A-post och en AAAA-post för odoo.example.com som pekar på din server;
  • för e-post, ett konto hos din e-postleverantör som får skicka via SMTP.

Exemplen använder odoo.example.com för Odoo, 203.0.113.10 för serverns IPv4-adress, you@example.com för din egen inloggning och odoo@example.com för adressen Odoo skickar från. Byt ut dem genomgående.

1. Skapa användaren

Som root:

useradd -m -s /bin/bash odoo
loginctl enable-linger odoo
machinectl shell odoo@

Allt härifrån körs som odoo, utom steg 6.

2. Skapa hemligheterna

openssl rand -hex 24 | tr -d '\n' | podman secret create odoo-db-password -
openssl rand -base64 24 | tr -d '\n' | podman secret create odoo-master-password -
podman secret inspect --showsecret --format '{{.SecretData}}' odoo-master-password; echo

Den första är lösenordet till PostgreSQL, som bara Odoo använder. Den andra är Odoos huvudlösenord (master password), som skyddar databashanteraren: sidan där den som har lösenordet kan skapa, kopiera, säkerhetskopiera och radera hela databaser. Odoos standardlösenord är admin. Steg 3 stänger av databashanteraren helt, men spara huvudlösenordet i din lösenordshanterare, så att hanteraren inte står öppen med admin om du någon gång slår på den.

3. Skriv Odoos inställningar

Skapa ~/odoo.conf:

[options]
data_dir = /var/lib/odoo
; Odoo 20 listens only on 127.0.0.1 inside the container by default.
http_interface = 0.0.0.0
db_host = 127.0.0.1
db_port = 5432
db_user = odoo

; Only the database called odoo, and no database manager.
dbfilter = ^odoo$
list_db = False

; Behind Caddy: trust its X-Forwarded-* headers.
proxy_mode = True

; Sized for 2 vCPU and 8 GB.
workers = 4
max_cron_threads = 1
limit_memory_soft = 629145600
limit_memory_hard = 1677721600
limit_time_cpu = 600
limit_time_real = 1200

; Do not report to Odoo S.A. every week (step 11).
publisher_warranty_url = http://127.0.0.1:9/

Vad inställningarna gör:

  • list_db = False stänger av databashanteraren, både sidan på /web/database/manager och samma funktioner via Odoos API, så att ingen utifrån kan skapa, kopiera eller radera en databas, vilket huvudlösenord de än har. dbfilter = ^odoo$ gör att Odoo bara visar databasen som heter odoo, vilken adress den än nås på.
  • proxy_mode = True gör att Odoo tar besökarens adress, och https, från de headers som Caddy skickar. Utan den loggas varje inloggning som om den kom från servern själv. Bara Caddy når Odoos portar, så ingen annan kan förfalska dem.
  • workers = 4 kör fyra processer för webbanrop och max_cron_threads = 1 en för schemalagda jobb. Odoos dokumentation föreslår dubbla antalet processorkärnor plus en, schemalagda jobb inräknade, vilket ger fem för 2 vCPU. En process startas om efter ett anrop som tar den över 600 MB och stoppas vid 1,6 GB, så att en tung rapport inte kan ta hela servern. Med flera processer sköts uppdateringarna i realtid i webbläsaren, som chatt och aviseringar, av en separat process på port 8072.
  • publisher_warranty_url är dit Odoo skickar sin veckorapport. En adress där inget lyssnar stoppar den; steg 11 har detaljerna.
  • Lösenorden står inte i filen. Odoo läser dem från hemligheterna, som containerfilen nedan visar.

4. Definiera podden

mkdir -p ~/.config/containers/systemd
cd ~/.config/containers/systemd

Skapa odoo.pod:

[Pod]
PodName=odoo
# Only Caddy, on this server, can reach Odoo: the ports are not open to the internet.
# 8069 serves the pages, 8072 the live updates (websocket).
PublishPort=127.0.0.1:8118:8069
PublishPort=127.0.0.1:8119:8072
# Odoo fetches its own pages when it makes PDFs: reach them through Caddy.
AddHost=odoo.example.com:host-gateway

[Install]
WantedBy=default.target

Skapa odoo-db.container:

[Container]
ContainerName=odoo-db
Image=docker.io/library/postgres:18
Pod=odoo.pod
Volume=odoo-db:/var/lib/postgresql
Environment=POSTGRES_USER=odoo POSTGRES_DB=postgres
Secret=odoo-db-password,type=env,target=POSTGRES_PASSWORD
HealthCmd=pg_isready -U odoo -d postgres
HealthInterval=10s
Notify=healthy
AutoUpdate=registry

[Service]
Restart=always

Och odoo-app.container:

[Unit]
Requires=odoo-db.service
After=odoo-db.service

[Container]
ContainerName=odoo-app
Image=docker.io/library/odoo:20.0-20260926
Pod=odoo.pod
Volume=odoo-data:/var/lib/odoo
Volume=%h/odoo.conf:/etc/odoo/odoo.conf:ro
Secret=odoo-db-password,type=env,target=PGPASSWORD
Secret=odoo-master-password,type=env,target=ODOO_ADMIN_PASSWD

[Service]
Restart=always

Odoo 20 läser varje inställning från en miljövariabel som heter ODOO_ plus inställningens namn, så ODOO_ADMIN_PASSWD sätter huvudlösenordet utan att det skrivs i en fil. Databaslösenordet går till PGPASSWORD, som PostgreSQL:s eget bibliotek läser. Volymen odoo-data rymmer filestore, där Odoo sparar bilagor, uppladdade filer och skapade PDF:er; själva posterna ligger i PostgreSQL.

Odoos avbild är låst till en version, 20.0-20260926, eftersom Odoos databas måste uppgraderas efter varje uppdatering (se Uppdatera). PostgreSQL ligger kvar på 18 och uppdaterar sig själv inom den.

Starta den:

systemctl --user daemon-reload
systemctl --user start odoo-pod
systemctl --user enable --now podman-auto-update.timer

Vid första starten laddas omkring 2,9 GB avbilder ner. När podman ps listar odoo-app kontrollerar du databashanteraren:

curl -s http://127.0.0.1:8118/web/database/manager | grep -o 'The database manager has been disabled[^<]*'

Det skriver ut The database manager has been disabled by the administrator.

5. Skapa databasen

Databashanteraren är avstängd, så du skapar databasen med Odoos eget kommando. Välj först ett lösenord för din egen inloggning; read håller det utanför skalets historik:

read -rs -p 'Password for you@example.com: ' pw; echo
podman exec odoo-app odoo db init odoo --country SE --username you@example.com --password "$pw"
unset pw

Det skapar databasen odoo för ett bolag i Sverige, med din e-postadress som administratörens inloggning, i stället för Odoos standardinloggning admin med lösenordet admin. Det tog omkring 40 sekunder. Installera sedan CRM, Sales och Invoicing:

podman exec odoo-app odoo module install -d odoo crm sale_management account

Det tog omkring två minuter. Eftersom bolaget finns i Sverige installerar Odoo också Sweden - Accounting (l10n_se), den svenska lokaliseringen, och ställer in den för bolaget: den svenska kontoplanen, SEK som valuta, svensk tid och momssatser på 25, 12, 6 och 0 procent, med separata satser för varor (G) och tjänster (S) och för försäljning inom och utanför EU. Fler appar lägger du till senare under Apps.

6. Sätt Caddy framför

Gå tillbaka till root med exit, byt till Caddys användare med machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:

odoo.example.com {
    reverse_proxy /websocket 127.0.0.1:8119
    reverse_proxy 127.0.0.1:8118
}

Uppdateringarna i realtid använder adressen /websocket, som går till Odoos separata process på port 8072; allt annat går till de vanliga processerna. Utan den första raden slutar chatt, aviseringar och andra uppdateringar i realtid att fungera i webbläsaren. Starta om Caddy med systemctl --user restart caddy.

Öppna https://odoo.example.com och logga in med din e-postadress och lösenordet från steg 5. Odoos standardinloggning, admin med admin, får svaret "Wrong login/password".

7. Ställ in bolaget

Öppna Settings. Kontrollera de här först:

  • Companies > Update Info: bolagets namn, adress och VAT, momsregistreringsnumret, till exempel SE556677889901. Spara.
  • Companies > Configure Document Layout: din logotyp och en sidfot för fakturor. Svenska fakturor ska visa bolagets organisationsnummer, och "Godkänd för F-skatt" om du har det, till exempel Org.nr 556677-8899 · Godkänd för F-skatt i sidfoten.
  • Permissions > Customer Account: Odoo börjar med Free sign up, som låter vem som helst skapa ett kundkonto från inloggningssidan. Välj On invitation och sedan Save. Kundkonton ser bara sina egna offerter och fakturor, men det finns ingen anledning att låta främlingar skapa dem.
  • Users > Invite New Users: lägg till dina kollegor med deras e-postadresser. Odoo skickar var och en en länk för att välja lösenord, så sätt upp e-post först (steg 10). Varje intern användare kan använda alla installerade appar, om du inte ändrar det under Manage Users.

Öppna sedan Invoicing > Configuration > Taxes för att se de svenska momssatserna. Produkter och tjänster får 25% G som standard vid försäljning; för en tjänst väljer du 25% S på produkten. Gå igenom momssatserna och kontoplanen med din redovisningskonsult innan du skickar den första fakturan.

8. Från lead till faktura

CRM börjar med bara affärsmöjligheter. För att få leads, möjliga kunder som du inte har kvalificerat än, öppnar du CRM > Configuration > Settings, kryssar i Leads och väljer Save.

  1. CRM > Leads > New: ett namn på leaden, företaget och kontaktens e-postadress. Spara.
  2. Välj Convert to Opportunity på leaden. Odoo skapar en kontakt för kunden från leadens företag och kontaktnamn, och affärsmöjligheten hamnar i Pipeline, där du drar den mellan stegen.
  3. Välj New Quotation på affärsmöjligheten, lägg till produkter eller tjänster med Add Line och spara. Send mejlar offerten som PDF, med en länk där kunden kan godkänna den.
  4. Confirm gör offerten till en order.
  5. Create Invoice, med Regular invoice, och Create Draft skapar en faktura från ordern. Kontrollera den och välj Confirm.

Fakturan får ett nummer som INV/2026/00001 och en betalningsreferens (OCR) åt kunden. Print ger PDF:en; i vårt test visade en faktura på 10 timmar à 1 000,00 kr VAT 25% med 2 500,00 kr och totalt 12 500,00 kr. I bokföringen hamnade momsen på konto 2611, utgående moms på försäljning inom Sverige. Pay markerar fakturan som betald när pengarna kommer.

9. Använd Odoo på svenska

Odoo är översatt till svenska, även om en del vyer fortfarande visar engelska. Öppna Settings > Languages > Add Languages, välj Swedish / Svenska och Add. Varje användare väljer sedan Swedish / Svenska som Language under sitt namn uppe till höger > My Preferences.

PDF:er följer kundens språk, så sätt Language till Swedish / Svenska på kundens kontakt för att skicka svenska fakturor. I vårt test blev fakturan "Faktura", med "Moms 25%", datum som 2026-10-14 och belopp som 12 500,00 kr.

10. E-post

Odoo skickar e-post för inbjudningar, återställning av lösenord, offerter och fakturor till kunder, och aviseringar. Utan e-post:

  • listar Invite under Settings > Users personen under Pending Invitations, men inget mejl kommer fram;
  • svarar Reset Password på inloggningssidan "Password reset instructions sent to your email address.", men inget kommer fram;
  • misslyckas mejl som väntar i kön, som Odoos veckosammanfattning, med "Connection refused".

För att skicka e-post via din e-postleverantör sparar du SMTP-lösenordet som en hemlighet, som odoo:

printf %s 'the-smtp-password' | podman secret create odoo-mail-password -

Lägg till de här raderna i ~/odoo.conf, med leverantörens server och ditt eget konto:

; Outgoing email through your provider, with STARTTLS on port 587.
smtp_server = mail.example.com
smtp_port = 587
smtp_ssl = True
smtp_user = odoo@example.com
email_from = odoo@example.com
from_filter = odoo@example.com

Och den här raden i odoo-app.container, under de andra Secret-raderna:

Secret=odoo-mail-password,type=env,target=ODOO_SMTP_PASSWORD

Starta sedan om Odoo:

systemctl --user daemon-reload
systemctl --user restart odoo-app
  • smtp_ssl = True betyder STARTTLS, som port 587 använder. I det här läget krypterar Odoo anslutningen men kontrollerar inte serverns certifikat.
  • from_filter gör att Odoo skickar allt från odoo@example.com, med användarens eller bolagets namn, eftersom de flesta leverantörer bara låter ett konto skicka från sin egen adress.

Vi testade det här med en testserver för e-post på port 587 som krävde STARTTLS: en inbjudan och en återställning av lösenord kom fram, med länkar till https://odoo.example.com. Vi skickade inte via en riktig leverantör.

För port 465, som använder TLS från början, eller för att Odoo ska kontrollera certifikatet, lägger du i stället till servern under Settings > Technical > Email > Outgoing Mail Servers, med Connection Encryption satt till SSL/TLS, encryption and validation eller TLS (STARTTLS), encryption and validation. Menyn Technical dyker upp efter Activate the developer mode längst ner i Settings. Lösenordet sparas då i Odoos databas, och i dess säkerhetskopior.

Odoo kan också ta emot e-post. Säljteamet har adressen info från start: när Odoo känner till din domän blir varje mejl till info@example.com som når Odoo en affärsmöjlighet i CRM, oavsett avsändare. Journalerna i Invoicing har egna adresser, sales, purchases och bank. Odoo tar inte emot e-post själv, utan hämtar den från en brevlåda hos din e-postleverantör:

  1. Under Settings > Emails skriver du din domän, example.com, under Alias Domain och väljer Create. Markera Use Custom Email Servers och välj Save.
  2. Välj Incoming Email Servers > New och fyll i ett Name, brevlådans IMAP-server under Server Name, Port 993 med SSL/TLS markerat, och dess Username och Password. Välj Test & Confirm.
  3. Se till att e-post till info@example.com levereras till den brevlådan hos din e-postleverantör, till exempel som ett alias för den.

Odoo hämtar från brevlådan var femte minut, eller direkt med Fetch Now. Har din domän redan en info@-adress som folk skriver till byter du teamets adress först: under CRM > Configuration > Sales Teams > Sales finns Email Alias, och under Accept Emails From kan du hindra okända från att skapa affärsmöjligheter. Vi testade det här mot en IMAP-testserver på port 143, utan TLS, med mejlet levererat direkt till brevlådan: det blev en affärsmöjlighet i säljteamet vid första hämtningen. Brevlådans lösenord sparas i Odoos databas, och i dess säkerhetskopior.

Alias Domain ändrar också adressen som Odoo skickar från. I vårt test gick inbjudningar, återställningar av lösenord och meddelanden ut från notifications@example.com i stället för odoo@example.com så fort den var satt, trots from_filter, och en leverantör som bara låter ditt konto skicka från sin egen adress vägrar skicka dem. Vill du behålla odoo@example.com slår du på utvecklarläget, öppnar Settings > Technical > Email > Alias Domains, väljer example.com, sätter Default From Alias till odoo och väljer Save. Då gick allt ut från odoo@example.com igen. Odoo ber också att svar på dess mejl ska gå till catchall@example.com, Catchall Alias; att ta emot dem testade vi inte.

11. Externa anslutningar

Vi avlyssnade serverns DNS-uppslagningar och utgående anslutningar medan Odoo installerades och användes. Två saker kontaktade Odoo S.A. utan att någon bad om det:

  • Veckorapporten. En schemalagd åtgärd som heter Publisher: Update Notification skickar en rapport till services.odoo.com en gång i veckan, över okrypterad HTTP. Den innehåller databasens unika ID, namn och adress, antalet användare och aktiva användare, de installerade apparna, Odoos version och bolagets namn, e-postadress och telefonnummer. I vår avlyssning slog den upp services.odoo.com och anslöt dit på port 80; svaret innehöll inga meddelanden. Raden publisher_warranty_url från steg 3 pekar den mot en adress där inget lyssnar, så den misslyckas i tysthet. Raden ligger kvar när Odoo uppdateras, till skillnad från en avstängd schemalagd åtgärd.
  • Lead Enrichment. CRM installerar Lead Enrichment, som en gång om dagen skickar e-postdomänerna för nya leads, som customer.example, tillsammans med databasens ID till iap-services.odoo.com för att slå upp uppgifter om företaget. Tjänsten betalas med krediter, men i vår avlyssning skickades domänen inom en minut efter att den första leaden skapats, utan några krediter. För att stänga av den öppnar du CRM > Configuration > Settings, kryssar ur Lead Enrichment, väljer Save och sedan Uninstall.

Stäng också av Partner Autocomplete, under Settings > Contacts, på samma sätt. Den skickar företagsnamnen du skriver in på en kontakt till partner-autocomplete.odoo.com för att föreslå uppgifter om företaget. Vi såg den inte i avlyssningen, eftersom vi inte skrev in något på en kontakt innan vi tog bort den.

Efter ändringarna startade vi varje schemalagd åtgärd för hand och startade om servern: avlyssningen visade inga uppslagningar eller anslutningar från Odoo. Vissa funktioner använder Odoos servrar när någon använder dem, och bara då: SMS, e-fakturor via Peppol, AI-verktygen för text i redigeraren, bilder från Unsplash och inloggning med Google eller Microsoft för e-post.

12. Säkerhetskopiera

Som odoo:

umask 077
mkdir -p ~/backup
podman exec odoo-app odoo db dump odoo > ~/backup/odoo.zip
cp ~/odoo.conf ~/backup/

odoo db dump skapar samma ZIP-fil som Odoos databashanterare: dump.sql, databasen, och mappen filestore, med varje bilaga. Båda behövs: en databas utan sin filestore förlorar varje uppladdad fil och PDF. Dumpen tog några sekunder och körs medan Odoo fortsätter att fungera. Kopiera ~/backup till en annan maskin, till exempel med restic, och förvara den säkert: den innehåller alla era kunder, fakturor och användare.

För att återställa till tomma volymer, som odoo, med säkerhetskopian i ~/backup:

systemctl --user stop odoo-pod
podman volume rm odoo-db odoo-data
systemctl --user start odoo-app
podman exec -i odoo-app sh -c 'cat > /tmp/odoo.zip' < ~/backup/odoo.zip
podman exec odoo-app odoo db load --move odoo /tmp/odoo.zip
podman exec odoo-app rm /tmp/odoo.zip

Att starta odoo-app väntar tills PostgreSQL är redo. --move behåller databasens unika ID, som för en databas som har flyttats; utan den behandlar Odoo återställningen som en kopia och ger den ett nytt ID. Inloggningarna finns kvar, men alla måste logga in igen. Vill du prova något på en kopia använder du i stället --neutralize, som stänger av utgående e-post och schemalagda åtgärder i den återställda databasen.

13. Uppdatera

Odoo ger ut en ny version av varje huvudversion varje vecka eller varannan vecka, med rättningar, som taggar som 20.0-20260926, som du hittar på sidan för avbilden odoo på Docker Hub. Varje uppdatering kräver också en uppgradering av databasen, så Odoo uppdateras för hand. Säkerhetskopiera först, och kör sedan, med den nya taggen i stället för 20.0-20261031:

podman pull docker.io/library/odoo:20.0-20261031
sed -i 's|odoo:20.0-20260926|odoo:20.0-20261031|' ~/.config/containers/systemd/odoo-app.container
systemctl --user daemon-reload
systemctl --user restart odoo-app
podman exec odoo-app odoo module upgrade -d odoo all
systemctl --user restart odoo-app
podman image prune -a -f

Uppgraderingen tog under tre minuter, och Odoo svarar långsamt medan den pågår, så uppdatera när ingen arbetar. curl -s -H 'Content-Type: application/json' -d '{}' http://127.0.0.1:8118/web/webclient/version_info visar vilken version du kör. PostgreSQL uppdateras inom 18 av podman auto-update.

En ny huvudversion är en annan sak. Odoo släpper en varje höst, Odoo 20 år 2026, och stöder de tre senaste, så varje huvudversion får rättningar i omkring tre år. Att flytta en databas från en huvudversion till nästa ändrar dess struktur, och det gör inte avbilden. Odoo S.A.:s uppgraderingstjänst är bara till för Enterprise-kunder. För Community är vägen OpenUpgrade, som drivs av frivilliga i Odoo Community Association (OCA), och det tar tid: när vi skrev det här hade OpenUpgrade skript för att flytta från Odoo 18 till 19 för appar som Invoicing, CRM och Sales, men ännu inte för den svenska lokaliseringen, och grenen för Odoo 20 var tom. Räkna med att stanna på en huvudversion under större delen av dess livstid, och testa flytten på en kopia av databasen, återställd med --neutralize, innan du litar på den med din bokföring.

Felsökning

curl mot 127.0.0.1:8118 får inget svar, och Odoos logg säger HTTP service running on 127.0.0.1:8069. Raden http_interface = 0.0.0.0 saknas i odoo.conf. Då lyssnar Odoo 20 bara inne i containern.

Varje inloggning i loggen kommer från 203.0.113.10. proxy_mode = True saknas i odoo.conf. Starta om odoo-app när du har lagt till den.

Chatt och aviseringar uppdateras inte, och webbläsarens konsol visar en misslyckad anslutning till /websocket. Raden reverse_proxy /websocket saknas i Caddyfile, eller så publicerar podden inte port 8072.

PDF:er saknar layout, logotyp och sidhuvud, och loggen säger wkhtmltopdf: Exit with code 1 due to network error: ConnectionRefusedError. Raden AddHost i odoo.pod saknas eller anger en annan adress. Odoo hämtar sina egna stilmallar från sin publika adress när den skapar en PDF.

Mejl till info@ blir ingen affärsmöjlighet. Alias Domain under Settings > Emails måste vara domänen i adressen, och mejlet måste nå brevlådan som Odoo hämtar från. Fetch Now på servern för inkommande e-post hämtar direkt, så du slipper vänta fem minuter.

Inbjudningar och återställningar av lösenord kommer aldrig fram. E-post är inte uppsatt, eller så saknas hemligheten med lösenordet; se steg 10.

E-posten slutade fungera när du satte Alias Domain, och leverantören vägrar notifications@example.com. Odoo skickar nu från aliasdomänens Default From Alias. Sätt den till odoo, som i steg 10.

Kör det på din egen server

SSD RAID 1 · ECC DDR4 · 10 Gbit

VC-P Alloy

100 kr/mån

vCPU
2
Minne
8 GB
Lagring
60 GB
Trafik
10 TB
Performance
SSD · RAID 1
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider