Skip to content

Feat/application icon upload#3611

Merged
Siumauricio merged 10 commits intoDokploy:canaryfrom
Statsly-org:feat/application-icon-upload
Apr 5, 2026
Merged

Feat/application icon upload#3611
Siumauricio merged 10 commits intoDokploy:canaryfrom
Statsly-org:feat/application-icon-upload

Conversation

@Statsly-org
Copy link
Copy Markdown
Contributor

@Statsly-org Statsly-org commented Feb 6, 2026

What is this PR about?

This PR adds icon support for applications. Users can upload a custom icon (JPG, PNG, SVG, max 2MB) or choose from a searchable library of tech logos (svgporn.com). The icon is shown in the application header and on service cards in the environment view. A new nullable icon column is added to the application table via migration; existing apps remain backward compatible.

Features

  • Upload custom icons (JPG, PNG, SVG, max 2MB) via drag-and-drop
  • Select from 1800+ SVG icons (svgporn.com) with search
  • Icons shown in application detail header and on environment service cards
  • Icon stored as base64 in DB (nullable); backward compatible

Database migration

  • File: 0138_goofy_corsair.sql
  • Adds nullable icon (text) column to application table
  • Migration runs automatically on update; no manual DB steps
  • Existing applications keep icon = null

Checklist

Before submitting this PR, please make sure that:
[x] You created a dedicated branch based on the canary branch.
[x] You have read the suggestions in the CONTRIBUTING.md file https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#pull-request
[x] You have tested this PR in your local instance.

Issues related

Implements #3610

image image image image

Credits for the icons (gilbarbara/logos) and the developer (Statsly) are shown in the Icon tab in the app.
If you want to remove the developer Credits its okay, not sure tho about the library.

@dosubot dosubot Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Apr 5, 2026
# Conflicts:
#	apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId].tsx
#	apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
#	apps/dokploy/server/api/routers/application.ts
- Added `dompurify` for sanitizing SVG icons to prevent XSS vulnerabilities.
- Introduced `simple-icons` for a collection of SVG icons, enhancing the icon selection feature.
- Updated the `ShowIconSettings` component to utilize the new icon management logic.
- Removed the obsolete `icons.json` file and replaced it with a new `bundled-icons.ts` file for better structure and maintainability.
- Adjusted related API and component files to accommodate the new icon handling approach.
…functionality

- Updated the ShowIconSettings component to include a dialog for icon selection and upload.
- Added functionality to handle file uploads, including validation for file types and sizes.
- Implemented icon removal feature within the dialog.
- Refactored icon selection logic to improve user experience and maintainability.
- Adjusted the application page to integrate the updated ShowIconSettings component.
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:XXL This PR changes 1000+ lines, ignoring generated files. labels Apr 5, 2026
autofix-ci Bot and others added 3 commits April 5, 2026 02:29
- Introduced a new optional `icon` field to the application schema, allowing for icon uploads.
- Implemented validation to ensure the icon size does not exceed 2MB, enhancing data integrity.
@Siumauricio Siumauricio merged commit 3969d2d into Dokploy:canary Apr 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants