Source for Best Practices for integration with bespoke systems

I have no support/technical question and have seen the support category. (Be aware that direct support questions will be deleted.)

on

Which general topic do you have

Just installed NCP on a Pi4+. (and first of all…well DONE! I was just playing. But I’m going to need to promote to chunkier hardware soon at this rate.)

I have a large ecosystem of weird bespoke PKMS databases, todo lists and contact management, local wikis, IoT stuff and an endless array of little scripts running around my lan.

Where’s the best place to start looking for…well…integration best practices.

For instance: “Create an agent user that has access to suchandso API and can only log in from the local LAN.”

I want to push and pull all manner of data into and out of NCP, from media files to todo list status changes and on and on.

Internet searches are so full of llm schlock it’s beyond bearing. I’d be happy to pepper questions like grapeshot. But…I’d rather a nice solid “first read this mountain of greenbar so you at least ask the right questions” to start with.

It doesn’t seem like plugin development, security issues, or any topic I could find.

Could y’all point me to TFM that I may R it?

Hi @mpwilson,

Welcome, and glad you’re enjoying NCP.

Here is your mountain of greenbar, sorted by where to start:

For scripted access to files, contacts, calendars

The Developer Manual is your primary reference — specifically the Client APIs section. Nextcloud speaks WebDAV for files, CalDAV for calendars, and CardDAV for contacts. All standard protocols, all accessible from any HTTP client or library.

For everything Nextcloud-specific (users, shares, tags, notifications, etc.)

The OCS API is covered in the same Developer Manual. It is a REST-ish API that gives you programmatic access to most of what the web interface can do. Install the OCS API Viewer app on your Nextcloud instance — it gives you an interactive browser of all available OCS endpoints, with code examples in multiple languages right there in the UI. Essential for someone in your situation.

For your “agent user” concept

Create a regular Nextcloud user and generate an App Password for it. App passwords are revocable, scoped credentials that work over Basic Auth — your scripts use the app password, never your main password. Permissions are whatever you assign to that user account in the normal way.

For automation and event-driven integration

Two layers here. The built-in file workflows let you trigger actions on file events, tags, shares and similar — good for straightforward automation without external dependencies. For more complex orchestration, the Nextcloud Windmill integration connects Nextcloud to Windmill, a full workflow engine — this is the current recommended path for serious automation work.

For LAN-only access

Nextcloud itself has no per-user IP restriction. This belongs at the network level — your firewall, a reverse proxy with IP filtering, or simply not exposing the relevant ports externally. Nextcloud’s trusted_proxies and trusted_domains configuration is worth reading for the network boundary setup.

If you ever want to build an actual app or plugin

The App Store developer documentation and the PHP API reference at https://nextcloud-server.netlify.app/ are where that begins. Probably not where you need to start though.

That should be enough reading to ask the right questions. Fire away when you get there.


h.t.h.


ernolf

sheds a tear of joy

The scenarios about setup, restriction models and such, were just hypotheticals based on the kind of things I anticipated hearing about. So no worries about “not having per-user IP restriction” or any of that. I just wanted to cover as much area with the initial shotgun blast.

I doubt I’ll go the Windmill route. Perhaps some day. My existing architecture is a bit too Sheogorath for that. (But, having just heard of Windmill for the first time, it’s definitely worth a looksee.)

My nominal plan is to use NC(P) as “front facing middleware” so I don’t have to write an android todo list application, file sync client, calen…all that, from scratch. Master copies of most everything are “well behind” NextCloud, at least for now.

Off to the API docs (app api docs) it is then.

Thanks o7

:vulcan_salute: