A build-to-order Odoo integration that keeps your attachments and DMS documents in sync with a self-hosted Nextcloud or ownCloud server, mapping each record to its own folder and issuing internal or public share links on demand. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo integration that keeps your attachments and DMS documents in sync with a self-hosted Nextcloud or ownCloud server, mapping each record to its own folder and issuing internal or public share links on demand. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19.
अभी कोई भुगतान नहीं। यह हमारी टीम को एक कोटेशन अनुरोध भेजता है — हम कीमत और अगले चरणों के साथ ईमेल द्वारा संपर्क करेंगे।
Teams that self-host their file storage do it on purpose: they want documents on infrastructure they control, not scattered across a vendor's object store. Odoo, though, keeps attachments in ir.attachment — either as base64 blobs in the database or under the filestore directory — with no native concept of syncing those files to an external WebDAV server, no per-record folder structure a user can browse in a Files app, and no way to hand someone a shareable link that respects your access rules. The moment you want a sales order's contracts sitting in a Nextcloud folder your legal team can open directly, or a public link to a datasheet that expires, Odoo core runs out of road and people fall back to manually re-uploading files in two places.
Two-way sync between `ir.attachment` and Nextcloud/ownCloud over the WebDAV (sabre/dav) protocol, reconciling both push and pull directions
Content-hash + modified-time conflict detection so simultaneous edits in Odoo and Nextcloud are flagged instead of silently overwritten
Per-record folder mapping via a configurable path template (e.g. `/Odoo/{model}/{record_name}-{id}`) with automatic folder creation on first sync
Internal vs public shareable links generated through the Nextcloud OCS Share API, with optional password protection and expiry dates
Access-rights-aware visibility enforced through `ir.model.access.csv` and record rules — users only see links for records they can already read
Public-link creation gated to designated security groups so ordinary users can't over-share externally
We build a dedicated Odoo module that bridges ir.attachment and the Nextcloud/ownCloud WebDAV + OCS Share API. A configuration model (with credentials stored in ir.config_parameter / a secured settings model, never hard-coded) holds the server URL, service account, and root path. New models.Model records extend the attachment and target document models with fields tracking the remote path, share token, sync state, and last-synced hash, using compute methods with @api.depends to surface a clean status in the UI. Per-record folder mapping is driven by a configurable template (for example /Odoo/{model}/{record_name}-{id}) so every partner, project, sale order, or DMS document gets a deterministic folder created on first sync. Two-way sync reconciles both directions: files added or replaced in Odoo push up over WebDAV, and changes detected on the Nextcloud side are pulled back and re-attached, with conflict handling based on modified-time and content hash so you never silently lose an edit.
Link generation uses the OCS Share API to mint either an internal link (visible only to the mapped Nextcloud group/users) or a public share, with optional password and expiry, exposed on the Odoo record through a QWeb-rendered button and stored so it can be embedded in QWeb reports or emails. Visibility is access-rights-aware: the module ships ir.model.access.csv entries plus record rules so a user only sees links and folders for records they can already read in Odoo, and public-link creation can be gated to specific groups. A scheduled automated action (ir.cron) runs the background sync on an interval you choose, batched and rate-limited to stay friendly to your Nextcloud instance, with a full sync log and a manual "sync now" action for on-demand pushes. Everything is reachable over Odoo's XML-RPC/JSON-RPC API too, so external systems can trigger syncs or read share URLs programmatically.
Because this is a build-to-order module, nothing ships until we agree on scope. We start with a short scoping call to confirm which models you want synced (attachments only, DMS documents, or specific business records), your Nextcloud/ownCloud version and auth method, and your Community-vs-Enterprise edition on Odoo 17.0, 18.0, or 19.0. We then build against a staging copy of your database, validate the two-way sync and link behavior in UAT, and deliver the installable module with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope. You receive the full source, documentation, a training session, and a post-go-live support window — and the git repository is yours to keep.
Runs a self-hosted Nextcloud/ownCloud on infrastructure they control and refuses to duplicate documents into a third-party cloud. They need Odoo attachments to live in their own storage automatically, with a clear per-record folder structure their non-Odoo colleagues can browse.
Owns the Odoo instance and wants sync that respects existing access rules, runs on a predictable cron, and doesn't hammer the Nextcloud server. Values secured credential storage, a sync log they can audit, and a git repo they can maintain.
Needs contracts, signed documents, and datasheets stored in a governed location with controlled sharing — internal links for staff, expiring password-protected public links for outside parties — all traceable back to the originating Odoo record.
Wants a one-click shareable link to the right document embedded in quotes, invoices, or project records via QWeb, without leaving Odoo or emailing files as attachments.
Buy the license on ecosire.com and download the Nextcloud / ownCloud Integration for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Nextcloud / ownCloud Integration for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| File storage location | Your self-hosted Nextcloud/ownCloud, synced from Odoo | Wherever you build it to go | Often a fixed provider or basic WebDAV push | |
| Sync direction | Two-way with hash + mtime conflict detection | Depends on in-house effort | Frequently one-way push only | |
| Per-record folders | Configurable path template, auto-created per record | Buildable but you design it | Flat or limited folder logic | |
| Shareable links | Internal vs public via OCS API, password + expiry | Must implement OCS calls yourself | Basic public links, limited controls | |
| Access-rights awareness | Record rules + `ir.model.access.csv`, group-gated public links | Only if you build the security layer | Often bypasses Odoo record rules | |
| Version support | Built for your Odoo 17.0 / 18.0 / 19.0, Community or Enterprise | Whatever you target | May lag new Odoo releases | |
| Ownership & support | Full git repo handover + support window | You own it and maintain it entirely | Vendor-locked, per-seat or annual fees | |
| Delivery model | Build-to-order, 2–4 weeks from confirmed scope | Long in-house build and QA cycle | Instant download but generic fit |
This is a build-to-order module, so nothing is pre-packaged for instant download. After a confirmed scope from the initial call, typical delivery is 2–4 weeks depending on how many models you sync and the complexity of your Nextcloud/ownCloud setup. We build on a staging copy, run UAT with you, then deploy to production.
Every build includes a post-go-live support window for bug fixes and configuration tweaks. Because you receive the full git repository, your team can maintain it, and we offer ongoing support or version-migration engagements (for example when you move from Odoo 17 to 18 or 19) as a separate scope.
Yes. Both expose the WebDAV protocol for files and the OCS Share API for links, which is what the module builds on. We confirm your specific server version and authentication method (app passwords / basic auth) during scoping and target that exact environment.
The integration is built on standard Odoo primitives — `ir.attachment`, models, cron, `ir.model.access.csv`, and record rules — so it runs on both Community and Enterprise. If your workflow depends on the Enterprise Documents (DMS) app, we map to that; on Community we map to attachments or your chosen records. We confirm the edition in the scoping call.
Visibility is access-rights-aware: record rules and `ir.model.access.csv` ensure a user only sees links for records they can already read in Odoo. Public-link creation is gated to specific security groups, and public shares support passwords and expiry dates via the OCS Share API, so external exposure is deliberate and controlled.
The sync compares content hashes and modified timestamps. When it detects a divergence it flags the record as a conflict rather than silently overwriting, and surfaces it in the sync log so someone can resolve it. You decide the default policy (Odoo-wins, remote-wins, or manual) during scoping.
Yes. The module is reachable over Odoo's XML-RPC / JSON-RPC API, so external applications can trigger a sync, read a record's remote folder path, or fetch its share URL programmatically — useful for integrating with portals or automation outside Odoo.
A build-to-order Odoo integration that keeps your attachments and DMS documents in sync with a self-hosted Nextcloud or ownCloud server, mapping each record to its own folder and issuing internal or public share links on demand. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19.