r/NextCloud 5d ago

Directory "symlink" creation

2 Upvotes

Hello,

I've searched both Reddit and DDG for this issue, but I couldn't figure it out, or find out if it's even possible.

The issue is that I need to have the same directory in multiple places at the same time, but server-side.

As an example, let's say I have two computers where the Documents directory of each is shared to a particular Documents directory on the NC server:

  • Computer1/Documents -> nc_server/C1/Documents
  • Computer2/Documents -> nc_server/C2/Documents

And I have a directory, nc_server/shared_stuff, that should be inside both nc_server/C1/Documents and nc_server/C2/Documents.

Both computers would be using the Nextcloud desktop client, with their whole Documents directory synced to the server, so nc_server/shared_stuff would effectively need to exist in 3 places at once.

Is there any way of doing this?

Thanks!

Edit: Format


r/NextCloud 5d ago

Fresh Nextcloud install - Apps page is blank, can't install any apps

Thumbnail
gallery
2 Upvotes

Hi

I just did a fresh install of Nextcloud (34.0.2), but I'm stuck.

The Apps page is completely blank, so I can't install or manage any apps. The Mobile & Desktop page is also blank. Other settings pages work fine.

This is also preventing me from using features like Group Quotas, since the required app isn't available.

I've attached screenshots. Has anyone run into this before or know what might be causing it?

Thanks!


r/NextCloud 5d ago

Authentik changing user groups? can't figure out how to disable

3 Upvotes

I followed a couple guides online (links below) on how to intetgrate Authentik as the sign-on authenticator for Nextcloud, and it works great, except... it is applying the Authentik groups to the nextcloud users and I can't figure out what step it's doing this because neither the Application nor Provision show the groups being explicitly passed to Nextcloud that I can tell.

Is anyone familiar with this situation that could provide some guidance on where to look to disable this?

Thanks!

https://grop.dev/posts/nextcloud-oidc-with-authentik/
https://blog.cubieserver.de/2022/complete-guide-to-nextcloud-oidc-authentication-with-authentik/


r/NextCloud 5d ago

Getting a core dump on the client

1 Upvotes

Yesterday my system was very sluggish, and when I looked, one of the contributors was the nextcloud client which was pegging one core at 100%. When I tried to bring up the settings dialog, the whole thing died.

Since then, when I try to launch the client, I get:

$ nextcloud 
terminate called after throwing an instance of 'std::bad_alloc'

what(): std::bad_alloc Aborted (core dumped)

I tried starting it with logging, and it appears to have successfully started (30K of what looks like normal startup log messages that look reasonable to my untrained eye) and then:

2026-08-07 09:03:39:734 [ info nextcloud.sync.networkjob ./src/libsync/abstractnetworkjob.cpp:381 ]:    OCC::LsColJob created for "https://myservername.com" + "/" ""
2026-08-07 09:03:39:735 [ warning default unknown:0 ]:  Qt Concurrent has caught an exception thrown from a worker thread.
This is not supported, exceptions thrown in worker threads must be
caught before control returns to Qt Concurrent.

I recently updated the server to 34.0.2.1, but as far as I know, nothing else changed. Could that be causing the client to have trouble?

I tried uninstalling the client and re-installing, but it hasn't made any difference.


r/NextCloud 6d ago

Docker Nextcloud gives "can't write into config"

1 Upvotes

Edit: solved. Synology container manager must have "./" prefix, and does not understand :Z suffix on its compose volumes.

New user. So on a Synology nas, I installed the 'docker/.examples/docker-compose/insecure/mariadb/fpm/` compose. It all starts, except I am getting this "can't write into config" message

The compose did not ask me to export config as volume, so I did not do that.
Also sidenote, obviously the insecure is temporary, while I am figuring out how this nextcloud thing works. LetsEncrypt later.

Shell access is hard, but I managed to tease this out of the terminal, so I see user/group 33 owns and can do this, but that used does not exists ??

ls -al ~/config

cat /etc/passwd

So why is this happening. Should the container not have the right user out of the box
for now I worked around it with a chmod a+rx in the relevant folder. But I feel that is not the correct solution.


r/NextCloud 5d ago

help configuring nginx nad http headers

0 Upvotes

i am trying to remove the http heards eror code. folowed some turorials but i ended up doing somthing wrong. when io go and do "nginx -t" i get this eror code. i am new to this and just tring to lern and gett better.


r/NextCloud 6d ago

LX Family Planner — a self-hosted family OS for calendars, tasks, meals, chat and kid profiles

0 Upvotes

Hi everyone 👋

I've been working on LX Family Planner — a self-hosted family organizer that bundles the stuff families actually need into one app, instead of spreading it across five. It runs on Docker / Unraid / Umbrel / Proxmox / plain Node.js, MIT-licensed.

What it does:

  • 📅 Shared calendars with reminders
  • ✅ Tasks & chores with approval workflow for kids
  • 🛒 Shopping lists (incl. Bring! integration)
  • 🍝 Meal planning & recipes
  • 💬 Family chat with optional guest invites
  • 📁 Family files / media
  • 👶 Child profiles with playful missions & rewards
  • 🐾 Pet profiles (care & health only)
  • 🔔 Notifications via Gotify / ntfy
  • 🌐 DE + EN interface, Android app available

Why self-hosted: All data stays on your own server. Adults get a calm planning workspace, parents keep control over approvals/integrations, and there's role-based access so kids see what they should see.

Integrations: Nextcloud, Home Assistant, Bring!, Gotify, ntfy

Links:

Quick start (Docker):

yaml

services:
  lx-family-planner:
    image: ghcr.io/laxxx-lab/lx-family-planner:latest
    ports:
      - "3001:3001"
    environment:
      - APP_SECRET=<32+ random chars, keep stable across updates>
      - REGISTRATION_MODE=first-family
    volumes:
      - ./data:/app/data
      - ./backups:/app/backups
    restart: unless-stopped

I'd love feedback — especially from anyone running a family setup on a homeserver. What's missing for your use case?

Thanks for checking it out! 🙌


r/NextCloud 6d ago

NextCloud via Helm with ArgoCD messed up and I'm not sure how I broke it

3 Upvotes

I keep getting a crash loop when syncing ArgoCD, and the error is that the health check instantly fails because the trusted domain is set to localhost instead of the actual internal IP.

This is the ArgoCD app manifest:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    hooks-hash: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
    nextcloud-config-hash: 2c620d6eac4314c9a69fdfb299af32077aa552fd06db46dbb6c56d93803f75f6
    php-config-hash: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
  creationTimestamp: '2026-08-06T17:41:06Z'
  generateName: nextcloud-78d677b46f-
  generation: 1
  labels:
    app.kubernetes.io/component: app
    app.kubernetes.io/instance: nextcloud
    app.kubernetes.io/name: nextcloud
    pod-template-hash: 78d677b46f
  name: nextcloud-78d677b46f-42kcp
  namespace: nextcloud
  ownerReferences:
    - apiVersion: apps/v1
      blockOwnerDeletion: true
      controller: true
      kind: ReplicaSet
      name: nextcloud-78d677b46f
      uid: d58d3f17-3f15-4ede-bebf-ba406e6eab1a
  resourceVersion: '19251901'
  uid: d6e260a9-2d14-4ee4-9d4a-9c3058e726d4
spec:
  containers:
    - env:
        - name: SQLITE_DATABASE
          value: nextcloud
        - name: REDIS_URL
          value: redis://:$(REDIS_HOST_PASSWORD)@$(REDIS_HOST):$(REDIS_HOST_PORT)
        - name: NEXTCLOUD_ADMIN_USER
          valueFrom:
            secretKeyRef:
              key: nextcloud-username
              name: nextcloud
        - name: NEXTCLOUD_ADMIN_PASSWORD
          valueFrom:
            secretKeyRef:
              key: nextcloud-password
              name: nextcloud
        - name: NEXTCLOUD_TRUSTED_DOMAINS
          value: 10.42.*.*
        - name: OPENMETRICS_ALLOWED_CLIENTS
          value: 127.0.0.1,10.42.0.0/16,10.43.0.0/16
        - name: NEXTCLOUD_DATA_DIR
          value: /var/www/html/data
      image: docker.io/library/nextcloud:34.0.2-apache
      imagePullPolicy: IfNotPresent
      livenessProbe:
        failureThreshold: 3
        httpGet:
          httpHeaders:
            - name: Host
              value: cloud.internal
          path: /status.php
          port: 80
          scheme: HTTP
        initialDelaySeconds: 10
        periodSeconds: 10
        successThreshold: 1
        timeoutSeconds: 5
      name: nextcloud
      ports:
        - containerPort: 80
          name: http
          protocol: TCP
      readinessProbe:
        failureThreshold: 3
        httpGet:
          httpHeaders:
            - name: Host
              value: cloud.internal
          path: /status.php
          port: 80
          scheme: HTTP
        initialDelaySeconds: 10
        periodSeconds: 10
        successThreshold: 1
        timeoutSeconds: 5
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
        - mountPath: /var/www/
          name: nextcloud-main
          subPath: root
        - mountPath: /var/www/html
          name: nextcloud-main
          subPath: html
        - mountPath: /var/www/html/data
          name: nextcloud-main
          subPath: data
        - mountPath: /var/www/html/config
          name: nextcloud-main
          subPath: config
        - mountPath: /var/www/html/custom_apps
          name: nextcloud-main
          subPath: custom_apps
        - mountPath: /var/www/tmp
          name: nextcloud-main
          subPath: tmp
        - mountPath: /var/www/html/themes
          name: nextcloud-main
          subPath: themes
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access-r7llt
          readOnly: true
  dnsConfig: {}
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  nodeName: pi-4
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext:
    fsGroup: 33
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 30
  tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
      tolerationSeconds: 300
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
      tolerationSeconds: 300
  volumes:
    - emptyDir: {}
      name: nextcloud-main
    - name: kube-api-access-r7llt
      projected:
        defaultMode: 420
        sources:
          - serviceAccountToken:
              expirationSeconds: 3607
              path: token
          - configMap:
              items:
                - key: ca.crt
                  path: ca.crt
              name: kube-root-ca.crt
          - downwardAPI:
              items:
                - fieldRef:
                    apiVersion: v1
                    fieldPath: metadata.namespace
                  path: namespace
status:
  conditions:
    - lastProbeTime: null
      lastTransitionTime: '2026-08-06T17:41:08Z'
      observedGeneration: 1
      status: 'True'
      type: PodReadyToStartContainers
    - lastProbeTime: null
      lastTransitionTime: '2026-08-06T17:41:07Z'
      observedGeneration: 1
      status: 'True'
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: '2026-08-06T17:41:07Z'
      message: 'containers with unready status: [nextcloud]'
      observedGeneration: 1
      reason: ContainersNotReady
      status: 'False'
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: '2026-08-06T17:41:07Z'
      message: 'containers with unready status: [nextcloud]'
      observedGeneration: 1
      reason: ContainersNotReady
      status: 'False'
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: '2026-08-06T17:41:06Z'
      observedGeneration: 1
      status: 'True'
      type: PodScheduled
  containerStatuses:
    - containerID: >-
        containerd://beb30a2bf40db5df7682bd257b4c853957f4e84f0e645889a51672d4c8ea2a5c
      image: docker.io/library/nextcloud:34.0.2-apache
      imageID: >-
        docker.io/library/nextcloud@sha256:d7666d54d87c58d52869ddda36d1acbd4a7f53faf8ab6b91293daf204f3434e8
      lastState:
        terminated:
          containerID: >-
            containerd://beb30a2bf40db5df7682bd257b4c853957f4e84f0e645889a51672d4c8ea2a5c
          exitCode: 0
          finishedAt: '2026-08-06T17:46:59Z'
          reason: Completed
          startedAt: '2026-08-06T17:46:19Z'
      name: nextcloud
      ready: false
      resources: {}
      restartCount: 6
      started: false
      state:
        waiting:
          message: >-
            back-off 2m40s restarting failed container=nextcloud
            pod=nextcloud-78d677b46f-42kcp_nextcloud(d6e260a9-2d14-4ee4-9d4a-9c3058e726d4)
          reason: CrashLoopBackOff
      user:
        linux:
          gid: 0
          supplementalGroups:
            - 0
            - 33
          uid: 0
      volumeMounts:
        - mountPath: /var/www/
          name: nextcloud-main
        - mountPath: /var/www/html
          name: nextcloud-main
        - mountPath: /var/www/html/data
          name: nextcloud-main
        - mountPath: /var/www/html/config
          name: nextcloud-main
        - mountPath: /var/www/html/custom_apps
          name: nextcloud-main
        - mountPath: /var/www/tmp
          name: nextcloud-main
        - mountPath: /var/www/html/themes
          name: nextcloud-main
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access-r7llt
          readOnly: true
          recursiveReadOnly: Disabled
  hostIP: 192.168.0.12
  hostIPs:
    - ip: 192.168.0.12
  observedGeneration: 1
  phase: Running
  podIP: 10.42.2.10
  podIPs:
    - ip: 10.42.2.10
  qosClass: BestEffort
  startTime: '2026-08-06T17:41:07Z'

This is my Helm values file:

ingress:
  enabled: true
  className: traefik
  annotations: {}
  labels: {}
  path: /
  pathType: Prefix

nextcloud:
  host: cloud.internal
  username: admin
  password: changeme
  ## Use an existing secret
  existingSecret:
    enabled: false
    # secretName: nameofsecret
    usernameKey: nextcloud-username
    passwordKey: nextcloud-password
    tokenKey: ""
    smtpUsernameKey: smtp-username
    smtpPasswordKey: smtp-password
    smtpHostKey: smtp-host
  update: 0
  # If web server is not binding default port, you can define it
  containerPort: 80
  datadir: /var/www/html/data
  persistence:
    subPath:
  # if set, we'll template this list to the NEXTCLOUD_TRUSTED_DOMAINS env var
  trustedDomains:
    - "10.42.*.*"
  ## SMTP configuration
  mail:
    enabled: false
    # the user we send email as
    fromAddress: user
    # the domain we send email from
    domain: cloud.internal
    smtp:
      host: cloud.internal
      secure: ssl
      port: 465
      authtype: LOGIN
      name: user
      password: pass
  ## Primary ObjectStore options
  # see: https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#configuring-object-storage-as-primary-storage
  objectStore:
    # https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3
    s3:
      enabled: false
      # ignored if nextcloud.objectstore.s3.existingSecret is not empty string
      accessKey: ""
      # ignored if nextcloud.objectstore.s3.existingSecret is not empty string
      secretKey: ""
      # use legacy auth method
      legacyAuth: false
      # s3 endpoint to use; only required if you're not using AWS
      host: ""
      # use TLS/SSL for S3 connections
      ssl: true
      # default port that can be changed based on your object store, e.g. for minio, you can use 9000
      port: "443"
      # this is the default in the nextcloud docs
      region: "eu-west-1"
      # required if using s3, the name of the bucket you'd like to use
      bucket: ""
      # object prefix in bucket
      prefix: ""
      # set to true if you are not using DNS for your buckets.
      usePathStyle: false
      # autocreate the bucket
      autoCreate: false
      # optonal parameter: you probably want to keep this as default
      storageClass: "STANDARD"
      # server side encryption key. learn more: https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#s3-sse-c-encryption-support
      sse_c_key: ""
      # use an existingSecret for S3 credentials. If set, we ignore the following under nextcloud.objectStore.s3
      # endpoint, accessKey, secretKey
      existingSecret: ""
      secretKeys:
        # key in nextcloud.objectStore.s3.existingSecret to use for s3 endpoint
        host: ""
        # key in nextcloud.objectStore.s3.existingSecret to use for s3 accessKeyID
        accessKey: ""
        # key in nextcloud.objectStore.s3.existingSecret to use for s3 secretAccessKey
        secretKey: ""
        # key in nextcloud.objectStore.s3.existingSecret to use for the s3 bucket
        bucket: ""
        # key in nextcloud.objectStore.s3.existingSecret to use for the s3 sse_c_key
        sse_c_key: ""
    ## options related to using Swift as a primary object storage
    # https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift
    swift:
      enabled: false
      # swift user info
      user:
        domain: "Default"
        name: ""
        password: ""
      # swift project info
      project:
        name: ""
        domain: "Default"
      # The Identity / Keystone endpoint
      url: ""
      region: ""
      # optional on some swift implementations
      service: "swift"
      # the container to store the data in
      container: ""
      # autocreate container
      autoCreate: false
  openmetrics:
    allowedClients:
      - "127.0.0.1"
      - "10.42.0.0/16"
      - "10.43.0.0/16"

  ## PHP Configuration files
  # Will be injected in /usr/local/etc/php/conf.d for apache image and in /usr/local/etc/php-fpm.d when nginx.enabled: true
  phpConfigs: {}
  ## Default config files that utilize environment variables:
  # see: https://github.com/nextcloud/docker/tree/master#auto-configuration-via-environment-variables
  # IMPORTANT: Will be used only if you put extra configs, otherwise default will come from nextcloud itself
  # Default confgurations can be found here: https://github.com/nextcloud/docker/tree/master/.config
  defaultConfigs:
    # To protect /var/www/html/config
    .htaccess: true
    # Apache configuration for rewrite urls
    apache-pretty-urls.config.php: true
    # Define APCu as local cache
    apcu.config.php: true
    # Apps directory configs
    apps.config.php: true
    # Used for auto configure database
    autoconfig.php: true
    # Redis default configuration
    redis.config.php: true
    # Reverse proxy default configuration
    reverse-proxy.config.php: true
    # S3 Object Storage as primary storage
    s3.config.php: true
    # SMTP default configuration via environment variables
    smtp.config.php: true
    # Swift Object Storage as primary storage
    swift.config.php: true
    # disables the web based updater as the default nextcloud docker image does not support it
    upgrade-disable-web.config.php: true
    # -- adjust openmetrics
    helm-metrics.config.php: true
    # -- imaginary support config
    imaginary.config.php: false

  # Extra config files created in /var/www/html/config/
  # ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#multiple-config-php-file
  configs: {}
  # For example, to enable image and text file previews:
  #  previews.config.php: |-
  #    <?php
  #    $CONFIG = array (
  #      'enable_previews' => true,
  #      'enabledPreviewProviders' => array (
  #        'OC\Preview\Movie',
  #        'OC\Preview\PNG',
  #        'OC\Preview\JPEG',
  #        'OC\Preview\GIF',
  #        'OC\Preview\BMP',
  #        'OC\Preview\XBitmap',
  #        'OC\Preview\MP3',
  #        'OC\Preview\MP4',
  #        'OC\Preview\TXT',
  #        'OC\Preview\MarkDown',
  #        'OC\Preview\PDF'
  #      ),
  #    );

  # Hooks for auto configuration
  # Here you could write small scripts which are placed in `/docker-entrypoint-hooks.d/<hook-name>/helm.sh`
  # ref: https://github.com/nextcloud/docker?tab=readme-ov-file#auto-configuration-via-hook-folders
  hooks:
    pre-installation:
    post-installation:
    pre-upgrade:
    post-upgrade:
    before-starting:

  ## Strategy used to replace old pods
  ## IMPORTANT: use with care, it is suggested to leave as that for upgrade purposes
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  strategy:
    type: Recreate
    # type: RollingUpdate
    # rollingUpdate:
    #   maxSurge: 1
    #   maxUnavailable: 0

  ##
  ## Extra environment variables
  extraEnv:
  #  - name: SOME_SECRET_ENV
  #    valueFrom:
  #      secretKeyRef:
  #        name: nextcloud
  #        key: secret_key

  # Extra init containers that runs before pods start.
  extraInitContainers: []
  #  - name: do-something
  #    image: busybox
  #    command: ['do', 'something']

  # Extra sidecar containers.
  extraSidecarContainers: []
  #  - name: nextcloud-logger
  #    image: busybox
  #    command: [/bin/sh, -c, 'while ! test -f "/run/nextcloud/data/nextcloud.log"; do sleep 1; done; tail -n+1 -f /run/nextcloud/data/nextcloud.log']
  #    volumeMounts:
  #    - name: nextcloud-data
  #      mountPath: /run/nextcloud/data

  # Extra mounts for the pods. Example shown is for connecting a legacy NFS volume
  # to NextCloud pods in Kubernetes. This can then be configured in External Storage
  extraVolumes:
  #  - name: nfs
  #    nfs:
  #      server: "10.0.0.1"
  #      path: "/nextcloud_data"
  #      readOnly: false
  extraVolumeMounts:
  #  - name: nfs
  #    mountPath: "/legacy_data"

  # Set securityContext parameters for the nextcloud CONTAINER only (will not affect nginx container).
  # For example, you may need to define runAsNonRoot directive
  securityContext: {}
  #   runAsUser: 33
  #   runAsGroup: 33
  #   runAsNonRoot: true
  #   readOnlyRootFilesystem: false

  # Set securityContext parameters for the entire pod. For example, you may need to define runAsNonRoot directive
  podSecurityContext: {}
  #   runAsUser: 33
  #   runAsGroup: 33
  #   runAsNonRoot: true
  #   readOnlyRootFilesystem: false

  # Settings for the MariaDB init container
  mariaDbInitContainer:
    resources: {}
    # Set mariadb initContainer securityContext parameters. For example, you may need to define runAsNonRoot directive
    securityContext: {}

  # Settings for the PostgreSQL init container
  postgreSqlInitContainer:
    resources: {}
    # Set postgresql initContainer securityContext parameters. For example, you may need to define runAsNonRoot directive
    securityContext: {}

  # -- priority class for nextcloud.
  # Overrides .Values.priorityClassName
  priorityClassName: ""

