Skip to content
Getting started

Local folders

Publish folders from your server or NAS by mounting them into the container.

KumoYami runs inside a container, so it can only see the machine's folders you mount into it as volumes. Each mounted folder is then published from the panel as a Local folder storage.

1. Mount the folder

In docker-compose.yml, under volumes: in the web service, add one line per folder: the path on the machine on the left, the path inside the container on the right (use /data/…):

docker-compose.yml
services:
  web:
    volumes:
      - ./datos:/app/datos
      - /srv/photos:/data/photos:ro
      - /srv/shared:/data/shared

Apply the change:

docker compose up -d

:ro, read-only

With :ro at the end, KumoYami can't change the folder: no uploading, renaming or deleting. Use it for anything you only want to show. Without :ro, whatever you do on the site (uploads, upload boxes, moving, deleting) changes the real files.

2. Add it in the panel

In the panel, Add storage → Local folder:

  • Path on the site: where it will show up, for example /photos (or / for the root).
  • Folder: the path inside the container, the one on the right: /data/photos.

Permissions

The container runs as the user with uid 1000. To show a folder, that user must be able to read it; to upload or delete, it must also be able to write. If the listing comes up empty or with a permissions error, check the owner:

ls -ln /srv/photos                     # the third number is the owner's uid
sudo chown -R 1000:1000 /srv/shared    # only if you want KumoYami to write to it

If you use the installer

When you run install.sh again, docker-compose.yml is replaced with the latest version (the old one is kept as docker-compose.yml.bak-DATE) and your volumes disappear from it. You have two options:

  • Run it again with --keep-compose, which keeps your docker-compose.yml.
  • If you don't use the installer's Caddy, put the volumes in a docker-compose.override.yml, which the installer doesn't touch. Docker Compose merges it with docker-compose.yml automatically:
docker-compose.override.yml
services:
  web:
    volumes:
      - /srv/photos:/data/photos:ro

Updating with docker compose pull && docker compose up -d doesn't change any file: your volumes stay put.

Per-folder options

In the panel, each storage has its own options: listing cache (300 s by default; if you add files and they don't show up, click Refresh), patterns to hide names (@eaDir, #recycle, *.tmp…), show hidden files and calculate folder sizes. Downloads from local folders always go through the server.