From 688c54c87355b5424f33f7b089814460a74af594 Mon Sep 17 00:00:00 2001 From: Stefano Marinelli Date: Tue, 6 Jan 2026 11:02:36 +0100 Subject: Implement configurable EXIF stripping for uploaded media - Add `strip_exif` configuration option to enable metadata removal. - Add `mogrify_path` configuration to specify external tool location. - Implement strip_media using `mogrify -strip`. - Support multiple image formats: jpg, png, webp, heic, heif, avif, tiff, gif, bmp. - Add strict startup check: fail to start if `strip_exif` is enabled but `mogrify` is missing/broken. - Update documentation in `doc/snac.8`. --- doc/snac.8 | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc') diff --git a/doc/snac.8 b/doc/snac.8 index b8a75fa..8283ac6 100644 --- a/doc/snac.8 +++ b/doc/snac.8 @@ -296,6 +296,14 @@ outgoing messages (default: 15). Anyway, whenever any incoming activity from a failed instance is detected, this counter is reset for it. .It Ic vkey Public vapid key. Used for notification on some client. +.It Ic strip_exif +If set to true, EXIF metadata will be stripped from uploaded images (jpg, png, webp, heic, avif, tiff, gif, bmp). This requires the +.Nm mogrify +tool to be installed. If +.Nm snac +cannot find or execute the tool at startup, it will refuse to run. +.It Ic mogrify_path +Overrides the default "mogrify" command name or path. Use this if the tool is not in the system PATH or has a different name. .El .Pp You must restart the server to make effective these changes. -- cgit v1.2.3 From 03d270a56b751bc53b83381d9fef21da8d4cbb91 Mon Sep 17 00:00:00 2001 From: Stefano Marinelli Date: Tue, 6 Jan 2026 12:18:00 +0100 Subject: Implement metadata stripping for uploaded videos - Extend `strip_media` to support video files using `ffmpeg`. - Use `ffmpeg -map_metadata -1 -c copy` to strip global metadata. - Support formats: mp4, m4v, mov, webm, mkv, avi. - Add `ffmpeg_path` configuration option. - Implement robust relative path handling (`user/` heuristic) to support jailed environments. - Enforce strict checks on startup: fail if tools (mogrify/ffmpeg) are missing when enabled. --- doc/snac.8 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/snac.8 b/doc/snac.8 index 8283ac6..c53bb59 100644 --- a/doc/snac.8 +++ b/doc/snac.8 @@ -297,13 +297,17 @@ failed instance is detected, this counter is reset for it. .It Ic vkey Public vapid key. Used for notification on some client. .It Ic strip_exif -If set to true, EXIF metadata will be stripped from uploaded images (jpg, png, webp, heic, avif, tiff, gif, bmp). This requires the +If set to true, EXIF and other metadata will be stripped from uploaded images (jpg, png, webp, heic, avif, tiff, gif, bmp) and videos (mp4, m4v, mov, webm, mkv, avi). This requires the .Nm mogrify -tool to be installed. If +(from ImageMagick) and +.Nm ffmpeg +tools to be installed. If .Nm snac -cannot find or execute the tool at startup, it will refuse to run. +cannot find or execute these tools at startup, it will refuse to run. .It Ic mogrify_path Overrides the default "mogrify" command name or path. Use this if the tool is not in the system PATH or has a different name. +.It Ic ffmpeg_path +Overrides the default "ffmpeg" command name or path. Use this if the tool is not in the system PATH or has a different name. .El .Pp You must restart the server to make effective these changes. -- cgit v1.2.3