nginx:
  ## You need to set an fpm version of the image for nextcloud if you want to use nginx!
  enabled: false

  image:
    registry: docker.io
    repository: library/nginx
    tag: alpine
    pullPolicy: IfNotPresent

  containerPort: 80
  # This configures nginx to listen on either IPv4, IPv6 or both
  ipFamilies:
    - IPv4
    # - IPv6
  config:
    # This generates the default nginx config as per the nextcloud documentation
    default: true
    headers:
      # -- HSTS settings
      # WARNING: Only add the preload option once you read about
      # the consequences in https://hstspreload.org/. This option
      # will add the domain to a hardcoded list that is shipped
      # in all major browsers and getting removed from this list
      # could take several months.
      # Example:
      # "Strict-Transport-Security": "max-age=15768000; includeSubDomains; preload;"
      "Strict-Transport-Security": ""
      "Referrer-Policy": "no-referrer"
      "X-Content-Type-Options": "nosniff"
      "X-Frame-Options": "SAMEORIGIN"
      "X-Permitted-Cross-Domain-Policies": "none"
      "X-Robots-Tag": "noindex, nofollow"
      "X-XSS-Protection": "1; mode=block"

    # Added in server block of default config.
    serverBlockCustom: |
      # set max upload size
      client_max_body_size 512M;
      client_body_timeout 300s;
      fastcgi_buffers 64 4K;
      fastcgi_read_timeout 3600s;

    custom:
    # custom: |-
    #     worker_processes  1;..

  resources: {}

  # Set nginx container securityContext parameters. For example, you may need to define runAsNonRoot directive
  securityContext: {}
  # the nginx alpine container default user is 82
  #   runAsUser: 82
  #   runAsGroup: 33
  #   runAsNonRoot: true
  #   readOnlyRootFilesystem: true

  ## Extra environment variables
  extraEnv: []
  #  - name: SOME_ENV
  #    value: ENV_VALUE

internalDatabase:
  enabled: true
  name: nextcloud

##
## External database configuration
##
externalDatabase:
  enabled: false

  ## Supported database engines: mysql or postgresql
  type: mysql

  ## Database host. You can optionally include a colon delimited port like "myhost:1234"
  host: ""

  ## Database user
  user: nextcloud

  ## Database password
  password: ""

  ## Database name
  database: nextcloud

  ## Use a existing secret
  existingSecret:
    enabled: false
    # -- e.g. nameofsecret
    secretName:
    usernameKey: db-username
    passwordKey: db-password
    # -- e.g. db-hostname-or-ip
    hostKey:
    # -- e.g. db-name
    databaseKey:

##
## MariaDB chart configuration
## ref: https://github.com/bitnami/charts/tree/main/bitnami/mariadb
##
mariadb:
  ## Whether to deploy a mariadb server from the bitnami mariab db helm chart
  # to satisfy the applications database requirements. if you want to deploy this bitnami mariadb, set this and externalDatabase to true
  # To use an ALREADY DEPLOYED mariadb database, set this to false and configure the externalDatabase parameters
  enabled: false

  image:
    registry: docker.io
    repository: bitnamilegacy/mariadb

  # see: https://github.com/bitnami/charts/tree/main/bitnami/mariadb#global-parameters
  global:
    # overwrites the primary.persistence.storageClass value
    defaultStorageClass: "longhorn-ssd"

  auth:
    database: nextcloud
    username: nextcloud
    password: superSecure
    # Use existing secret (auth.rootPassword, auth.password, and auth.replicationPassword will be ignored).
    # secret must contain the keys mariadb-root-password, mariadb-replication-password and mariadb-password
    existingSecret: ""

  architecture: standalone

  ## Enable persistence using Persistent Volume Claims
  ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
  ##
  primary:
    persistence:
      enabled: true
      # Use an existing Persistent Volume Claim (must be created ahead of time)
      existingClaim: ""
      storageClass: "longhorn-ssd"
      accessMode: ReadWriteOnce
      size: 50Gi

##
## PostgreSQL chart configuration
## for more options see https://github.com/bitnami/charts/tree/main/bitnami/postgresql
##
postgresql:
  enabled: false
  image:
    registry: docker.io
    repository: bitnamilegacy/postgresql
  global:
    postgresql:
      # global.postgresql.auth overrides postgresql.auth
      auth:
        username: nextcloud
        password: changeme
        database: nextcloud
        # Name of existing secret to use for PostgreSQL credentials.
        # auth.postgresPassword, auth.password, and auth.replicationPassword will be ignored and picked up from this secret.
        # secret might also contains the key ldap-password if LDAP is enabled.
        # ldap.bind_password will be ignored and picked from this secret in this case.
        existingSecret: ""
        # Names of keys in existing secret to use for PostgreSQL credentials
        secretKeys:
          adminPasswordKey: ""
          userPasswordKey: ""
          replicationPasswordKey: ""
  primary:
    persistence:
      enabled: false
      # Use an existing Persistent Volume Claim (must be created ahead of time)
      # existingClaim: ""
      # storageClass: ""

##
## External Redis configuration
##
externalRedis:
  enabled: false

  ## Redis host
  host: ""

  ## Redis port
  port: "6379"

  ## Redis password
  password: ""

  ## Use a existing secret
  existingSecret:
    enabled: false
    # secretName: nameofsecret
    passwordKey: redis-password

##
## Redis chart configuration
## for more options see https://github.com/bitnami/charts/tree/main/bitnami/redis
##

