Conclusión clave: si Syncthing puede leer una carpeta, pero no puede propagar eliminaciones ni modificaciones, prueba los permisos de escritura desde dentro del contenedor de Syncthing. Un montaje vinculado legible no es automáticamente escribible.
Comprueba primero el modo de carpeta
Una carpeta bidireccional debe usar modos de carpeta de Syncthing adecuados para recibir cambios. «Solo enviar» no funcionará como «Enviar y recibir».
Demuestra que el contenedor puede escribir
docker exec -it syncthing sh
touch /DATA/Gallery/.write-test
rm /DATA/Gallery/.write-test
Si alguno de los comandos falla, corrige los permisos de almacenamiento antes de cambiar la configuración de Syncthing.


Haz coincidir PUID y PGID
El archivo compose de Syncthing para CasaOS oficial pasa PUID/PGID y vincula /DATA al contenedor. LinuxServer explica la propiedad PUID/PGID para los volúmenes del host.
docker exec syncthing id
stat -c '%u:%g %a %n' /DATA/Gallery
Compara los identificadores numéricos. Cambiar la propiedad a un nombre de usuario no basta si el contenedor se ejecuta con un UID/GID diferente.
Las eliminaciones requieren permisos en el directorio principal
Eliminar o cambiar el nombre de un archivo requiere permisos de escritura y ejecución en el directorio principal. Esto explica por qué la lectura y la sincronización pueden parecer parcialmente funcionales mientras las eliminaciones remotas fallan.


Compara una carpeta funcional
Compara docker inspect syncthing montajes, stat modo/UID/GID, ACL con getfacl, estado de solo lectura del sistema de archivos y patrones de exclusión. No pases directamente a chmod 777.
La configuración de Syncthing en CasaOS ofrece una base de referencia limpia. La plataforma de aplicaciones ZimaOS ayuda a comparar alternativas, mientras que ZimaCube 2 es adecuada para cargas de trabajo de almacenamiento multidispositivo.
Comprueba las ACL cuando los bits de modo de Unix parezcan correctos
Tradicional chmod el resultado puede parecer correcto aunque una ACL siga modificando los permisos efectivos. Compara un directorio que funciona con uno que falla:
getfacl /DATA/Gallery
getfacl /DATA/Documents
Si una ruta contiene entradas ACL adicionales, corrígelas intencionadamente en lugar de abrir los permisos de forma recursiva en todas partes.
Comprueba si el sistema de archivos es de solo lectura
findmnt -no TARGET,SOURCE,FSTYPE,OPTIONS /DATA/Gallery
Un disco montado ro, los errores del sistema de archivos o una unidad externa degradada pueden producir el mismo síntoma de «puede leer, pero no puede modificar». Si el montaje es de solo lectura, cambiar la configuración de Syncthing no puede solucionarlo.
Lee el error de Syncthing detrás de «fuera de sincronización»
Abre la interfaz web de Syncthing e inspecciona el error de la carpeta; después, compara los registros del contenedor:
docker logs --tail 200 syncthing
Busca permiso denegado, operación no permitida, errores de ruta no encontrada u operaciones fallidas de cambio de nombre o eliminación. «Fuera de sincronización» es un estado; el registro normalmente contiene la causa subyacente del sistema de archivos.
No uses Ignorar permisos como solución universal
Ignorar los metadatos de permisos puede ayudar cuando dos sistemas de archivos representan los bits de modo de Unix de forma diferente, pero no concede permisos de escritura al proceso. Si el contenedor no puede eliminar un archivo de prueba, cambiar el comportamiento de Syncthing respecto a los metadatos de permisos no hará que el directorio del host sea escribible.
Usa una prueba de escritura controlada
Crea un directorio pequeño y desechable, asígnalo a Syncthing y verifica la creación → edición → cambio de nombre → eliminación desde ambos dispositivos. Cuando funcione, aplica el mismo patrón de propiedad y montaje a la carpeta real. Esto aísla el comportamiento de sincronización de un árbol de directorios existente y complicado.
Preguntas frecuentes
¿Por qué Syncthing puede añadir archivos, pero no eliminarlos?
Los permisos del directorio principal pueden permitir la lectura, pero bloquear las operaciones de cambio de nombre o eliminación.
¿Debería usar chmod 777?
No. Primero demuestra la ruta que falla y la identidad del contenedor.
