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.txtPerformance 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 = 20POS 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 printerLimitations
# 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 databasesSSD 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-cloneDeployMonkey 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.