diff --git a/app/Livewire/Project/New/Select.php b/app/Livewire/Project/New/Select.php index 05107a105..4cffff800 100644 --- a/app/Livewire/Project/New/Select.php +++ b/app/Livewire/Project/New/Select.php @@ -121,7 +121,11 @@ class Select extends Component } } - if (! is_string($logo) || ! file_exists(public_path($logo))) { + $hasLogo = is_string($logo) + && basename($logo) !== basename($default_logo) + && file_exists(public_path($logo)); + + if (! $hasLogo) { $logo = $default_logo; } @@ -132,6 +136,7 @@ class Select extends Component 'id' => $serviceKey, 'name' => str($serviceKey)->headline(), 'docsSlug' => str($serviceKey)->lower()->value(), + 'has_logo' => $hasLogo, 'logo' => asset($logo), 'logo_github_url' => file_exists($local_logo_path) ? 'https://raw.githubusercontent.com/coollabsio/coolify/refs/heads/main/public/'.$logo @@ -172,109 +177,107 @@ class Select extends Component $gitBasedApplications = [ [ 'id' => 'public', - 'name' => 'Public Repository', - 'description' => 'Connect any public Git repository and let Coolify build and deploy it from source.', + 'name' => 'Public Git Repository', + 'description' => 'Deploy any public Git repository. Coolify builds it from source, no credentials required.', 'documentation' => 'https://coolify.io/docs/applications/ci-cd', - 'logo' => asset('svgs/git.svg'), - ], - [ - 'id' => 'private-gh-app', - 'name' => 'Private Repository (with GitHub App)', - 'description' => 'Deploy a private GitHub repository with automatic webhooks and pull request support.', - 'documentation' => 'https://coolify.io/docs/applications/ci-cd/github/setup-app', - 'logo' => asset('svgs/github.svg'), - ], - [ - 'id' => 'private-gitlab-app', - 'name' => 'Private Repository (with GitLab App)', - 'description' => 'You can deploy public & private repositories through your GitLab Apps.', - 'logo' => asset('svgs/gitlab.svg'), + 'logo' => asset('svgs/resources/public-repo.svg'), ], [ 'id' => 'private-deploy-key', - 'name' => 'Private Repository (with Deploy Key)', - 'description' => 'Connect a private Git repository over SSH using a repository-scoped deploy key.', + 'name' => 'Private Git Repository (with Deploy Key)', + 'description' => 'Deploy a private repository over SSH with a repository-scoped deploy key. Set the URL and branch manually, no automatic deploys.', 'documentation' => 'https://coolify.io/docs/applications/ci-cd/github/deploy-key', - 'logo' => asset('svgs/git.svg'), + 'logo' => asset('svgs/resources/deploy-key.svg'), + ], + [ + 'id' => 'private-gh-app', + 'name' => 'Git Repository (with GitHub App)', + 'description' => 'Deploy public or private GitHub repositories through a GitHub App, with automatic webhooks and pull request previews.', + 'documentation' => 'https://coolify.io/docs/applications/ci-cd/github/setup-app', + 'logo' => asset('svgs/resources/github-app.svg'), + 'logoDark' => asset('svgs/resources/github-app-dark.svg'), + ], + [ + 'id' => 'private-gitlab-app', + 'name' => 'Git Repository (with GitLab App)', + 'description' => 'Deploy public or private GitLab projects through a GitLab App, with automatic webhooks and merge request previews.', + 'logo' => asset('svgs/resources/gitlab-app.svg'), ], ]; $dockerBasedApplications = [ [ 'id' => 'dockerfile', 'name' => 'Dockerfile', - 'description' => 'Build and deploy an application from a Dockerfile without connecting a Git repository.', + 'description' => 'Deploy an application using a Dockerfile, without a Git repository.', 'documentation' => 'https://coolify.io/docs/applications/build-packs/dockerfile', - 'logo' => asset('svgs/docker.svg'), + 'logo' => asset('svgs/resources/dockerfile.svg'), ], [ 'id' => 'docker-compose-empty', - 'name' => 'Docker Compose Empty', - 'description' => 'Create a multi-container application and provide the Docker Compose definition manually.', + 'name' => 'Docker Compose', + 'description' => 'Deploy a multi-container application using a Docker Compose file, without a Git repository.', 'documentation' => 'https://coolify.io/docs/applications/build-packs/docker-compose', - 'logo' => asset('svgs/docker.svg'), + 'logo' => asset('svgs/resources/docker-compose.svg'), ], [ 'id' => 'docker-image', 'name' => 'Docker Image', - 'description' => 'Run a prebuilt image from Docker Hub or another compatible container registry.', + 'description' => 'Deploy an application using a prebuilt image from any Docker registry, without a Git repository.', 'documentation' => 'https://coolify.io/docs/applications', - 'logo' => asset('svgs/docker.svg'), + 'logo' => asset('svgs/resources/docker-image.svg'), ], ]; $databases = [ [ 'id' => 'postgresql', 'name' => 'PostgreSQL', - 'description' => 'PostgreSQL is an object-relational database known for its robustness, advanced features, and strong standards compliance.', - 'logo' => ' -', + 'description' => 'A relational database with strong SQL standards support and extensibility.', + 'logo' => asset('svgs/resources/postgres.svg'), ], [ 'id' => 'mysql', 'name' => 'MySQL', - 'description' => 'MySQL is an open-source relational database management system. ', - 'logo' => ' - - - -', + 'description' => 'A relational database for web and general-purpose applications.', + 'logo' => asset('svgs/resources/mysql.svg'), ], [ 'id' => 'mariadb', 'name' => 'MariaDB', - 'description' => 'MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system, intended to remain free and open-source.', - 'logo' => '', + 'description' => 'A relational database and drop-in replacement for MySQL.', + 'logo' => asset('svgs/resources/mariadb.svg'), ], [ 'id' => 'redis', 'name' => 'Redis', - 'description' => 'Redis is a source-available, in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.', - 'logo' => '', + 'description' => 'An in-memory key-value store used as a database, cache, and message broker.', + 'logo' => asset('svgs/resources/redis.svg'), ], [ 'id' => 'keydb', 'name' => 'KeyDB', - 'description' => 'KeyDB is a database that offers high performance, low latency, and scalability for various data structures and workloads.', - 'logo' => '
', + 'description' => 'A multithreaded, Redis-compatible in-memory store.', + 'logo' => asset('svgs/resources/keydb.svg'), + 'logoDark' => asset('svgs/resources/keydb-dark.svg'), ], [ 'id' => 'dragonfly', 'name' => 'Dragonfly', - 'description' => 'Dragonfly DB is a drop-in Redis replacement that delivers 25x more throughput and 12x faster snapshotting than Redis.', - 'logo' => '
', + 'description' => 'An in-memory datastore compatible with Redis and Memcached.', + 'logo' => asset('svgs/resources/dragonfly.svg'), + 'logoDark' => asset('svgs/resources/dragonfly-dark.svg'), ], [ 'id' => 'mongodb', 'name' => 'MongoDB', - 'description' => 'MongoDB is a source-available, cross-platform, document-oriented database program.', - 'logo' => '', + 'description' => 'A document-oriented NoSQL database that stores JSON-like documents.', + 'logo' => asset('svgs/resources/mongodb.svg'), ], [ 'id' => 'clickhouse', 'name' => 'ClickHouse', - 'description' => 'ClickHouse is a column-oriented database that supports real-time analytics, business intelligence, observability, ML and GenAI, and more.', - 'logo' => '
', + 'description' => 'A column-oriented database for real-time analytics over large datasets.', + 'logo' => asset('svgs/resources/clickhouse.svg'), ], ]; diff --git a/public/svgs/resources/clickhouse.svg b/public/svgs/resources/clickhouse.svg new file mode 100644 index 000000000..0d084af5d --- /dev/null +++ b/public/svgs/resources/clickhouse.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/deploy-key.svg b/public/svgs/resources/deploy-key.svg new file mode 100644 index 000000000..a1ef1f783 --- /dev/null +++ b/public/svgs/resources/deploy-key.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/docker-compose.svg b/public/svgs/resources/docker-compose.svg new file mode 100644 index 000000000..0101ad46c --- /dev/null +++ b/public/svgs/resources/docker-compose.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/svgs/resources/docker-image.svg b/public/svgs/resources/docker-image.svg new file mode 100644 index 000000000..28b300a9c --- /dev/null +++ b/public/svgs/resources/docker-image.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/svgs/resources/dockerfile.svg b/public/svgs/resources/dockerfile.svg new file mode 100644 index 000000000..f4a3efb11 --- /dev/null +++ b/public/svgs/resources/dockerfile.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/svgs/resources/dragonfly-dark.svg b/public/svgs/resources/dragonfly-dark.svg new file mode 100644 index 000000000..f7353412c --- /dev/null +++ b/public/svgs/resources/dragonfly-dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/dragonfly.svg b/public/svgs/resources/dragonfly.svg new file mode 100644 index 000000000..9fab4286f --- /dev/null +++ b/public/svgs/resources/dragonfly.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/github-app-dark.svg b/public/svgs/resources/github-app-dark.svg new file mode 100644 index 000000000..0cd906f71 --- /dev/null +++ b/public/svgs/resources/github-app-dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/github-app.svg b/public/svgs/resources/github-app.svg new file mode 100644 index 000000000..9ad7a40ae --- /dev/null +++ b/public/svgs/resources/github-app.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/gitlab-app.svg b/public/svgs/resources/gitlab-app.svg new file mode 100644 index 000000000..d30b9de62 --- /dev/null +++ b/public/svgs/resources/gitlab-app.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/keydb-dark.svg b/public/svgs/resources/keydb-dark.svg new file mode 100644 index 000000000..5270a2481 --- /dev/null +++ b/public/svgs/resources/keydb-dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/keydb.svg b/public/svgs/resources/keydb.svg new file mode 100644 index 000000000..c057c649d --- /dev/null +++ b/public/svgs/resources/keydb.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/mariadb.svg b/public/svgs/resources/mariadb.svg new file mode 100644 index 000000000..abcbe3e3e --- /dev/null +++ b/public/svgs/resources/mariadb.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/svgs/resources/mongodb.svg b/public/svgs/resources/mongodb.svg new file mode 100644 index 000000000..adb8e1f55 --- /dev/null +++ b/public/svgs/resources/mongodb.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/mysql.svg b/public/svgs/resources/mysql.svg new file mode 100644 index 000000000..af476da03 --- /dev/null +++ b/public/svgs/resources/mysql.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/svgs/resources/postgres.svg b/public/svgs/resources/postgres.svg new file mode 100644 index 000000000..cc4f5f13f --- /dev/null +++ b/public/svgs/resources/postgres.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/svgs/resources/public-repo.svg b/public/svgs/resources/public-repo.svg new file mode 100644 index 000000000..d3809788f --- /dev/null +++ b/public/svgs/resources/public-repo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/svgs/resources/redis.svg b/public/svgs/resources/redis.svg new file mode 100644 index 000000000..fe67b6169 --- /dev/null +++ b/public/svgs/resources/redis.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/resources/views/livewire/project/new/select.blade.php b/resources/views/livewire/project/new/select.blade.php index 1567a52ec..8efb6ed92 100644 --- a/resources/views/livewire/project/new/select.blade.php +++ b/resources/views/livewire/project/new/select.blade.php @@ -119,7 +119,17 @@
- + +

- +

- + + +

-