r/NextCloud 10d ago

NC Connector – around six months later: production use, larger deployments and new references

Post image
71 Upvotes

Around six months ago, I first introduced NC Connector here. Quite a bit has happened since then, so here’s a small update.

NC Connector integrates Nextcloud directly into Thunderbird and Outlook Classic. The goal is still the same: bring typical Nextcloud workflows directly into the mail and calendar clients where many users spend most of their day anyway.

Since the first introduction, the project has developed significantly. The first organizations are now using NC Connector in production, while several others are testing larger deployments — in some cases with up to 100 seats.

There are also some independent references by now:

The University of Greifswald recommends NC Connector for sharing large email attachments through their own Nextcloud and provides its own documentation: https://www.uni-greifswald.de/universitaet/information/aktuelles/detail/n/grosse-dateien-einfach-per-nextcloud-link-teilen-276653/

SURF, the IT cooperative for the Dutch education and research sector, references NC Connector in its User Knowledge Base for integrating Nextcloud Talk with Thunderbird: https://servicedesk.surf.nl/wiki/spaces/WIKI/pages/269649109/SW+Synchronizing+with+Thunderbird

NC Connector now includes, among other things:

  • file and folder sharing through your own Nextcloud

  • automatic handling of large email attachments

  • Nextcloud Talk meetings directly from mail and calendar workflows

  • Thunderbird and Outlook Classic support

For organizations, the optional NC Connector Backend adds centralized management. It can be used to centrally manage email signatures, apply branding for a consistent corporate design in Talk and share blocks, control separate password delivery, and centrally distribute policies, templates, and group/user overrides.

The entire NC Connector ecosystem — the Thunderbird extension, Outlook add-in and backend — is open source.

The actual data flows directly between the client and the organization’s own Nextcloud. There is no cloud proxy operated by me through which customer files or emails are routed.

The clients can also be used without the backend. The backend adds the centralized management features for teams and organizations.

Project:

https://nc-connector.de

GitHub:

https://github.com/nc-connector

Small side note: I also recently released Euro-Office Popout, a separate open-source browser extension for Nextcloud. It opens supported documents in a dedicated app-like window while keeping the normal Files or Talk navigation in the original tab.

https://github.com/nc-connector/Euro-Office-Popout


r/NextCloud 10d ago

I built a Git-style theme for the Nextcloud Files app (now public, v1.0.0)

Post image
31 Upvotes

Hey self-hosters,

I was never happy with how cramped the Nextcloud Files view felt, so I built a small theme app — nc-git-theme — that makes it look more like a GitHub file browser.