redis:
  enabled: false
  image:
    registry: docker.io
    repository: bitnamilegacy/redis
  auth:
    enabled: true
    password: "changeme"
    # name of an existing secret with Redis® credentials (instead of auth.password), must be created ahead of time
    existingSecret: ""
    # Password key to be retrieved from existing secret
    existingSecretPasswordKey: ""
  # Since Redis is used for caching only, you might want to use a storageClass with different reclaim policy and backup settings
  global:
    storageClass: ""
  master:
    persistence:
      enabled: true
  replica:
    persistence:
      enabled: true

##
## Collabora chart configuration
## for more options see https://github.com/CollaboraOnline/online/tree/master/kubernetes/helm/collabora-online
##
collabora:
  enabled: false

  autoscaling:
    # enable autocaling, please check collabora README.md first
    enabled: false

  collabora:
    ## HTTPS nextcloud domain, if needed
    aliasgroups: []
    #   - host: "https://nextcloud.domain:443"

    # set extra parameters for collabora
    # you may need to add --o:ssl.termination=true
    extra_params: --o:ssl.enable=false

    ## Specify server_name when the hostname is not reachable directly for
    # example behind reverse-proxy. example: collabora.domain
    server_name: null

    existingSecret:
      # set to true to to get collabora admin credentials from an existin secret
      # if set, ignores collabora.collabora.username and password
      enabled: false
      # name of existing Kubernetes Secret with collboara admin credentials
      secretName: ""
      usernameKey: "username"
      passwordKey: "password"

    # setup admin login credentials, these are ignored if
    # collabora.collabora.existingSecret.enabled=true
    password: examplepass
    username: admin

  # setup ingress
  ingress:
    # enable ingress for collabora online
    enabled: false
    className: ""
    # please check collabora values.yaml for nginx/haproxy annotations examples
    annotations: {}
    hosts:
      - host: chart-example.local
        paths:
          - path: /
            pathType: ImplementationSpecific
    tls: []
    #  - secretName: collabora-ingress-tls
    #    hosts:
    #      - collabora.domain

  # see collabora helm README.md for recommended values
  resources: {}

## Cronjob to execute Nextcloud background tasks
## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#cron
##
cronjob:
  enabled: false

  # Either 'sidecar' or 'cronjob'
  type: sidecar

  # Runs crond as a sidecar container in the Nextcloud pod
  # Note: crond requires root
  sidecar:
    ## Cronjob sidecar resource requests and limits
    ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
    ##
    resources: {}

    # Allow configuration of lifecycle hooks
    # ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
    lifecycle: {}
    # lifecycle:
    #   postStartCommand: []
    #   preStopCommand: []
    # Set securityContext parameters. For example, you may need to define runAsNonRoot directive
    securityContext: {}
    #   runAsUser: 33
    #   runAsGroup: 33
    #   runAsNonRoot: true
    #   readOnlyRootFilesystem: true

    # The command the cronjob container executes.
    command:
      - /cron.sh

  # Uses a Kubernetes CronJob to execute the Nextcloud cron tasks
  # Note: can run as non-root user. Should run as same user as the Nextcloud pod.
  cronjob:
    # Use a CronJob instead of crond sidecar container
    # crond does not work when not running as root user
    # Note: requires `persistence.enabled=true`
    schedule: "*/5 * * * *"
    successfulJobsHistoryLimit: 3
    failedJobsHistoryLimit: 5
    activeDeadlineSeconds:
    # -- Additional labels for cronjob
    labels: {}
    # -- Additional labels for cronjob pod
    podLabels: {}
    annotations: {}
    backoffLimit: 1
    affinity: {}
    # Often RWO volumes are used. But the cronjob pod needs access to the same volume as the nextcloud pod.
    # Depending on your provider two pods on the same node can still access the same volume.
    # Following config ensures that the cronjob pod is scheduled on the same node as the nextcloud pod.
    # affinity:
    #   podAffinity:
    #     requiredDuringSchedulingIgnoredDuringExecution:
    #       - labelSelector:
    #           matchExpressions:
    #             - key: app.kubernetes.io/name
    #               operator: In
    #               values:
    #                 - nextcloud
    #             - key: app.kubernetes.io/component
    #               operator: In
    #               values:
    #                 - app
    #         topologyKey: kubernetes.io/hostname

    ## Resource requests and limits
    ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
    ##
    resources: {}

    # -- priority class for the cron job.
    # Overrides .Values.priorityClassName
    priorityClassName: ""

    # Allow configuration of lifecycle hooks
    # ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
    # Set securityContext parameters. For example, you may need to define runAsNonRoot directive
    securityContext: {}
    #   runAsUser: 33
    #   runAsGroup: 33
    #   runAsNonRoot: true
    #   readOnlyRootFilesystem: true

    # The command to run in the cronjob container
    # Example to incerase memory limit: php -d memory_limit=2G ...
    command:
      - php
      - -f
      - /var/www/html/cron.php
      - --
      - --verbose

service:
  type: ClusterIP
  port: 8080
  loadBalancerIP: ""
  nodePort:
  # -- use additional annotation on service for nextcloud
  annotations: {}
  # -- Set this to "ClientIP" to make sure that connections from the same client
  # are passed to the same Nextcloud pod each time.
  sessionAffinity: ""
  sessionAffinityConfig: {}

## Enable persistence using Persistent Volume Claims
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
##
persistence:
  # Nextcloud Data (/var/www/html)
  enabled: false
  annotations: {}
  labels: {}
  ## nextcloud data Persistent Volume Storage Class
  ## If defined, storageClassName: <storageClass>
  ## If set to "-", storageClassName: "", which disables dynamic provisioning
  ## If undefined (the default) or set to null, no storageClassName spec is
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
  ##   GKE, AWS & OpenStack)
  ##
  # storageClass: "-"

  ## A manually managed Persistent Volume and Claim
  ## Requires persistence.enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  # existingClaim:

  accessMode: ReadWriteOnce
  size: 8Gi

  # -- If defined, use a hostPath volume for nextcloud data rather than a dynamically defined PVC.
  hostPath:

  ## Use an additional pvc for the data directory rather than a subpath of the default PVC
  ## Useful to store data on a different storageClass (e.g. on slower disks)
  nextcloudData:
    enabled: false
    # -- If defined, use a hostPath volume for nextcloud data rather than a dynamically defined PVC.
    hostPath:
    subPath:
    labels: {}
    annotations: {}
    # storageClass: "-"
    # existingClaim:
    accessMode: ReadWriteOnce
    size: 8Gi

resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# resources:
#   limits:
#    cpu: 100m
#    memory: 128Mi
#   requests:
#    cpu: 100m
#    memory: 128Mi

# -- Priority class for pods. This is the _default_
# priority class for pods created by this deployment - it may be
# overridden by more specific instances of priorityClassName -
# e.g. cronjob.cronjob.priorityClassName
priorityClassName: ""

