Dupli - Releases

← App details

Nextcloud 33

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 32

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 31

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 30

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 29

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 28

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 27

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 26

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32

Nextcloud 25

Dupli 1.1.4
Release Details
UpdatedMay 13, 2026, 12:47 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignaturegHMeLn8/BN8y9HTIC3cYiWdGFe+0UcJULBf4G3bH/MWbdugk6fcrTwy4odJyk4YQAMMDwOD1wkOGaNAlNYVDxfGc5TjX3feRet3Al4QKpmW7C4HI+2JsvtSriEXcXqB+b9lVUki2yJLqS0p4Es5e7cc8nTfoOna+3qNhXMHLOZSaW9XblX+ll8fKi4SqSL3Do1Tsnzzo4ldGSuEQKKjxJvtemQrfT8SD3uOU5qvln0bcfKe/tnYppSlyf+q7uVwIAEDY7Dq7JuyhLmR90LxSmAlo65w77neMck/4uemVz1WIfIlaoGcoos3SMIBiPRAutbbWtMKMmzjtdj7Frs5VOD7rEwr7orwEzlFVxi5S8nALKoBILJrvEeSnpZ+b/WKWMhdq5cENil8Y9I7d1Zirwzh69dF2vEwtBqrdPjXG9eaMS+1OaEEiQZddZnKAu72XXlthVfOD29igiK4XZ1h/4nez0r4fsXETJ1j9eLCrXUYUM/9HS1aJR6SRwFMuH9X95ZceypU2SlgVDyLOtmKLn57ZHg3J2yik7YxWr6qYWTBA3LHOkg97f0mGONJPLnQ/iqXXRaC5RWu3xDiT/Bsl4gUhbJ7/LNwqr2uLEi590qbvufs85owwnlEJLDF+v40UZZ/ocPE4Og6u/9rRkJRWwWOlv/0t1LrImi6WmY/YHmI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.3
Release Details
UpdatedMay 13, 2026, 11:39 a.m.
Changelog

Added

  • Per-file selection checkboxes inside each duplicate group card with "Delete X selected" button for manual precise cleanup
  • Stop button in the bulk-delete progress overlay to halt the operation between batches
  • Conflict resolution modal (Rule 4): when the largest unprotected file is bigger than the largest protected file, the group is skipped and a resolution dialog is shown at the end

Changed

  • Rule 1 (all-unprotected groups): now keeps the LARGEST file and deletes the rest, instead of deleting all
  • Rule 3 ("Delete all but one protected copy" opt-in): now keeps the single LARGEST protected file and deletes everything else
  • Bulk delete now processes one group per HTTP request (batch size 1) to stay within proxy timeout limits
  • Duplicate files are permanently deleted, bypassing the Nextcloud trash bin — prevents multi-minute copy-to-trash operations that caused timeouts for large video files

Fixed

  • Bulk delete no longer fails or times out on large video files: trash bin copy step is bypassed, enabling fast permanent deletion
  • Cloudflare 524 timeout errors eliminated for large video group deletes
  • HTTP 500 errors on video deletes caused by failed trash-bin move operations are resolved
  • Bulk delete operation no longer aborts on a single failed batch; failures are logged and skipped gracefully
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureNzdc5qxMQNkbtvcZSzIdz9apLuB3uGdMCTpS/ckrHrkTeeBOmnrJkdQegEEs3yo+SGmZxBzekRtthLtUk+29/zA7QBL2LLx2CC32tAHmZy5anaak0ftI+PkMc1MFexZp1MglTcj02pNrv8LgMTdDKXiU9ySJagkjzrt4jTeGyDVzS+F7u/DtsUsPH0uXF3ixfDH/kZ5f/MrgVo1ILQDToe5URcBtlQU+bbeAvzKUt5Ge/i+P7vLcDdX1iDDH1FB0h9xuNNUl02n5JyIUDDYgxfpCvsGvHVOXfGhM1Sy1V+gyMYv7Igpq5K5nJ8gWtUxQu2fFQ27Gj/iWVisFBm8Pt0+u9e2OaIuTlYI5dnp6HLq+pu7FQ6nlFQ5eHXc8J0FS2wYMafgui3FCQNsdjRGDNSvZCT5WDGAc+Ba/vsanuzZgxKKJKHnzzOjDHXH+wra9vEyknYap6Fm8qntyQZWBs5b+FUa0p6lh0bcdizJCl0fKrt/sp0nasPdBLd+hQHDVlcSLEAIBKjpbRKnxiJcbupoOT0Qfu1lLmWerw7/a/yA9qRNdec1suFa5enKtu3pANtcHMR8q89xZ5D+Pb7YS3tqVZnpJboMbekzVv3Ffc6n2MMNI8y3SY9xVeG3ZsJFNTOBTWBvFRo+byYgQoBcO/r8Lt1C3kTvlLd89PyvYB7E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.2
Release Details
UpdatedMay 11, 2026, 12:11 p.m.
Changelog

Added

  • Hash cache: perceptual hashes are stored in the database after the first scan and reused on subsequent runs — only new or changed files are re-hashed, making re-scans of large libraries (400 GB+) dramatically faster
  • BK-tree comparison: replaced the O(n^2) pairwise hash comparison with an O(n log n) BK-tree nearest-neighbour search, reducing the grouping phase from hours to seconds for large libraries

