Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Integrations
  3. Nextcloud Sync v 19.0
  4. Sales Conditions FAQ

Nextcloud Sync

by Syntax & Sabotage https://praetorx.net , Lars Weiler https://praetorx.net
Odoo

$ 115.67

v 19.0 Third Party 1
This module requires Odoo Enterprise Edition.
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Documents (documents)
Community Apps Dependencies Show
Base
Lines of code 8661
Technical Name nextcloud_sync
LicenseOPL-1
Websitehttps://praetorx.net
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Documents (documents)
Community Apps Dependencies Show
Base
Lines of code 8661
Technical Name nextcloud_sync
LicenseOPL-1
Websitehttps://praetorx.net
  • Description
  • License

Nextcloud Sync

Bidirectional File Synchronization between Odoo Documents and Nextcloud via WebDAV

v19.0.1.0.11 Enterprise Odoo.sh NC 25+ OPL-1

Map Odoo Documents workspaces to Nextcloud folders and keep them in sync — automatically. AES-256 encrypted credentials, ETag-based conflict detection, configurable sync modes, and a setup wizard that gets you running in under five minutes.

praetorx.net | Syntax & Sabotage

  • Features
  • Screenshots
  • Setup
  • FAQ
  • Releases

Sync Engine

Bidirectional Sync

Three sync modes per library: bidirectional, Odoo → Nextcloud, or Nextcloud → Odoo. Each library maps one Odoo Documents workspace to one Nextcloud folder. Subfolder structure is replicated automatically.

ETag-Based Conflict Detection

Every sync compares the remote ETag against the last-known value. If both local and remote changed since the last sync, a conflict record is created with four resolution strategies: keep local, keep remote, keep newest, or keep both.

Automatic Scheduling

Four built-in cron jobs: sync queue processing (every 5 min), failed sync retry (every 15 min), stale sync cleanup (daily), and full bidirectional sync (hourly). All configurable via Odoo’s Scheduled Actions.

Remote Deletion Policies

Six configurable policies per library when a file is deleted from Nextcloud: ignore, mark as orphaned, create conflict, move to trash with audit log, archive, or delete. Trash log tracks every action for potential recovery.

Security & Authentication

AES-256 Encrypted Credentials

App passwords are encrypted at rest using Fernet symmetric encryption (AES-256-CBC). Per-company encryption keys are stored in ir.config_parameter. The cryptography library is a hard requirement — the module refuses to store unencrypted credentials.

App Password Authentication

Service account model with dedicated Nextcloud app passwords (recommended over user passwords). HTTPS is enforced — the URL validation rejects non-HTTPS connections.

Multi-Company Isolation

Record rules enforce company boundaries on all models — connections, libraries, folders, conflicts, trash logs, and version cache. Each company has its own encryption key.

Role-Based Access

Two access tiers: all internal users get read-only access to sync status. The Nextcloud Sync Manager group grants configuration, library management, and conflict resolution permissions.

Library Mapping & WebDAV

Workspace-to-Folder Mapping

Each library maps one Odoo Documents workspace to one Nextcloud folder path. Multiple libraries per Nextcloud connection are supported. Remote folder browsing and subfolder scanning are built in.

Smart Upload with Chunking

Files below the configurable threshold upload directly via WebDAV PUT. Larger files use Nextcloud’s chunked upload v2 (WebDAV-based, all NC versions). TUS protocol auto-detected on NC 26+. Graceful fallback on failure.

Version History Cache

On-demand version fetching via the Nextcloud Versions API. Caches up to 5 versions per document (24h expiry). View, download, or restore any cached version directly from the conflict resolution view.

OCS API Integration

Nextcloud version detection, edition discovery, and server capabilities are fetched via the OCS API and cached. Feature flags for TUS upload support and direct edit are computed automatically from the NC major version.

User Interface

OWL Dashboard

Dedicated OWL-powered dashboard under Documents → Nextcloud Sync → Dashboard showing aggregate sync statistics, connection status, and library health at a glance.

Setup Wizard

Four-step wizard under Configuration → Setup Wizard: choose sync direction, select or create a Nextcloud connection, map workspace to folder, review and create. Creates the library, connector, and remote folder in one go.