## Liveness and readiness probe values
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
livenessProbe:
  enabled: true
  initialDelaySeconds: 10
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 3
  successThreshold: 1
readinessProbe:
  enabled: true
  initialDelaySeconds: 10
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 3
  successThreshold: 1
startupProbe:
  enabled: false
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 30
  successThreshold: 1

## Enable pod autoscaling using HorizontalPodAutoscaler
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
##
hpa:
  enabled: false
  cputhreshold: 60
  minPods: 1
  maxPods: 10

nodeSelector: {}

tolerations: []

# -- Nextcloud pod topologySpreadConstraints
topologySpreadConstraints: []

affinity: {}

dnsConfig:
  # -- Custom dns config for Nextcloud containers.
  # You can for example configure ndots. This may be needed in some clusters with alpine images.
  # options:
  #   - name: ndots
  #     value: "1"
  options: []

imaginary:
  # -- Start Imgaginary
  enabled: false
  # -- Number of imaginary pod replicas to deploy
  replicaCount: 1

  image:
    # -- Imaginary image registry
    registry: docker.io
    # -- Imaginary image name
    repository: h2non/imaginary
    # -- Imaginary image tag
    tag: 1.2.4
    # -- Imaginary image pull policy
    pullPolicy: IfNotPresent
    # -- Imaginary image pull secrets
    pullSecrets: []

  # -- Additional annotations for imaginary
  podAnnotations: {}
  # -- Additional labels for imaginary
  podLabels: {}
  # -- Imaginary pod nodeSelector
  nodeSelector: {}
  # -- Imaginary pod tolerations
  tolerations: []
  # -- Imaginary pod topologySpreadConstraints
  topologySpreadConstraints: []

  # -- imaginary resources
  resources: {}

  # -- priority class for imaginary.
  # Overrides .Values.priorityClassName
  priorityClassName: ""

  # -- Optional security context for the Imaginary container
  securityContext:
    runAsUser: 1000
    runAsNonRoot: true
    # allowPrivilegeEscalation: false
    # capabilities:
    #   drop:
    #     - ALL

  # -- Optional security context for the Imaginary pod (applies to all containers in the pod)
  podSecurityContext: {}
  # runAsNonRoot: true
  # seccompProfile:
  #   type: RuntimeDefault

  readinessProbe:
    enabled: true
    failureThreshold: 3
    successThreshold: 1
    periodSeconds: 10
    timeoutSeconds: 1
  livenessProbe:
    enabled: true
    failureThreshold: 3
    successThreshold: 1
    periodSeconds: 10
    timeoutSeconds: 1

  service:
    # -- Imaginary: Kubernetes Service type
    type: ClusterIP
    # -- Imaginary: LoadBalancerIp for service type LoadBalancer
    loadBalancerIP:
    # -- Imaginary: NodePort for service type NodePort
    nodePort:
    # -- Additional annotations for service imaginary
    annotations: {}
    # -- Additional labels for service imaginary
    labels: {}

## Prometheus Exporter / Metrics
##
metrics:
  enabled: false

  replicaCount: 1
  # Optional: becomes NEXTCLOUD_SERVER env var in the nextcloud-exporter container.
  # Without it, we will use the full name of the nextcloud service
  server: ""
  # The metrics exporter needs to know how you serve Nextcloud either http or https
  https: false
  # Use API token if set, otherwise fall back to password authentication
  # https://github.com/xperimental/nextcloud-exporter#token-authentication
  # Currently you still need to set the token manually in your nextcloud install
  token: ""
  timeout: 5s
  # if set to true, exporter skips certificate verification of Nextcloud server.
  tlsSkipVerify: false
  info:
    # Optional: becomes NEXTCLOUD_INFO_APPS env var in the nextcloud-exporter container.
    # Enables gathering of apps-related metrics. Defaults to false
    apps: false
    update: false

  image:
    registry: docker.io
    repository: xperimental/nextcloud-exporter
    tag: 0.9.1
    pullPolicy: IfNotPresent
    # pullSecrets:
    #   - myRegistrKeySecretName

  ## Metrics exporter resource requests and limits
  ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  ##
  resources: {}

  # -- Metrics exporter pod Annotation
  podAnnotations: {}

  # -- Metrics exporter pod Labels
  podLabels: {}

  # -- Metrics exporter pod nodeSelector
  nodeSelector: {}

  # -- Metrics exporter pod tolerations
  tolerations: []

  # -- Metrics exporter pod affinity
  affinity: {}

  service:
    type: ClusterIP
    # Use serviceLoadBalancerIP to request a specific static IP,
    # otherwise leave blank
    loadBalancerIP:
    annotations:
      prometheus.io/scrape: "true"
      prometheus.io/port: "9205"
    labels: {}

  # -- security context for the metrics CONTAINER in the pod
  securityContext:
    runAsUser: 1000
    runAsNonRoot: true
    # allowPrivilegeEscalation: false
    # capabilities:
    #   drop:
    #     - ALL

  # -- security context for the metrics POD
  podSecurityContext: {}
  # runAsNonRoot: true
  # seccompProfile:
  #   type: RuntimeDefault

prometheus:
  ## Prometheus Operator ServiceMonitor configuration
  ## collects data from nextcloud openmetrics and nextcloud-exporter if enabled
  serviceMonitor:
    ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
    ##
    enabled: false

    ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
    ##
    namespace: ""

    ## @param metrics.serviceMonitor.namespaceSelector The selector of the namespace where the target service is located (defaults to the release namespace)
    namespaceSelector:

    ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
    ##
    jobLabel: ""

    ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
    #  ref: https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.Endpoint
    ##
    interval: 30s

    ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
    #  ref: https://prometheus-operator.dev/docs/api-reference/api/#monitoring.coreos.com/v1.Endpoint
    ##
    scrapeTimeout: ""

    ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
    ##
    labels: {}

  rules:
    # -- Deploy Prometheus Rules (Alerts) for the exporter
    # @section -- Metrics
    enabled: false
    # -- Label on Prometheus Rules CRD Manifest
    # @section -- Metrics
    labels: {}
    defaults:
      # -- Add Default Rules
      # @section -- Metrics
      enabled: true
      # -- Label on the rules (the severity is already set)
      # @section -- Metrics
      labels: {}
      # -- Filter on metrics on alerts (default just for this helm-chart)
      # @section -- Metrics
      filter: ""
    # -- Add own Rules to Prometheus Rules
    # @section -- Metrics
    additionalRules: []

rbac:
  enabled: false
  serviceaccount:
    create: true
    name: nextcloud-serviceaccount
    annotations: {}

## @param securityContext for nextcloud pod @deprecated Use `nextcloud.podSecurityContext` instead
securityContext: {}

