Odoo 19 v Dockerju: Popolni vodnik za namestitev za Ubuntu 24.04 (Community & Enterprise)
Uvod
Uvajanje sistema ERP se pogosto zdi težavna naloga, vendar kontejnerizacija ta postopek spremeni v poenostavljen potek dela. V tem vodniku bomo prikazali, kako namestiti Odoo 19 na sveži instanci Ubuntu 24.04.
Glavni poudarek te metode je njena vsestranskost. Opredeljujemo arhitekturo, ki vam omogoča, da začnete z brezplačno različico Community, hkrati pa ohranja možnost takojšnje nadgradnje na Enterprise s preprostim kopiranjem modulov. Brez posegov v konfiguracijo "on-the-fly" - samo čisto upravljanje vsebnikov in samodejno SSL prek Caddyja.
Tehnični nabor (preverjeno):
- Ker gre za namestitev Dockerja, metoda velja tudi za druge distribucije Linuxa)
- Kontejnerizacija: Docker 29.1.5 + Docker Compose
- Spletni strežnik: Caddy (samodejni HTTPS): Spletni strežnik: Caddy (samodejni HTTPS)
- Database: PostgreSQL 18
- Specifikacije VM: 2 vCPU, 4 GB RAM, 40 GB NVMe
Korak 0: Namestite Docker
Namestite Docker iz uradne shrambe:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Dodajte svojega uporabnika v skupino docker:
sudo usermod -aG docker $USER newgrp docker
Omogočite in zaženite Docker:
sudo systemctl enable docker sudo systemctl start docker
Preverite namestitev:
docker ps
Korak 1: Vzpostavite strukturo projekta
Ustvarite delovni imenik in potrebne mape:
mkdir odoo-stack && cd odoo-stack mkdir -p addons enterprise
Korak 2: Ustvarite docker-compose.yml
Ustvarite novo datoteko Docker Compose:
nano docker-compose.yml
Vnesite naslednjo konfiguracijo (nadomestite odoo_secure_password v razdelkih db environment in odoo environment s svojim dejanskim geslom):
YAML
services:
db:
image: postgres:18
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo_secure_password
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data/pgdata
restart: unless-stopped
odoo:
image: odoo:19.0
depends_on:
- db
volumes:
- odoo-web-data:/var/lib/odoo
- ./addons:/mnt/extra-addons
- ./enterprise:/mnt/enterprise-addons
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo_secure_password
command: >
--addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/enterprise-addons,/mnt/extra-addons
--proxy-mode
restart: unless-stopped
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-data:/data
restart: unless-stopped
volumes:
odoo-web-data:
odoo-db-data:
caddy-data:
Korak 3: Ustvarite datoteko Caddyfile
Ustvarite konfiguracijsko datoteko Caddy:
nano Caddyfile
Vstavite spodnjo konfiguracijo (zamenjajte :80 s svojo domeno za samodejno SSL):
# Replace :80 with YOUR_DOMAIN for automatic SSL
:80 {
# Increase client max body size for file uploads
request_body {
max_size 300MB
}
# Longpolling for chats and notifications
reverse_proxy /longpolling/* odoo:8072 {
header_up X-Forwarded-Host {host}
header_up X-Forwarded-Proto {scheme}
}
# Main traffic
reverse_proxy odoo:8069 {
header_up X-Forwarded-Host {host}
header_up X-Forwarded-Proto {scheme}
}
}
Korak 4: Zagon sklada
Zagon sklada:
docker compose up -d
Preverite stanje (vsi trije vsebniki morajo biti "Up"):
docker compose ps
Preverite dnevnike in se prepričajte, da ni napak:
docker compose logs odoo
Korak 5: Začetna nastavitev
Odprite brskalnik in pojdite na:
- Preko IP: http://YOUR_SERVER_IP
- Preko domene: https://YOUR_DOMAIN (če je nastavljeno v datoteki Caddyfile)
Izpolnite obrazec za ustvarjanje podatkovne zbirke:
- Glavno geslo: ob prvi prijavi bo predlagano glavno geslo (to geslo shranite, saj je zelo pomembno).
- Ime zbirke podatkov: npr. mycompany.
- E-pošta: To je vaš dostopni e-poštni naslov (to bo vaša prijava).
- Geslo: vaše geslo za prijavo v sistem.
- Jezik: Izberite želeni jezik.
- Država: Izberite svoj jezik: Izberite svojo državo.
- Demo podatki: Za čisto produkcijsko podatkovno zbirko pustite neodkljukano.
Kliknite Ustvari podatkovno zbirko in počakajte, da se postopek zaključi (1-2 minuti).

Nadgradnja s skupnosti na podjetje
Če želite preiti iz Community na Enterprise, preprosto postavite module v določen imenik.
Korak 1. Pridobite module Enterprise (z naročnino na Odoo).
Korak 2. Izvlečite jih v mapo ./enterprise/.
Korak 3. Ponovno zaženite vsebnik:
docker compose restart odoo
Korak 4. Odprite brskalnik, pojdite na Settings → General Settings in vnesite kodo naročnine Enterprise v polje Publisher Warranty Code. Kliknite Save, da aktivirate licenco.
Korak 5. Pojdite na Apps → Update Apps List in namestite zahtevane module Enterprise.
Konfiguracija požarnega zidu
Če uporabljate UFW, zaženite naslednje:
sudo ufw allow ssh/tcp && \ sudo ufw allow 80/tcp && \ sudo ufw allow 443/tcp && \ sudo ufw default deny incoming && \ sudo ufw default allow outgoing && \ sudo ufw --force enable
Uporabni ukazi
Ustavi vse:
docker compose down
Ponovno zaženite samo sistem Odoo:
docker compose restart odoo
Oglejte si dnevnike:
docker compose logs -f odoo docker compose logs -f db docker compose logs -f caddy
Varnostno kopiranje podatkovne baze:
docker compose exec db pg_dumpall -U odoo > backup_$(date +%Y%m%d).sql
Obnovitev podatkovne baze:
cat backup_20240125.sql | docker compose exec -T db psql -U odoo
Popolno brisanje (previdno!):
docker compose down -v rm -rf addons enterprise Caddyfile
Uporaba imena domene
Pridobitev samodejnega certifikata SSL pri Let's Encrypt:
Korak 1. Konfigurirajte DNS: Usmerite zapis A iz VAŠE_DOMENE na IP vašega strežnika.
Korak 2: Dodajte domensko ime DNS. Posodobite datoteko Caddyfile: Zamenjajte :80 z VAŠA_DOMENA.
Korak 3. Ponovno zaženite Caddy:
docker compose restart caddy
Caddy bo samodejno zagotovil certifikat SSL.
4. Korak: Vklopite SSL. Dostopajte do sistema Odoo prek spletne strani https://YOUR_DOMAIN.
Preverite izdajo potrdila:
docker compose logs caddy | grep certificate