Fixed

  • HEIC/HEIF photos (iPhone) now supported via pillow-heif — previously skipped silently
  • Very large images (>89 MP) no longer crash the scanner (PIL decompression bomb limit raised to 300 MP)
  • Scan completion notification now uses the internal container URL instead of the external Cloudflare domain, fixing broken notifications
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureKtegFy9pZTkKMshr/iQNngIbEsLj/ByxsYhUYj9+D9mTo93cBHuy+ycFKl/kqCML
9IgiCDVzVHxmscKRRH8nlCtFAAqsPIaml6f94P9xFeHfxgsmn6zSjexPxK5Tr0Ik
7YrSYSikpfVOFp9z4ztr3Z7mCkprSrlKatwtQQjfVJ1LDf8oqK56q7UlVIIq2Ajn
E+Dr5CyhZNxKD2pLrP9ueJYhtBEHJXZUZ5p7RLnvAY6gCTssHRwHIev8hmrFcFKQ
YxfHTkk6V36rltacAayEdL12NbUXXrAtYN2oT/dYxV7P75HPcxcx/MxPHtSwwZYC
jNsSVvWRKoJ53hGg7mI3iFlBeYGI3EXk+dkFLQv33rvo3eabekIiH4hSeinijtaL
VvQGag7IOF+QIm7O1UG6z0ezDoFVgydfQNYh59GIfd5LP1EoS3vLVClhaTBx7uiI
HW+PW+RfKC/MEBlGdreQHldiYMGjdhJ0YWP+tDIQXeJ0JQ+qZ6KUGJvFzwr5AV+a
XFVeSWfHDkOCAZgwZ3wzOR2ZSWl18IgthIZ/AUwtzrtVDR74MvV35rUzawvqWxW1
0hxjMWn/Z9okwVfgVIcSeLXS+4pYWnf3vjqCs4MdxhJUAvROfekvUzWpnxdfh5IM
9NVprzGvCp9Ez0MM+TalVUzfYDWb2L9EaRXY1ajdgEE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.1
Release Details
UpdatedMay 9, 2026, 10:36 p.m.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureoJaMhtq5SdU4DIyzCuBOX0nGdP96Woj3YL9jYB1DqXlNBLqJObtdA+fFkIAcAoYf
d8Fot5rO+S8lZ9669fNwexr2VDmYO7GOYNMiVCRb8AUOB/byyMsWt1kJIllU8Vho
xR6cWN8XvJxrIh/T7lvgD8gaf21WJ7b/aXV3H5eIvwK8WjT/x93dmyBby0jOuT6t
MemYJn9AEFT+g5+cQfEhgHHPqaBO5Br+LT6p9pzXzlvoKYZDZWjHVB2+/mIhE8jQ
MpjYn+IPM4HjUaBJDCvhJwnU98Wr24msQ3Lxr0M3cVn15lHykxFcqmR18xJDuvkq
BnKBxkBeHExp9YpSQP6nbKOIb1rHRSNFf1OX48bpFYmCs4kOPvtUpPecKexDTxrz
B/3gdWe6p+5lXsQPPUKF5I6Ruao/p61AHYb36BhAjnnUVcrJmy4Zb66HXqCdO2oi
yyAOEOEYb//1i6t42vzF9vmphf9rRTtapv9pqtkPXXTDmmAJGOREis86946utiCm
hAis3P8w1U1y7LqAgLhaMdIC2obVqvmOrcOf4O06n6D13/Tmsg4yi/GapgIdmTRH
QSULu6c3S668mdoV3OAWDXyObIiNVN1XrIIkWw0rel1eJi+K4DdzufIzncpejQsJ
rdSFtu0E8+l+0eFcgVm3vWcMtnXZm9UwPTgiJz+k++4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32
Dupli 1.1.0
Release Details
UpdatedMay 9, 2026, 5:52 p.m.
Changelog

Added

  • Perceptual hash duplicate detection (dHash, pHash, wHash)
  • Bulk delete with glob filter patterns
  • Protection rules for folders
  • Audit log with CSV export
  • Inline image preview lightbox
  • Scan progress polling

Fixed

  • Filter pattern correctly applied during bulk delete
  • Group cleanup respects active filter
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD
VQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe
xI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE
ln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN
Y37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX
22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA
v53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u
mNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL
VzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV
oARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt
sygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR
m3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR
/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+
OJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao
W6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H
rEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD
TEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=
-----END CERTIFICATE-----
SignatureLlcIy3kjxyAT1zQ/NyhzffevE7sLRJDfvf6vHiYLTqNGQzDxUvWtkFqKaQJQc/sS
RVGY1bvk1/lpraf8677qFRxyiq2W6GFnrVBRetTDuMlQBrKyXMPK7e8IBuSBaW/n
Yw4yWjgZDbvf/FB6dGgLURnuiw1g2K7eeKvQr8zExhmjGq1gxbIZkeLi+WU5ko3T
yRKdlhcEEgmUFzbvuOFbx4FyEfYF8FlQZd4U0rrwG3qq/FQSwD85TAEAzU7L9YQn
P9hqMK7vTHDqkCMA1epqGr2FTQj8nE0H7Xor8Hb7qj0sozvRlWsUorL1UW0diAEL
8q5IqcK82zcXb9AZag/4p2cPAmifWekaJ86lf/g+bNxETwaOYkcG3q+o9sRW45x+
XSVVpOJjdh6c4mxQ7/HM+gzokDvuNKswjo/7i00zLKUIzur0pCWi/iba/u8QjWkh
fCbmYALK1CRMxUKdaKAC8HYSOkKS/KqtwhOj7KLt022UAljKI4NarkRpa5ClifaU
yV8NN6qM+BJDSL4GM+iiydE78y7U39YzdfbMbCVBJuEqVobWFNH5BFaXwYhSECl7
QGC/THAaq6NQh7xe/sgKcIofVAujC2Ldv1NCz0VBdo3WzAuc2MgReCJuCuAVSfRS
kXJ10MsxDa9U8KUpCF1ZNQcDMpR9MFsqnYCGp8/LjZ4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=25.0.0,<34.0.0
Minimum Integer bits32