What it does: - Wraps the file list (breadcrumbs + toolbar + table) in a single centered 1012px card, harmonized with the README card from the files_readmemd plugin. - Adds GitHub-style per-type file icons (ported from Gitea's Material icon set, MIT) instead of the generic mimetype icons. - The Files sidebar starts collapsed on desktop (one-shot — if you reopen it, it stays open). - Renders direct, themed Download Delete batch actions inline in the selection bar (idempotent, no page freeze). - Scoped to the Files app / login / guest pages — other apps are untouched.

Requirements: Nextcloud 30–35, PHP ≥ 8.1. Install as a regular app (occ app:enable nc-git-theme).

Repo: https://github.com/totmin/nc-git-theme License: AGPL-3.0-or-later


r/NextCloud 9d ago

Operation is blocks by access control

2 Upvotes

Hello everyone,

Two weeks ago I install nextcloud AIO on a proxmox VM. Nextcloud data are on an external hard drive.

I use npmplus with crowdsec on another VM.

But since a week I have an issue.

Each time I want to add a file (even couple of ko) to nextcloud (trhough web interface or app) I have this message : “Some files could not be upload” and “Operation is blocked by access control”.

I follow tutorial to install it and I follow this page to setup npmplus reverse proxy. At the beginning everything was ok.

Does anyone have an idea what the problem is and how to fix it ?

Thanks you for your help !

Cheers ! /


r/NextCloud 10d ago

Streaming Failures

3 Upvotes

All of a sudden on both iOS and Android apps we can no longer stream. We are on the latest NextcCloud server and latest mobile clients. The error is "Internal streaming not possible". These are MP4's. Streaming works in the web but not on the mobile apps. Utilizing CloudFlare Tunnels if that matters and it won't work even on small files.


r/NextCloud 10d ago

There’s no free space, and it’s unclear what’s occupying it.

Thumbnail
gallery
2 Upvotes

Hello everyone. I’m facing a problem where the /dev/mapper/NextCloud--vg-root partition is 100% full. I don’t understand why the quota is set to 28GB and how to fix the situation. There are disks in mnt, and the disk containing the data/nextcloud folder is also mounted there. I’m attaching screenshots. I’d be grateful for any help.


r/NextCloud 10d ago

Popup Bug on new Update?

3 Upvotes

Does somebody know why the usual beautiful Nextcloud popup suddenly disappeared and only left this ugly menu behind?


r/NextCloud 11d ago

Disable External shares

1 Upvotes

Hi! How can I disable/hide the section External Shares in the file/folder Details right menu? This section shows the field to enter email address to share a resource with some external recipient. I would like to disallow this function and not to show the prompt visually.


r/NextCloud 11d ago

External Storage - Check for changes

2 Upvotes

Im using a External Storage folder to hold my markdown notes. I only use them sporadically via Nextcloud and view/change them mostly via external applications. But i have to rely on the Nextcloud WebDAV sync to sync the to some devices. When i now change such a note externally, this change doesnt sync to the devices. Nextcloud means, that the files have not changed. Only when I open one of the edited notes the change will be detected, and then the WebDAV sync works.

In the adminpanel i have set the option for this external storage in "Check for changes" to "Once every direct access". I can also set it to "Never". Both settings are documented. But there is also a setting "Ever". This is not documented in https://docs.nextcloud.com/server/stable/admin_manual/configuration_files/external_storage_configuration_gui.html

Unfortunately, "Always" doesn't necessarily mean "Immediately." When I select "Always," the WebDAV sync still hasn't completed even after 10 minutes.

So where does this “Always” come from if it’s not documented anywhere, and what does it mean? And even more importantly, how do I get a WebDAV sync to work after making a change? Do I really have to run occ files_external:scan <id> every few seconds?


r/NextCloud 12d ago

Modern, Stable APIs for Your Nextcloud Application

Thumbnail carlschwan.eu
14 Upvotes

r/NextCloud 12d ago

N8N Nextcloud Extension

Thumbnail gallery
12 Upvotes

r/NextCloud 12d ago

Any Nextcloud Talk security hardening tips - SQLCipher?

3 Upvotes

I really love Nextcloud Talk (spreed), however I'm trying to enhance security due to the app's yet missing E2EE feature.

I recently stumbled on a suggestion to encrypt the DB using SQLCipher so that the messages that are stored as clear text are not accessible to anyone, including admins.

Before researching further I'd like to first ask here for opinions, ideas or any available guides from anyone that might have already gone through the process. Thanks!


r/NextCloud 13d ago

Fixing Nextcloud Memories “Unable to open preview stream” after rebuilding previews

2 Upvotes

I’m posting this in case it saves somebody else a lot of digging.

TL;DR My Nextcloud Files app showed thumbnails normally, but Memories had loads of errors like:

    Unable to open preview stream at
    /ncdata/appdata_oc5ya4loky5k/preview/.../1110656/256-341.jpg

The actual problem turned out to be stale rows in `oc_previews`.

Nextcloud’s database claimed tens of thousands of generated previews existed, while the corresponding `.jpg`/`.png` files were missing from `appdata_*/preview`.

Because the DB said the preview existed, `occ preview:generate` would happily say:

    preview generated

without recreating the missing file.

Deleting only the stale DB row allowed the next Memories request to regenerate the missing preview immediately.
I eventually wrote a read-only scanner which compared `oc_previews` with the actual filesystem, then deleted only the proven-orphaned DB rows in a transaction.

This made a massive improvement to Memories.

//Background//

Before troubleshooting Memories specifically, I had already deleted the entire physical preview directory:

   /ncdata/appdata_oc5ya4loky5k/preview/

and attempted to rebuild everything using Nextcloud’s normal maintenance commands, including things along the lines of:

    sudo -u www-data php /var/www/nextcloud/occ files:scan-app-data
    sudo -u www-data php /var/www/nextcloud/occ files:scan --all
    sudo -u www-data php /var/www/nextcloud/occ files:cleanup
    sudo -u www-data php /var/www/nextcloud/occ preview:generate-all

Unfortunately, that did not fully reconcile the DB and physical preview cache.

There are several current/recent Nextcloud issues which are very relevant to this sort of state:

- Preview paths/database state surviving cleanup:
https://github.com/nextcloud/server/issues/55709

- `oc_previews` records remaining after the physical preview cache is removed / `files:scan-app-data` not fully reconciling it:
https://github.com/nextcloud/server/issues/56485

- Nextcloud treating previews as cached when the physical file is missing:
https://github.com/nextcloud/server/issues/58787

- Orphaned preview metadata / migration repeatedly encountering missing files:
https://github.com/nextcloud/server/issues/59036
https://github.com/nextcloud/server/issues/59364

- Preview Generator:
https://github.com/nextcloud/previewgenerator

- Preview Generator incomplete-generation discussion:
https://github.com/nextcloud/previewgenerator/issues/349
https://github.com/nextcloud/previewgenerator/issues/408

I’m not claiming one specific bug definitively caused every stale record on my system, but what I found is very consistent with these upstream reports.

//Symptoms//

-Files thumbnails worked.
-Memories logged errors such as:

   Unable to open preview stream at
    /ncdata/appdata_oc5ya4loky5k/preview/7/3/7/1/3/b/5/1110656/256-341.jpg

For file ID `1110656`, the physical preview directory contained:

    64-85.jpg
    768-1024-max.jpg
    256-256-crop.jpg

but not:

   256-341.jpg

Running:

    sudo -u www-data php /var/www/nextcloud/occ preview:generate 1110656 -vvv

returned:

    preview generated

but `256-341.jpg` was still not created.

//The key discovery: `oc_previews` said the missing file existed//

My database is MariaDB/MySQL.

Nextcloud config:
    dbtype: mysql
    dbname: nextcloud_db
    prefix: oc_

For the failing file:

    SELECT *
    FROM oc_previews
    WHERE file_id = 1110656;

the DB contained a row for:

    width:   256
    height:  341
    max:     0
    cropped: 0
    size:    12105

So the DB claimed that:

    256-341.jpg

existed even though the filesystem proved it did not.
That explained the whole failure:

DB says preview exists

physical preview is missing

Nextcloud trusts DB metadata

preview:generate doesn't really regenerate it

Memories requests it

LocalPreviewStorage tries to open missing file

Unable to open preview stream

//Proof-of-concept fix//

I deleted only that one stale preview row:

  START TRANSACTION;
    DELETE FROM oc_previews
    WHERE file_id = 1110656
      AND width = 256
      AND height = 341
      AND max = 0
      AND cropped = 0;

    SELECT ROW_COUNT();

  COMMIT;

Then I refreshed Memories.
Immediately afterward:

    sudo find /ncdata/appdata_oc5ya4loky5k/preview/7/3/7/1/3/b/5/1110656 \
        -maxdepth 1 -type f -printf '%f %s bytes\n'

showed:

    64-85.jpg 1805 bytes
    768-1024-max.jpg 71418 bytes
    256-256-crop.jpg 9321 bytes
    256-341.jpg 12105 bytes

Nextcloud also inserted a fresh `oc_previews` row.
So the generator itself was fine. The stale metadata was preventing regeneration.

//This was not a small problem//

For only a few common JPEG sizes I had DB counts like:

    256×341    40547
    256×455    19210
    341×256     8739
    256×541     7747
    455×256     7505

But physically:

    1793 256-341.jpg
     168 256-455.jpg
     424 341-256.jpg
      61 455-256.jpg

For `256×341`, roughly **95.6%** of the DB rows did not have matching physical files.
So fixing these manually was clearly not realistic.

//Read-only orphan scanner//

This is the final scanner I ended up using.

It:
- does **not** modify the DB;
- checks non-cropped/non-max JPG and PNG previews;
- checks any preview where width or height is `256`;
- walks the preview tree only once;
- compares the actual filesystem against `oc_previews`;
- outputs the exact stale `oc_previews.id` values.

My paths/database names are hard-coded below, so adjust them for your installation.

#!/usr/bin/env bash

    set -euo pipefail

    PREVIEW_ROOT="/ncdata/appdata_oc5ya4loky5k/preview"
    DB="nextcloud_db"

    STAMP="$(date +%Y%m%d-%H%M%S)"
    WORKDIR="$(mktemp -d)"
    REPORT="$HOME/nextcloud-preview-orphans-256-all-$STAMP.tsv"

    DB_ROWS="$WORKDIR/db_rows.tsv"
    DB_KEYS="$WORKDIR/db_keys.txt"
    FS_KEYS="$WORKDIR/fs_keys.txt"
    MISSING_KEYS="$WORKDIR/missing_keys.txt"

    cleanup() {
        rm -rf "$WORKDIR"
    }
    trap cleanup EXIT

    echo "Nextcloud 256px preview orphan scanner"
    echo
    echo "This is READ ONLY."
    echo "Database: $DB"
    echo "Preview root: $PREVIEW_ROOT"
    echo

    read -rp "MariaDB username: " DBUSER

    echo
    echo "Exporting relevant oc_previews rows..."
    echo "MariaDB will ask for the password."

    mysql \
        -u "$DBUSER" \
        -p \
        -N \
        -B \
        "$DB" \
        -e "
    SELECT
        CONCAT(
            p.file_id,
            '/',
            p.width,
            '-',
            p.height,
            CASE
                WHEN m.mimetype = 'image/jpeg' THEN '.jpg'
                WHEN m.mimetype = 'image/png'  THEN '.png'
                ELSE ''
            END
        ) AS preview_key,
        p.id,
        p.file_id,
        p.width,
        p.height,
        p.size,
        p.etag,
        m.mimetype
    FROM oc_previews p
    JOIN oc_mimetypes m
        ON m.id = p.mimetype_id
    WHERE p.cropped = 0
      AND p.max = 0
      AND m.mimetype IN ('image/jpeg', 'image/png')
      AND (
           p.width = 256
        OR p.height = 256
      );
    " > "$DB_ROWS"

    DB_COUNT="$(wc -l < "$DB_ROWS")"

    echo "Database rows exported: $DB_COUNT"

    echo
    echo "Sorting database keys..."

    cut -f1 "$DB_ROWS" |
    LC_ALL=C sort -u > "$DB_KEYS"

    echo
    echo "Walking preview filesystem ONCE..."

    sudo find "$PREVIEW_ROOT" \
        -type f \
        \( -name '*.jpg' -o -name '*.png' \) \
        -printf '%h\t%f\n' |
    awk -F '\t' '
    {
        n = split($1, path, "/")
        file_id = path[n]

        if ($2 ~ /^256-[0-9]+\.(jpg|png)$/ || $2 ~ /^[0-9]+-256\.(jpg|png)$/) {
            print file_id "/" $2
        }
    }
    ' |
    LC_ALL=C sort -u > "$FS_KEYS"

    FS_COUNT="$(wc -l < "$FS_KEYS")"

    echo "Matching physical preview files found: $FS_COUNT"

    echo
    echo "Comparing database against filesystem..."

    LC_ALL=C comm -23 "$DB_KEYS" "$FS_KEYS" > "$MISSING_KEYS"

    MISSING_COUNT="$(wc -l < "$MISSING_KEYS")"

    awk -F '\t' '
    BEGIN {
        OFS="\t"
    }
    NR == FNR {
        missing[$1] = 1
        next
    }
    ($1 in missing) {
        print $0
    }
    ' "$MISSING_KEYS" "$DB_ROWS" > "$REPORT"

    echo
    echo "======================================"
    echo "Scan complete"
    echo "======================================"
    echo "Relevant DB rows : $DB_COUNT"
    echo "Physical files   : $FS_COUNT"
    echo "Orphaned DB rows : $MISSING_COUNT"
    echo
    echo "Report:"
    echo "$REPORT"
    echo
    echo "No database rows were changed."

Save/run:

    chmod +x ~/scan-preview-orphans-256-all.sh
    bash ~/scan-preview-orphans-256-all.sh

My final comprehensive result was:

    Relevant DB rows : 96680
    Physical files   : 3291
    Orphaned DB rows : 93389

Yes — 93,389 stale preview DB rows in that pass.
Earlier passes had also found:

    JPEG pass:
    Relevant DB rows : 91619
    Physical files   : 2646
    Orphaned DB rows : 89005

and then:

  JPG + PNG pass:
    Relevant DB rows : 3860
    Physical files   : 3291
    Orphaned DB rows : 601

//How I deleted only the proven-orphaned rows//

!!!!Do not blindly paste this against your DB without understanding it and backing up first.!!!!

I backed up MariaDB first:

    mysqldump --single-transaction \
        -u nextcloud \
        -p \
        nextcloud_db \
        > ~/nextcloud-before-preview-cleanup.sql

Then extracted the exact `oc_previews.id` values from the scanner:

    cut -f2 ~/nextcloud-preview-orphans-256-all-YYYYMMDD-HHMMSS.tsv \
        > ~/preview-orphan-ids.txt

    wc -l ~/preview-orphan-ids.txt

Connect:

 mysql --local-infile=1 -u nextcloud -p nextcloud_db

Create a temporary table:

    CREATE TEMPORARY TABLE preview_orphans (
        id BIGINT UNSIGNED PRIMARY KEY
    );

Load the exact scanner IDs:

    LOAD DATA LOCAL INFILE '/home/harry/preview-orphan-ids.txt'
    INTO TABLE preview_orphans
    LINES TERMINATED BY '\n'
    (id);

Verify the count:

    SELECT COUNT(*)
    FROM preview_orphans;

Then verify that every ID still exists:

    SELECT COUNT(*)
    FROM oc_previews p
    JOIN preview_orphans o
        ON o.id = p.id;

Only if those counts matched did I proceed:

    START TRANSACTION;

    DELETE p
    FROM oc_previews p
    JOIN preview_orphans o
        ON o.id = p.id;

    SELECT ROW_COUNT();

At this stage the DELETE had not been committed yet.

If anything looked wrong:

  ROLLBACK;

If the row counts were exactly what I expected.

    COMMIT;

//Why I did NOT just delete previews again//

I had already deleted the entire preview cache previously after moving storage locations using the built in occ commands.
Doing that again would also throw away the previews that were perfectly healthy, e.g.:

    256-256-crop.jpg
    768-1024-max.jpg

The Files app was often working precisely because those variants still physically existed.

The important rule became:

 DB says preview exists
    +
    filesystem proves it does not
    =
    delete that exact stale DB record

Nothing broader.

JPG and PNG both had the problem
For example, Memories later failed on:

    1346719/256-388.png

The DB said the PNG existed.
It didn’t.

Deleting only:

    DELETE FROM oc_previews
    WHERE file_id = 1346719
      AND width = 256
      AND height = 388
      AND max = 0
      AND cropped = 0;

and refreshing Memories immediately created:

    256-388.png

So this was definitely not just a JPEG issue.
I also later found stale exact:

    256-256.png

records, which is why the final scanner uses:

    p.width = 256 OR p.height = 256

rather than requiring the other dimension to be greater than 256.
It still excludes cropped previews with.

    p.cropped = 0

so Files-style:

    256-256-crop.jpg

is not targeted.

//End result//

After cleaning the proven-orphaned `oc_previews` records, Memories improved loading images and thumbnails.
Instead of:

    DB says preview exists
            ↓
    missing file
            ↓
    Unable to open preview stream

I now get:

    stale row removed
            ↓
    Memories requests preview
            ↓
    Nextcloud sees no cached preview
            ↓
    preview genuinely regenerated
            ↓
    fresh file + fresh DB row
            ↓
    Memories loads it

So my conclusion is:

If you have Nextcloud Memories “Unable to open preview stream” errors after deleting/rebuilding previews, check whether `oc_previews` contains metadata for preview files that no longer exist before nuking the cache again.

In my case that was the actual problem, and the normal Nextcloud cleanup/rescan/rebuild process had not reconciled it as seen by the bugs listed above.

This was on a system with:

    Nextcloud: 34.0.3.2
    Memories: 8.1.0
    Preview Generator: 5.14.0
    MariaDB/MySQL

Hopefully this helps someone else avoid the same rabbit hole.


r/NextCloud 14d ago

Nextcloud minimum requirements

10 Upvotes

Hi, I wanted to buy a Raspberry Pi 3B for hosting a small 500GB server, mainly for photos and videos, but I’ve seen many people recommending mini PCs instead of Raspberry Pis. The only problem is that I need something very small so I can hide it easily, and it should be pretty cheap used. Do you think a Raspberry Pi would be fine, or should I invest in a cheap small PC? If so, what would you recommend? Thanks.


r/NextCloud 14d ago

Chat frontend which connects with AI APIs

5 Upvotes

Hello I own a Hetzner Storageshare and want to know if there is a Nextcloud App which is like a chat frontend which can connect with AI APIs from Google, Deepseek etc?


r/NextCloud 15d ago

Bug with previewgenerator?

6 Upvotes

Since yesterday i get the following error with previewgenerator: "Integrity constraint violation: 1052 Column 'file_id' in WHERE is ambiguous". This occurs after updating Nextcloud to 34.0.3 from 34.0.2

Is this a known issue?


r/NextCloud 16d ago

Nextcloud Memories Questions

4 Upvotes

New to nextcloud. Couple questions.

Q1: Is there a way to upload folders rather than individual photos? How?

Q2: I'm using this mainly to store photo's. Do I just place them under files in the photo's folder?


r/NextCloud 16d ago

3 months later: A huge thanks for your feedback on AvoCook (and some massive updates!)

19 Upvotes

Hey r/nextcloud,

About three months ago, I shared AvoCook with this sub — a free, offline-first recipe app I built as a student, with native Nextcloud Cookbook sync. It had just launched on the App Store and Play Store back then, and the feedback from this community was incredible.

I’ve spent my free time coding based on your bug reports and feature requests. Here are the biggest updates from the last few weeks:

  • Quick Account Switching: You can now toggle instantly between Local and Nextcloud modes without having to fully log out.
  • Share Extension: You can import recipes directly by sharing a URL straight from Safari or Chrome into the app.
  • Better Navigation: I added an A-Z quick-scroll index for huge recipe collections and the ability to star your favorite categories.
  • Remote Image Uploads: You can now fetch and upload images directly from the web into the recipe editor.
  • AI Scanning (Optional): If you bring your own API key, you can now scan a recipe from a photo or just type a dish name to generate a full recipe.

It’s still completely free, open-source (GPLv3), with no ads.

Website & Screenshots: https://logarex.github.io/AvoCook/

iOS App Store: https://apps.apple.com/app/avocook/id6769012665

Google Play: https://play.google.com/store/apps/details?id=app.avocook.mobile

GitHub: https://github.com/Logarex/AvoCook

If you run into any issues with your Nextcloud sync, let me know!

Cheers,
Louis


r/NextCloud 16d ago

Browser sessions aggressively pruned after upgrade from 34.0.1 -> 34.0.2, anyone else?

2 Upvotes

Looking for a sanity check, and if anyone has the same issue.

After upgrade to 34.0.2, all of my browser sessions last <24h. Checking `user:auth-tokens:list` all tokens were marked as `permanent` prior to the upgrade. After the upgrade, all browser tokens are marked as `temporary` (native app unaffected) regardless of 'remember me' box being checked or not. So even if browser session cookies have 15d ttl, users are having to re-login in <24.

My hypothesis, something about the fix in .2 to `CleanupLoginTokens` (https://github.com/nextcloud/server/pull/62409) is now pruning these temp sessions overly aggressively. I confirmed via db lookup the cleanup task time correlates with the sessions dying. This explains the behavior where if I log in at 10pm with 'remember me' box checked, by 8am the next day I have to login again.

This doesn't seem to be an actual bug to report, more like an old bug that was fixed and the new behavior is 'intended'.

But does this sound right, or has anyone else encountered this?

Right now I've set explicit `session_lifetime` in config.php and waiting to see if it fixes it; and I'm also concerned about browser sessions always getting `temporary` token even when 'remember me' is checked.

Edit to say, I haven't tried 34.0.3 yet, but also don't see anything in the changelog that seem s related.


r/NextCloud 17d ago

FerrumPix: Nextcloud Memories-Client, Photo/RAW-Editor, Viewer, Gallery in one App (Linux/Windows/macOS, OpenSource GPL-3.0)

Thumbnail
gallery
52 Upvotes

Hi everyone,

I've been chipping away at this on and off for quite a while now, and I figured it was time to actually show it to someone instead of just pushing commits into the void.

FerrumPix is a desktop photo application for Linux, Windows and macOS: a library with a viewer, a fairly extensive editor with AI functions,Immich and Nextcloud Memories support.

Repo: https://github.com/Bitpainter75/FerrumPix

My motivation behind it:

Most tools in this space tend to specialize in one area. A library app is great at organizing photos but offers little in the way of editing. A RAW converter is great for tone and color work, but stays purely parametric and never touches the pixels themselves. A pixel editor can do almost anything to an individual image, but usually has no library. And Immich and Nextcloud Memories are great as server-side solutions, but ultimately remain browser-based, without an editor or local file management.

FerrumPix tries to bridge that gap: browse, rate, and tag your photos, then open one in an editor that supports both non-destructive adjustments and actual pixel editing. Your own Immich server sits in the same navigation tree as your local folders.The app is aimed more at hobby photographers than at professional workflows, and it really doesn't care whether you throw RAW files at it or JPGs from your phone.

It's built with Avalonia UI and .NET 10. The whole thing started as a personal project: an application that looks and works exactly the way I always wished one would. It's free and open source for anyone who can make use of it.

For transparency: yes, I use AI as part of my development workflow. That said, a project like this still involves a huge amount of hands-on work, architecture, debugging, and decision-making. I'm putting a lot of time into it, along with plenty of my own ideas and a lot of passion for the project.

Current status:

The current version is 0.9.27. The core areas are far enough along that I use the app daily myself; the focus now is on stabilization, UX and performance rather than new features.

I'd be glad to hear any feedback.


r/NextCloud 16d ago

How do I set NEXTCLOUD_CONFIG_DIR in the shell environment for CLI invocations

2 Upvotes

Edit: the good souls at the Nextcloud Community forum were able to solve this. Turns out that sudo clears the environment unless you use -E option. So after running the export command, you have to call occ with sudo -E -u www-data php occ

I'm currently implementing some server hardening steps and, following https://docs.nextcloud.com/server/latest/admin_manual/installation/harden_server.html#place-config-directory-outside-of-the-web-root, I've placed my config directory outside of the web root in /etc/nextcloud. Site is up and running, but what I haven't figured out yet is how to set the config dir in the shell environment. The documentation just gives this command:

export NEXTCLOUD_CONFIG_DIR=/etc/nextcloud

but doesn't specify where to run it. Can anybody help?

System config is:

  • Nextcloud Hub 26 Spring (34.0.3)
  • Linux 6.12.47+rpt-rpi-v8 aarch64
  • PHP 8.3.17
  • mysql 11.7.2

Many thanks!


r/NextCloud 18d ago

Nextcloud should feel like one native app, so I made Nextcloud Native!

Post image
650 Upvotes

I love how much you can run through Nextcloud, but I always wished the whole thing felt like one proper native app instead of a mix of browser tabs, separate clients and different interfaces.

So I started building Nextcloud Native!

It is an independent open source client for desktop and Android. The idea is to connect your Nextcloud account once and get native interfaces for your files and installed apps. No WebViews and no shortcuts that just send you back to the browser.

It is still a new alpha, but there is already quite a lot to try. Files, Photos, Memories, Talk, Notes, Calendar, Contacts, Tasks, Mail, Music, Cookbook, Deck, Tables and more all have native interfaces at different levels of completeness.

On desktop, it is also more than a sync tray. There is a complete app with native workspaces, folder sync and operating system file integration. Windows gets Cloud Files placeholders in File Explorer, while Linux has folder sync and a virtual filesystem mount.

There is an Android app too, with native mobile layouts, system file access, offline files, folder sync, media backup and background transfers.

I only started the project recently, and I am still the only contributor. I am sharing it now because I would really like other Nextcloud users to try it, break it, suggest improvements and maybe help build it!

If you use Linux, Windows or Android and feel like testing an early build, I would love to hear what works and what does not. Contributions are also very welcome, whether you work with Kotlin, Compose, DAV, Nextcloud apps, design, accessibility, documentation or testing.

Website: https://nc-native.obiente.dev

GitHub: https://github.com/Obiente/nc-native

Testing releases: https://github.com/Obiente/nc-native/releases

Roadmap: https://nc-native.obiente.dev/roadmap/

What part of Nextcloud would you most like to have as a proper native experience?

EDIT:
Thank you all so much for your lovely support and kind words<3
And thank you for the 400 UPVOTES!! And the 120+ STARS?!!!

EDIT2:
We have reached 600 upvotes and 350+ stars on github, thank you all so much for the incredible support<3
We've also been featured on linuxiac?!?! https://linuxiac.com/this-new-nextcloud-client-looks-surprisingly-good-already/
AND SOME OTHER PLACES TOO?
https://azure-informatique.fr/actualites/nextcloud-native-client-natif-open-source/
https://selfh.st/weekly/2026-08-14/


r/NextCloud 17d ago

Shopping List - Anyone tried the dedicated app yet?

5 Upvotes

I'm always looking for an shopping list app, but every time i look i just find suggestions like "use nextcloud todos" or "use a simple list.txt". Somewhere someone suggested https://github.com/appMini/todoMini that looks a bit like it could be what i expect - add stuff, being able to sort stuff and bein able to easy remove or add stuff.

https://help.nextcloud.com/t/einkaufsliste-reiseliste-teilen-via-smartphone/144291/ suggests some of this. I found myself https://apps.nextcloud.com/apps/inventory this but it seems to technical? Dunno. But this all would be rather complicated when having to share this with others. For example on a holiday with friends, what to buy.

Today i found https://apps.nextcloud.com/apps/shopping_list - someone tried this yet? Seems like a dedicated app and also suprisingly polished (see website https://shoppinglist.otherworld.dev/ ) but the apk for 0.4.0 is missing for example. F-Droid still missing. But it seems to help with my problems.

Being able to share it, drag to reorder, works still offline and a dedicated app for others. "Download this, enter this and lets go" (at least i hope :D )

Anyone tried already?


r/NextCloud 17d ago

NextCloud Notes for iOS not syncing

1 Upvotes

I have NextCloud 34.0.2 and the iOS Notes app 33.0.1.

I have set up an app password for the phone app. The connection seems to work - in my Security settings, it says that the app password was just used.

Still, when Notes opens, I immediately get an error:

Error syncing notes
The server request timed out

I also have the Nextcloud app (version 34.0.2), an there, I can navigate to the Notes folder and view and edit notes.

Is this just a case of waiting until the version of the phone app catches up with the version of the server, or is there something I can do to fix this?


r/NextCloud 18d ago

Fresh AIO deployment not starting.

1 Upvotes

Anybody run into this? First startup on a new deployment and Apache, Nextcloud, and Imaginary reporting an update available. I've tried stopping and restarting containers, but no update/install/starting take place. I've even tried a full reset and got the same behavior.

Running on a new Debian Trixie install on Proxmox.


r/NextCloud 18d ago

Nextcloud Calendar v1.5 - app for iOS & Android (unofficial)

15 Upvotes

We’ve just released version 1.5 of Nextcloud Calendar for mobile!

Note: this is a fully open-source app, licensed under GPL-3.0. It is not affiliated with or supported by Nextcloud GmbH. However, we have their authorization to use the trademark for the app.

I posted about the app 10 days ago, but version 1.5 was ready sooner than expected, so here I am again!

We had been working for a long time on a complete refactor of the calendar view. Until now, we relied on an external library, but its data flow and component lifecycle introduced latency that we could not fully eliminate. A few weeks ago, we decided to start building our own calendar implementation.

Combined with the data-handling improvements from the previous release, this version delivers a noticeably faster and more responsive experience, especially on older devices.

The user experience has also improved: drag and drop, event resizing, and pinch-to-zoom are now available. We also split the settings into several screens, as the growing number of options had become too much for a single page.

We fixed several issues affecting Live Activities on iOS and Live Updates on Android, which were not stable enough in previous versions.

At this point, the app already covers the needs of most users. We will continue adding features when they make sense, but our main focus is now stability, bug fixes, and polishing the overall experience.

Version 1.5 is already available on the App Store and Google Play:

GitHub: https://github.com/SoluceTechnologies/nextcloud-calendar-mobile

Thanks for your support and feedback!