> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getomni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Nextcloud

> Connect a Nextcloud instance to Omni for unified search across files and documents

The Nextcloud connector enables Omni to index and search files stored in a Nextcloud instance via WebDAV. It's designed for self-hosted and managed Nextcloud deployments alike.

## Overview

### What Gets Indexed

| Source   | Content                                                                         |
| -------- | ------------------------------------------------------------------------------- |
| Files    | Text, documents, and other extractable file content from configured directories |
| Metadata | File name, path, size, and modification timestamps                              |

### How It Works

1. You provide a Nextcloud server URL, username, and app password
2. The connector walks the configured directory tree via WebDAV `PROPFIND`
3. Full and incremental syncs use ETag-based change detection
4. Removed files are detected automatically on each sync
5. Extension allow/deny lists and a max file size filter control what gets indexed

<Note>
  The connector uses read-only WebDAV access — it cannot modify or delete any files in your Nextcloud instance.
</Note>

## Prerequisites

Before setting up the Nextcloud connector, ensure you have:

* **Nextcloud instance** reachable from the Omni network
* **A Nextcloud user account** with read access to the directories you want to index
* **Omni deployment** with the Nextcloud connector service running (profile: `nextcloud`)

## Setup

### Step 1: Create an App Password

1. Sign in to Nextcloud as the user Omni will connect as
2. Go to **Settings** → **Security** → **Devices & sessions**
3. Enter a name (e.g. `omni`) and click **Create new app password**
4. Copy the generated password — it will not be shown again

<Tip>
  Create a dedicated service user with read-only access to the directories you want indexed. This keeps Omni's access scoped and easy to revoke.
</Tip>

### Step 2: Connect in Omni

1. Navigate to **Settings** → **Integrations** in Omni
2. Find **Nextcloud** and click **Connect**
3. Enter the connection details:
   * **Server URL**: Your Nextcloud instance (e.g. `https://cloud.example.com`)
   * **Username**: The Nextcloud username
   * **App Password**: The app password from Step 1
4. Optionally configure advanced settings:

| Setting               | Default         | Description                                       |
| --------------------- | --------------- | ------------------------------------------------- |
| `base_path`           | `/`             | Subdirectory to sync (e.g. `/Shared/Engineering`) |
| `extension_allowlist` | all             | Only sync files with these extensions             |
| `extension_denylist`  | none            | Skip files with these extensions                  |
| `max_file_size`       | `0` (unlimited) | Maximum file size in bytes                        |
| `sync_enabled`        | `true`          | Enable scheduled sync                             |

5. Click **Connect**
6. Click **Sync Now** to start the initial sync

<Check>
  Your Nextcloud connector is now configured. Initial indexing may take a while depending on the size of the directory tree.
</Check>

## Managing the Integration

### Viewing Sync Status

Navigate to **Settings** → **Integrations** to view last sync time, the number of indexed items, and any errors for each Nextcloud source. Click **Configure** for details.

### Sync Modes

| Mode            | Description                                                             |
| --------------- | ----------------------------------------------------------------------- |
| **Full**        | Walks the entire configured directory tree (used for initial sync)      |
| **Incremental** | Uses ETag change detection to fetch only modified files since last sync |

### Removing the Integration

1. Navigate to **Settings** → **Integrations**
2. Click **Configure** against the Nextcloud source
3. Click **Delete Permanently**

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication failed">
    The username or app password is incorrect, or the user lacks access to `base_path`.

    **Solution**: Verify the credentials in Nextcloud and confirm the user can browse `base_path` via the web UI. Regenerate the app password if needed.
  </Accordion>

  <Accordion title="Files not appearing in search">
    Common causes:

    * Files outside `base_path`
    * Extension filtered out by allowlist/denylist
    * File larger than `max_file_size`

    **Solution**: Check the source configuration in **Settings** → **Integrations** → **Nextcloud** and trigger a manual sync.
  </Accordion>

  <Accordion title="Sync is slow on large trees">
    Nextcloud servers sometimes refuse `Depth: infinity` listings. The connector falls back to breadth-first `Depth: 1` traversal, which makes one request per directory.

    **Solution**: Narrow `base_path` to a specific subdirectory, or restrict extensions with `extension_allowlist`.
  </Accordion>
</AccordionGroup>

## Security Considerations

* **Read-only access**: The connector only issues WebDAV `PROPFIND` and `GET` requests
* **App passwords**: Use an app password, not the user's main password — it can be revoked independently
* **Encrypted storage**: Credentials are encrypted at rest in Omni

## What's Next

<CardGroup cols={3}>
  <Card title="Search Your Data" icon="magnifying-glass" href="/user-guide/search">
    Learn how to search across your files
  </Card>

  <Card title="AI Assistant" icon="robot" href="/user-guide/ai-assistant">
    Ask questions about your documents
  </Card>

  <Card title="Add More Connectors" icon="plug" href="/connectors/overview">
    Connect additional data sources
  </Card>
</CardGroup>