Sync Status Badge

OWL widget showing the current sync state (pending, syncing, synced, failed, conflict, orphaned) inline on document records. Status tracked via mail.tracking for full audit history.

Operations Views

Dedicated views for pending syncs, active conflicts, and deleted items (trash log). Accessible under Documents → Nextcloud Sync → Operations.

Technical Reference

ModelPurpose
nextcloud.authConnection config — URL, encrypted app password, NC version detection, OCS capabilities, connection testing, rate limiting
nextcloud.libraryWorkspace-to-folder mapping — sync mode, enable/disable, remote deletion policy, sync lock, statistics
nextcloud.connectorWebDAV client — PROPFIND, GET, PUT, MKCOL, DELETE, MOVE, COPY, chunked upload, retry logic
nextcloud.folderRemote folder cache — path, ETag, permissions, parent/child hierarchy, subfolder scanning
nextcloud.conflictConflict tracking — type (both_modified, deleted_locally, deleted_remotely, type_mismatch), resolution, auto-resolve
nextcloud.version.cacheOn-demand version history — 5 versions, 24h cache, content download, restore action
nextcloud.trash.logDeletion audit trail — document name, path, action taken (trashed/archived/deleted/restored), restore action
nextcloud.setup.wizard4-step transient wizard — source of truth, connection, mapping, review
documents.documentExtended with nc_file_id, nc_etag, nc_remote_path, nc_sync_status, nc_library_id, SHA256 checksum, sync lock

Screenshots

Screenshots will be added in a future update. Install the module to explore the full UI.

Setup Guide

Prerequisites
  • Odoo 19.0 Enterprise (requires the documents module)
  • Python 3.10+
  • Required Odoo modules: base, documents, mail, praetorx_base
  • Required Python packages: webdavclient3, requests, cryptography
  • Nextcloud 25 or later (NC 26+ recommended for chunked uploads)
  • A Nextcloud service account with an app password

Enterprise required. The documents module is an Odoo Enterprise module. This module does not work on Community Edition.

Install Python Dependencies

Install the required Python libraries in your Odoo environment:

pip install webdavclient3 requests cryptography

On Odoo.sh, add these to your requirements.txt file.

The cryptography package is mandatory — the module will not store credentials without it.

Create a Nextcloud App Password
  1. Log into Nextcloud as the service account user
  2. Go to Settings → Security → Devices & sessions
  3. Enter a name (e.g., “Odoo Sync”) and click Create new app password
  4. Copy the generated password — you will not see it again

Tip: Use a dedicated service account rather than a personal account for production deployments.

Run the Setup Wizard
  1. Navigate to Documents → Nextcloud Sync → Configuration → Setup Wizard
  2. Step 1 — Source of Truth: Choose sync direction (Odoo, Nextcloud, or Bidirectional)
  3. Step 2 — Connection: Create a new connection or select an existing one. Enter URL, username, and app password. Click Test Connection.
  4. Step 3 — Mapping: Select an Odoo Documents workspace and enter the Nextcloud folder path (e.g., /Documents/Odoo Sync)
  5. Step 4 — Review: Confirm the library name and click Create Library

The wizard creates the connection, connector, library, and optionally the remote folder in one operation.

Verify & Sync
  1. Open the newly created library under Documents → Nextcloud Sync → Sync Management → Libraries
  2. Click Sync Now to trigger the first manual sync
  3. Check the Dashboard for sync statistics and status
  4. Documents in the mapped workspace will show a sync status badge (pending → syncing → synced)

After the first sync, the cron jobs handle ongoing synchronization automatically.

Security Groups

Internal User: Read-only access to connections, libraries, folders, sync status, conflicts, and trash logs.

Nextcloud Sync Manager: Full CRUD on connections, libraries, folders, conflicts, version cache, and trash logs. Can run the setup wizard and resolve conflicts.

System (Settings): Full access including deletion of connections and system-level configuration.

FAQ

