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/…):
services:
web:
volumes:
- ./datos:/app/datos
- /srv/photos:/data/photos:ro
- /srv/shared:/data/sharedApply 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 itIf 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 yourdocker-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 withdocker-compose.ymlautomatically:
services:
web:
volumes:
- /srv/photos:/data/photos:roUpdating 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.