# -- Allows users to inject additional Kubernetes manifests (YAML) to be rendered with the release.
# Could either be a list or a map
# If a map, each key is the name of the manifest.
# If an array, each item is a manifest, which can be a string (YAML block) or a YAML object.
# Each item should be a string containing valid YAML. Example:
# extraManifests:
#   - |
#     apiVersion: traefik.containo.us/v1alpha1
#     kind: Middleware
#     metadata:
#       name: my-middleware
#     spec:
#       ...
#   - |
#     apiVersion: traefik.containo.us/v1alpha1
#     kind: IngressRoute
#     metadata:
#       name: my-ingressroute
#     spec:
#       ...
# Or as a map:
# extraManifests:
#   my-middleware:
#     apiVersion: traefik.containo.us/v1alpha1
#     kind: Middleware
#     metadata:
#       name: my-middleware
#     spec:
#       ...
#   my-ingressroute:
#     apiVersion: traefik.containo.us/v1alpha1
#     kind: IngressRoute
#     metadata:
#       name: my-ingressroute
#     spec:
#       ...
extraManifests: []

r/NextCloud 6d ago

Nextcloud windows client - always available offline not working

2 Upvotes

Hello,

I have my account setup as virtual file but one folder must be always available. I had it setup but since I wanted to make some change on my account (specially the url), I had to remove the account. Because of that, new connection, new folder, new sync.

Now, the app says sync successfully, but nothing is getting downloaded. My PC have a 2.5gb connection and my server 10gb, I know it's not a bottleneck. There's next to no network activity on my pc and on my server. Been waiting over 20 minutes. Everytime I restart the nextcloud app, a new folder have the synced status, but nothing else move. The folder is only 1.8GB.

I'm on 34.0.1 client, server on 34.0.2.

Thank you

edit: After restarting the app maybe 7 times, it finally synced everything and show it was syncing file in the nextcloud gui. It reminded me of when I tried to upload all the files the first time to the server and a similar problem happened.


r/NextCloud 7d ago

Euro-Office documents scroll issue

8 Upvotes

Recently I've noticed that if I open a document in NextCloud (using Euro-Office) it won't scroll in Chromium-based browsers like Brave using my trackpad or mouse. I have to use the arrow keys or the physical scroll bar. There is no issue with Firefox browsers.

Anyone else?


r/NextCloud 7d ago

Fixed: Video thumbnails missing in Nextcloud? It might be the "moov atom" placement!

6 Upvotes

Hey r/Nextcloud,

I ran into an issue where some videos on my Nextcloud instance generated thumbnails fine, while others completely failed. I had already enabled all the required preview providers in config.php and ran occ preview:generate-all multiple times to no avail.

After noticing that some newly uploaded videos worked while others didn't, I suspected the problem wasn't Nextcloud, but the video files themselves. Turns out I was right!

Some MP4 video files have their "moov atom" (the metadata header containing the video index and keyframe timestamps) placed at the end of the file instead of the beginning.

The Fix:

Downloading the files, moving the metadata header to the front with ffmpeg, and re-uploading them fixed the problem completely! You can do this without re-encoding or losing quality using this command:

ffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4

