From f54829cb28642cea7358ab1dcccbbf6a692bde2a Mon Sep 17 00:00:00 2001 From: juanatsap Date: Fri, 3 Apr 2026 22:44:21 +0100 Subject: [PATCH] data: add Immich Photo Manager project logo --- data/cv-en.json | 2 +- data/cv-es.json | 2 +- static/images/projects/immich-photo-manager.png | Bin 0 -> 9543 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 static/images/projects/immich-photo-manager.png diff --git a/data/cv-en.json b/data/cv-en.json index 899abbb..cdd9a2c 100644 --- a/data/cv-en.json +++ b/data/cv-en.json @@ -656,7 +656,7 @@ "projectName": "Immich Photo Manager", "projectDesc": "AI-Powered Photo Library MCP Server", "url": "https://github.com/drolosoft/immich-photo-manager", - "projectLogo": "", + "projectLogo": "immich-photo-manager.png", "location": "Online", "startDate": "2025", "current": true, diff --git a/data/cv-es.json b/data/cv-es.json index 7324608..76e23d7 100644 --- a/data/cv-es.json +++ b/data/cv-es.json @@ -661,7 +661,7 @@ "projectName": "Immich Photo Manager", "projectDesc": "Servidor MCP para Gestión de Fotos con IA", "url": "https://github.com/drolosoft/immich-photo-manager", - "projectLogo": "", + "projectLogo": "immich-photo-manager.png", "location": "Online", "startDate": "2025", "current": true, diff --git a/static/images/projects/immich-photo-manager.png b/static/images/projects/immich-photo-manager.png new file mode 100644 index 0000000000000000000000000000000000000000..2121651436dfb4f1283ae494c773c07279283f2f GIT binary patch literal 9543 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 OLQqxIQfQL5`S?FX?-sxS literal 0 HcmV?d00001