backup-odoo-container

n8n node for executing Odoo backup scripts on remote servers via SSH

Package Information

Downloads: 1 weekly / 10 monthly
Latest Version: 0.2.6
Author: Damian Soto

Documentation

n8n-nodes-backup-odoo-container

An n8n community node for executing Odoo backup scripts on remote servers via SSH.

Features

  • SSH Remote Execution: Execute backup scripts on remote servers securely via SSH
  • Complete Odoo Backup: Creates PostgreSQL dumps and copies filestore in a single ZIP file
  • DigitalOcean Spaces Integration: Optional upload to DigitalOcean Spaces with streaming
  • Local Retention Policy: Automatically keeps only the 7 most recent backups locally
  • JSON Output: Returns structured data with backup details
  • Docker Integration: Works with containerized Odoo deployments

Installation

Install the node in your n8n instance:

npm install n8n-nodes-backup-odoo-container

After installation, restart your n8n instance.

Usage

  1. Add the node to your workflow by searching for "Odoo Backup SSH"
  2. Configure SSH credentials using the "SSH Connection API" credential type
  3. Set the required parameters:
    • Backup Directory: Where backups will be stored (e.g., /opt/backups)
    • Odoo Container: Name of the container with PostgreSQL access
    • Odoo Web Container: Name of the container with the filestore
    • Database User: PostgreSQL username (usually odoo)
    • Database Name: Name of the Odoo database to backup

Authentication Options

The node supports two authentication methods:

  • Predefined Connection: Select from saved SSH connections
  • New Credentials: Create new SSH credentials (password or private key)

Server Requirements

Your remote server must have:

  • ✅ Docker installed and running
  • ✅ Odoo containers running (database and web)
  • ✅ Required tools: pg_dump, zip, docker
  • ✅ Optional: s3cmd (for DigitalOcean Spaces uploads)

Output

The node returns a JSON object with:

{
  "backup_name": "odoo_mydb_2025-01-15_14-30-00.zip",
  "backup_path": "/opt/backups/odoo_mydb_2025-01-15_14-30-00.zip",
  "remote_path": "s3://mybucket/backups/odoo_mydb_2025-01-15_14-30-00.zip"
}

Optional DigitalOcean Spaces Upload

To enable automatic upload to DigitalOcean Spaces, set these environment variables on your server:

  • SPACE_NAME: Your DigitalOcean Spaces bucket name
  • SPACE_FOLDER: Folder path within the bucket (optional)

What the Script Does

  1. Creates PostgreSQL dump using pg_dump in custom format
  2. Copies Odoo filestore from the web container
  3. Packages everything into a ZIP file
  4. Uploads to Spaces (if configured) while saving local copy
  5. Applies retention policy (keeps 7 most recent backups)
  6. Returns JSON with backup details

Development

To build and test the node:

# Install dependencies
npm install

# Build the node
npm run build

# Lint the code
npm run lint

# Create package
npm pack

Compatibility

  • n8n: Compatible with n8n community edition
  • Node.js: Requires Node.js 20.15 or higher
  • Odoo: Works with any Odoo version running in Docker containers

License

MIT

Author

Damian Soto - soto@volttus.com

Repository

GitHub Repository

Discussion