Does this work with Odoo Community Edition?
No. This module depends on documents, which is an Odoo Enterprise module. It works on Enterprise on-premise and Odoo.sh, but not on Community Edition.
Which Nextcloud versions are supported?
Nextcloud 25 and later. NC 26+ is recommended because it enables the TUS chunked upload protocol for large files. NC 24 and earlier have limited support — basic sync works but chunked uploads and direct editing are not available.
What happens when the same file is edited in both Odoo and Nextcloud?
The sync engine detects this as a “both modified” conflict using ETag comparison and SHA256 checksums. A conflict record is created and the document is marked as “conflict.” You can then resolve it by keeping the local version, remote version, newest version, or both (the local copy is renamed with a “conflict copy” suffix). Auto-resolution by strategy is also available.
How are large files handled?
The smart upload method checks file size against a configurable threshold (default: 10 MB). Files below the threshold use a standard WebDAV PUT. Files above the threshold use Nextcloud’s WebDAV chunked upload v2 — chunks are uploaded to a temporary directory, then assembled server-side. Upload timeout scales dynamically with file size (configurable seconds per MB). If chunked upload fails, the module falls back to standard upload automatically.
What happens when a file is deleted from Nextcloud?
This is controlled per library via the Remote Deletion Policy setting. Options: ignore (keep in Odoo), mark as orphaned, create a conflict for manual review, move to trash with a full audit log entry, archive in Odoo, or permanently delete from Odoo. The default is “move to trash” which archives the document and creates a trash log entry with the document name, path, size, MIME type, and timestamp for potential recovery.
Can I sync multiple workspaces to different Nextcloud folders?
Yes. Create one library per workspace-folder pair. Each library can use the same Nextcloud connection or a different one. Each library has independent sync mode, deletion policy, and enable/disable settings. The only constraint is that a workspace cannot be mapped twice to the same Nextcloud connection.
Is my Nextcloud password stored securely?
Yes. App passwords are encrypted using Fernet (AES-256-CBC with HMAC-SHA256) before storage. Each company gets its own encryption key stored in ir.config_parameter. The module requires the cryptography Python library and will refuse to store credentials if it is not installed. We recommend using a dedicated Nextcloud app password (not your main password) for an additional layer of isolation.

Release History

v19.0.1.0.11 — Current

Current Release

  • Incremental improvements and bug fixes since v19.0.1.0.8

v19.0.1.0.8 — February 2026

  • Extracted _get_connector() helper on nextcloud.auth to centralize connector lookup
  • Refactored folder and wizard connector creation to use auth helper
  • Aligned lock timeouts: document lock 300s, library lock 600s, stale sync cutoff 3600s
  • Restricted setup wizard CRUD: base users no longer have read access

v19.0.1.0.0 — January 2026

Initial Release

  • Bidirectional sync between Odoo Documents and Nextcloud via WebDAV
  • OCS API integration for version detection and capabilities caching
  • AES-256 encrypted credential storage (Fernet, per-company keys)
  • App password authentication with HTTPS enforcement
  • Library mapping: workspace-to-folder with three sync modes
  • ETag-based conflict detection with four resolution strategies
  • On-demand version history caching (5 versions, 24h expiry)
  • Trash log for remote deletion audit trail with restore action
  • OWL dashboard and sync status badge widget
  • 4-step setup wizard for guided configuration
  • Smart upload with chunked upload fallback for large files
  • 4 cron jobs: sync queue, retry failed, cleanup stale, full bidirectional
  • Multi-company record rules on all models
  • Nextcloud Sync Manager security group

You May Also Like

PraetorX Vault Works with Nextcloud Sync

Intelligent document classification, routing rules, and retention policies for Odoo Documents.

€199
PraetorX Foundation

AI provider management, health monitoring, and shared infrastructure for PraetorX modules.

Free
PraetorX Base

Reusable technical patterns, shared security groups, and menus for PraetorX modules. Required dependency.

Free
PraetorX Shell

Branded backend theme with sidebar, home tiles, activity dashboard, and per-role color theming.

Free

Made with ♥ by Syntax & Sabotage

© 2026 Syntax & Sabotage, Lars Weiler. All rights reserved. OPL-1.

Impressum · support@syntaxandsabotage.io

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with