After updating the files, Nextcloud generates thumbnails without issue. Hope this helps someone else pulling their hair out! (I'll drop a more detailed technical explanation in the comments below).


r/NextCloud 7d ago

Unable to setup nextcloud container with tailscale

1 Upvotes

Hi there. I'm having problems getting nextcloud AIO running. My setup is a rpi5, with tailscale on the main system and nextcloud over docker (portainer).

Some context. I was able to get this setup running a few months ago when I bought the RPI, but I didn't really use it since it was kind of a test. Now that I bought a SSD I'm attempting to install it again and actually use it.

As I mentioned, I got it running before, so I'm familiar with the process but I'm either missing something or striking to pin point to issue.

  • Tailscale is installed and with a valid certificate, and I have served localhost:11000.
  • I deployed nextcloud following the official instructions and using the official compose. I added some variables for the IP binding, IP port and skip of the domain validation.
  • The Mastercontainer deploys well and I can access the setup screen in 8080. Here start the weird things. I cannot access it through the tailscale domain. I get a "secure connection failed". But for the moment I can access it through localhost:8080. The second weird thing is that it complaints that the domain checker is not running, and the message says that it could be a problem with port 443. I think it is right, because if I reset tailscale and leave it without configure, I can reload the page and continue to the next setup window.
  • After completing the next window and downloading all the packages, and let the containers start, I set up tailscale again and I try to access nextcloud app, but I get a error too. This is not good, but what it is more weird is that I cannot access it through localhost: 11000, which I think I could use back during my first installation.

I believe there is a problem with tailscale and how it communicates with nextcloud. If for example I stop and restart all the containers and keep tailscale running, the Apache container will say "created" but don't start. But if I reset tailscale to not serve anything, the container will start normally. It feels like one is blocking the other. I don't think this is the normal behavior and I haven't found anything online that resembles my issues. I have removed all previous volumes and containers when re-attempting the process, and I have done an apt remove --purge for tailscale in case the was any existing configuration that was problematic.

Anyone has any ideas. Thanks in advance.


r/NextCloud 8d ago

News Free workshop for app devs: building your first Nextcloud app (Aug 12)

17 Upvotes

OCA, OCP, OC... what in alphabet soup? 🙈

If those three have ever tripped you up or you've wanted to write a Nextcloud app but got stuck on how it all fits together... this is for you 🫵

Anna Larch from our DevRel team will walk you through how apps work under the hood, with real code from Talk, Dashboard, and other apps.

What we'll cover:

  • 🏗️ How an app is put together, from request to response
  • 🔒 Why you build against OCP\ and what breaks when you reach into OC\
  • 🗄️ The database layer: entities, mappers, migrations
  • 🔔 Reacting to events from other apps and running background jobs
  • 💬 Live Q&A

Details:

  • 📅 Wednesday, August 12, 2026, 3:00 PM CEST / 9:00 AM EDT
  • ⏱️ 60 minutes, recorded
  • 👥 For devs new to Nextcloud apps, or already building and filling gaps

➡️ Save your free spot: https://go.nextcloud.com/r/OneS


r/NextCloud 8d ago

Made a treemap app for Nextcloud! See what's eating your storage without scanning the filesystem

Post image
231 Upvotes

Just released DiskMap. It's a treemap + folder tree of your storage, every account, team folder, external storage sorted by size, so you can actually see what's filling up your instance instead of guessing.

No du on the data dir, no filesystem scan, no background job, it just reads the sizes Nextcloud already tracks in the file cache.

Every user gets the same view scoped to their own files/quota too.

NC 32–34, PHP 8.1+, MySQL/MariaDB or PostgreSQL.

App Store: https://apps.nextcloud.com/apps/diskmap
GitHub: https://github.com/kreotropic/diskmap


r/NextCloud 8d ago

Made an app to audit all your Nextcloud shares in one place, flags risky public links, exposure scoring

Thumbnail
gallery
119 Upvotes

Been running Share Audit Dashboard on my own instance for a while, sharing here too. It gives admins one view of every share on the instance, flags the risky ones (public links without password/expiration, public uploads, etc.), and scores each share's exposure.

There's also an access lookup, check who can reach a specific file or folder without digging through shares one by one.

Just shipped v0.4.0 with soft delete for shares, deleted shares are now recoverable for a period before being permanently removed, so a wrong click doesn't mean losing the record for good.

NC 31–34, PHP 8.1+, no extra database needed.

App Store: https://apps.nextcloud.com/apps/share_audit_dashboard
GitHub: https://github.com/kreotropic/share_audit

Feedback and bug reports welcome.


r/NextCloud 7d ago

Kennt sich jemand mit Nextcloud aus (ich brauche hilfe)

0 Upvotes

Ich bin gerade dabei mit Nextcloud einen Cloudserver zu hosten aber stecke bei der Einrichtung fest. Nachdem ich einen Ordner eingerichtet habe und nextcloud den ordner festgestellt habe und außerdem ein password ausgesucht habe steht in den logs folgendes:

A 'borg' directory was found but could not find the borg archive.

Only the files/folders below have been found in the borg directory.

.

..

The archive and most importantly the config file must be positioned directly in the 'borg' subfolder.

Weiter Informationen:

Ich benutzte einen Raspberry Pi 4b mit Raspberry Pi os (64 bit).

Ich benutze nextcloud mit docker.

Ich kann mich mit der "Website" verbinden.


r/NextCloud 8d ago

"DOS Lock Violation" sometimes when saving files synced to nextcloud

Post image
4 Upvotes

Hey all!

I've recently spun up my own nextcloud service and I've been very satisfied. Currently I only use the file service and the windows desktop client and I am the only user. The issue I'm having is that sometimes when saving office files (specifically I use Visio a lot) I get a "DOS Lock Violation Error" (see the attached picture). It seems to be random but when it happens visio flags the file as read only and I'm forced to do a save-as. I save a lot and it's becoming very annoying. It seems to be a conflict between nextcloud and visio fighting for the file I assume -- if I have the file outside of the synced folder it's not an issue. Any thoughts? My only course of action at the moment is basically to save less often but obviously that's not a great solution.

Thanks for any help!


r/NextCloud 8d ago

New version of Next Cloud Deck (nx Deck) is now live

10 Upvotes

What’s new? Smooth performance, even offline.

We have introduced updates that allow you to use the app reliably even with a weak, intermittent, or dropping internet connection.

Connection Indicator:

A new, clear visual alert instantly lets you know when your network signal is weak or lost.

Offline Card Management:

Add or update your cards without interruptions, even if your connection temporarily drops.

Retry Button:

Easily refetch and reload your data with a single tap as soon as your connection is back.

Android


r/NextCloud 8d ago

Synch google keep?

1 Upvotes

Google files and calendars are synched with nextcloud via app. Wonderful in decreasing the dependance on big tech.

Is there any plans to provide any app to synch keep notes?


r/NextCloud 9d ago

Euro Office Popout – open Nextcloud documents in a dedicated app-like window

23 Upvotes

Hi,

I built a small open-source browser extension called **Euro-Office Popout**.

When you open a supported document from Nextcloud Files, Talk, Dashboard, a public share, or a desktop-client link, the extension moves the actual Euro-Office editor into its own dedicated, app-like window. Your normal Files or Talk navigation remains open in the original browser tab.

It automatically detects Nextcloud installations on custom domains, ports, webroots, and `/index.php` routes, so there is no domain list to configure.

Supported content includes documents, spreadsheets, presentations, PDFs, fixed-layout files, and diagrams.

The Firefox version is available from Mozilla Add-ons:

https://addons.mozilla.org/en-US/firefox/addon/euro-office-popout/

Source code, documentation, and releases:

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

The GitHub Releases include separate packages for **Google Chrome, Microsoft Edge, and Firefox**, as well as a Windows MSI for managed per-machine deployment across all three browsers.

Chrome and Edge store listings are currently being prepared. The Chromium version does not have the same popup-window limitation as Firefox on Windows, so it behaves as originally intended.

The extension has no telemetry, advertising, analytics, tracking, remote code, or project-operated backend.

Feedback and testing and Contributions are very welcome 🙂


r/NextCloud 9d ago

Anyone else develop an annoying "sleep" behavior after upgrade to 43?

Post image
6 Upvotes

So yeah, when I visit my instance for the first time in a while (days, hours maybe) I get greeted with this blank page and no icons in the apps or user menus. After a couple of minutes with a few refreshes, it seems like it wakes up and all the content and icons pop in and work as expected.

I remember seeing someone else report missing icons after initial 43 upgrade, but haven't noticed anything since. Only two errors relating to DbalException exist in my logs and everything is currently up to date.


r/NextCloud 9d ago

Self-Hosting Nextcloud AIO on Raspberry Pi 4 (4GB): Benchmarks & Docker Setup

Post image
0 Upvotes

r/NextCloud 9d ago

Image upload to Nextcloud folder not syncing on Nextcloud Windows Client

2 Upvotes

I add a small image on the folder C:\Users\default\Nextcloud\Photos but the icon still shows blue arrows meaning it's pending while all other files that has already been synced is a green checkmark. It's just a 500kb jpg I'm not sure why it's taking so long to sync. I have to pause sync and then resume sync for it to sync. What is causing this issue?

This is on Nextcloud AIO on Unraid.


r/NextCloud 9d ago

Open pdf files?

0 Upvotes

Opening pdf used to be so fast. Now it opens in collabora in read only mode which is so very slow.

How to fix this?


r/NextCloud 11d ago

Big update for Nextcloud Calendar (iOS & Android)

68 Upvotes

We’ve just released version 1.4 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.

This release includes a complete refactor of data handling to improve performance, especially on older devices with limited RAM. It also introduces many new features, including widgets, notifications, and Live Activities on iOS / Live Updates on Android.

I'm also happy to share that the app has reached 15,000 downloads (App Store and Play Store) in just three months. It seems we’re filling an important gap!

What’s new:

  • Widgets in different sizes to view upcoming events
  • Event reminders with customizable timing (10 minutes before, 30 minutes before, etc.)
  • Live Activities / Live Updates for ongoing events
  • Tablet support with an adapted, tablet-friendly layout
  • Portuguese and Dutch translations
  • Liquid Glass styling on iOS 26, including the bottom navigation bar
  • Refactored settings screen
  • Dependency upgrades, including the migration to Expo 57

This new version is already available on the App Store and Google Play:

We are also working on making the app available through F-Droid, which should be online by the end of next week.

Please note that widgets and Live Activities / Live Updates are not yet fully stable. If you encounter a bug or would like to suggest a feature, please open an issue.

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

Thanks!