Solución de Discord

Syncthing en CasaOS sincroniza archivos, pero no puede eliminarlos ni modificarlos

A CasaOS Syncthing user could sync data into Documents, Downloads, Gallery and Media, but remote edits and deletions repeatedly pushed the folders out of sync.

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.

Captura de pantalla del error de carpeta de Syncthing en CasaOS que muestra una carpeta con errores mientras las adyacentes funcionan
Cuando una carpeta falla pero las adyacentes funcionan, compara la ruta exacta y la propiedad.
Captura de pantalla de la ruta de almacenamiento de CasaOS utilizada para comparar las asignaciones de carpetas de Syncthing
Usa una carpeta funcional como referencia al comparar las rutas de montaje.

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.

Ubicación del registro de la aplicación CasaOS destacada para solucionar problemas de Syncthing
Usa los registros junto con pruebas directas del sistema de archivos.
Estado de desincronización de Syncthing después de que un dispositivo remoto modificara archivos en un host de CasaOS
El estado de desincronización tras ediciones remotas apunta a la ruta de escritura del lado receptor.

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.