Skip to content

Run Odoo on Raspberry Pi: Dev Server & POS Terminal

DeployMonkey Team · March 23, 2026 7 min read

Odoo on Raspberry Pi

A Raspberry Pi 5 (8GB) can run Odoo 19 for development, testing, or as a dedicated POS terminal. While not suitable for multi-user production, it is a cost-effective option for single-user scenarios and learning environments.

Hardware Requirements

# Minimum: Raspberry Pi 4 (4GB RAM)
# Recommended: Raspberry Pi 5 (8GB RAM)
# Storage: 64GB+ microSD (or NVMe SSD via HAT)
# OS: Raspberry Pi OS (64-bit) based on Debian 12

# Performance notes:
# - ARM64 architecture supported by Odoo
# - 8GB RAM handles 1-3 concurrent users
# - SSD strongly recommended over microSD
# - Single worker mode only (no multi-worker)

Installation

# Update Raspberry Pi OS
sudo apt update && sudo apt upgrade -y

# Install dependencies
sudo apt install -y postgresql python3-dev python3-pip \
  python3-venv libxml2-dev libxslt1-dev libldap2-dev \
  libsasl2-dev libjpeg-dev node-less npm git

# Create Odoo user
sudo adduser --system --home /opt/odoo --group odoo

# Clone Odoo (shallow clone saves space)
sudo -u odoo git clone --depth 1 -b 19.0 \
  https://github.com/odoo/odoo.git /opt/odoo/odoo-server

# Setup virtualenv
sudo -u odoo python3 -m venv /opt/odoo/venv
sudo -u odoo /opt/odoo/venv/bin/pip install -r \
  /opt/odoo/odoo-server/requirements.txt

Performance Optimization

# /etc/odoo.conf — tuned for Raspberry Pi
[options]
workers = 0
max_cron_threads = 1
limit_memory_hard = 1610612736
limit_memory_soft = 1073741824
limit_time_cpu = 120
limit_time_real = 300
db_maxconn = 16

# PostgreSQL tuning for limited RAM
# /etc/postgresql/15/main/postgresql.conf
shared_buffers = 256MB
effective_cache_size = 512MB
work_mem = 4MB
maintenance_work_mem = 64MB
max_connections = 20

POS Terminal Setup

# Raspberry Pi as POS kiosk:
# 1. Install Odoo with POS module
# 2. Connect touchscreen display
# 3. Chromium in kiosk mode

# Auto-launch POS:
# ~/.config/autostart/odoo-pos.desktop
[Desktop Entry]
Type=Application
Name=Odoo POS
Exec=chromium-browser --kiosk http://localhost:8069/pos/ui
Terminal=false

# Hardware:
# USB receipt printer (ESC/POS)
# USB barcode scanner
# Cash drawer via printer

Limitations

# What works:
# ✓ Single-user development/testing
# ✓ Dedicated POS terminal
# ✓ CI/CD test runner
# ✓ Demo/training server

# What doesn't work well:
# ✗ Multi-user production (too slow)
# ✗ Heavy reporting/PDF generation
# ✗ Large datasets (>10K records sluggish)
# ✗ Asset compilation (very slow first load)
# ✗ Multiple databases

SSD Boot Upgrade

# NVMe SSD via Raspberry Pi 5 HAT:
# 5-10x faster than microSD
# Essential for any real usage

sudo raspi-config
# Advanced → Boot Order → NVMe/USB
# Clone SD to SSD with rpi-clone

DeployMonkey for Production

The Raspberry Pi is great for dev and POS. For production Odoo, deploy on a proper VPS with DeployMonkey — automatic scaling, backups, and SSL included.