diff --git a/README.md b/README.md
index 748676fa2..05f2e2b3c 100644
--- a/README.md
+++ b/README.md
@@ -35,28 +35,31 @@ # Donations
Special thanks to our biggest sponsors!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+### Special Sponsors
+![image](https://github.com/user-attachments/assets/c95a07df-7c5a-4e77-a35a-81f25fcbece1)
+
+* [CCCareers](https://cccareers.org/) - A career development platform for coding bootcamp graduates.
+* [Hetzner](http://htznr.li/CoolifyXHetzner) - A German web hosting company offering dedicated servers and cloud services.
+* [Logto](https://logto.io/?ref=coolify) - An open-source authentication and authorization platform.
+* [BC Direct](https://bc.direct/?ref=coolify.io) - A digital marketing agency specializing in e-commerce solutions.
+* [QuantCDN](https://www.quantcdn.io/?ref=coolify.io) - A content delivery network (CDN) for fast content delivery.
+* [Arcjet](https://arcjet.com/?ref=coolify.io) - A cloud-based platform for data analytics and visualization.
+* [SupaGuide](https://supa.guide/?ref=coolify.io) - A platform offering guides and resources for web development and design.
+* [Tigris](https://tigrisdata.com/?ref=coolify.io) - A data integration platform for connecting and managing data sources.
+* [Fractal Networks](https://fractalnetworks.co/?ref=coolify.io) - A decentralized network infrastructure for secure data exchange.
+* [Advin](https://coolify.ad.vin/?ref=coolify.io) - A digital advertising agency specializing in programmatic advertising.
+* [Treive](https://trieve.ai/?ref=coolify.io) - An AI-powered data analytics platform for business insights.
+* [Blacksmith](https://blacksmith.sh/?ref=coolify.io) - A cloud-based platform for automating DevOps and infrastructure management.
+* [Latitude](https://latitude.sh/?ref=coolify.io) - A platform offering location-based services and geospatial data.
+* [Brand Dev](https://brand.dev/?ref=coolify.io) - A web development agency specializing in brand identity and digital presence.
+* [Jobscollider](https://jobscollider.com/remote-jobs?ref=coolify.io) - A job search platform specializing in remote and flexible work opportunities.
+* [Hostinger](https://hostinger.com?ref=coolify.io) - A web hosting company offering shared, VPS, and cloud hosting services.
+* [Glueops](https://www.glueops.dev/?ref=coolify.io) - A DevOps and cloud consulting company offering infrastructure automation services.
+* [Ubicloud](https://ubicloud.com/?ref=coolify.io) - A cloud-based platform for IoT device management and data analytics.
+* [Juxtdigital](https://juxtdigital.dev/?ref=coolify.io) - A digital agency offering web development, design, and marketing services.
+* [Saasykit](https://saasykit.com/?ref=coolify.io) - SaaSykit is a Laravel-based boilerplate with everything you need to build an awesome SaaS.
+* [Massivegrid](https://massivegrid.com/?ref=coolify.io) - A cloud-based platform for data storage and processing.
## Github Sponsors ($40+)
diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php
index 7ef02fff9..b21ceac31 100644
--- a/bootstrap/helpers/shared.php
+++ b/bootstrap/helpers/shared.php
@@ -3206,6 +3206,7 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
}
}
// convert environment variables to one format
+ ray($environment);
$environment = convertComposeEnvironmentToArray($environment);
// Add Coolify defined environments
@@ -3639,37 +3640,22 @@ function add_coolify_default_environment_variables(StandaloneRedis|StandalonePos
$where_to_add->push("COOLIFY_PROJECT_NAME={$resource->project()->name}");
}
}
- ray($where_to_add);
}
function convertComposeEnvironmentToArray($environment)
{
$convertedServiceVariables = collect([]);
- foreach ($environment as $variableName => $variableValue) {
- if (is_array($variableValue)) {
- $key = str(collect($variableValue)->keys()->first());
- $value = str(collect($variableValue)->values()->first());
- } elseif (is_string($variableValue)) {
- if (str($variableValue)->contains('=')) {
- $key = str($variableValue)->before('=');
- $value = str($variableValue)->after('=');
- } else {
- if (is_numeric($variableName)) {
- $key = str($variableValue);
- $value = null;
- } else {
- $key = str($variableName);
- if ($variableValue) {
- $value = str($variableValue);
- } else {
- $value = null;
- }
- }
+ if (isAssociativeArray($environment)) {
+ $convertedServiceVariables = $environment;
+ } else {
+ foreach ($environment as $value) {
+ $parts = explode('=', $value, 2);
+ $key = $parts[0];
+ $realValue = $parts[1] ?? '';
+ if ($key) {
+ $convertedServiceVariables->put($key, $realValue);
}
}
- if ($key) {
- $convertedServiceVariables->put($key->value(), $value?->value() ?? null);
- }
}
return $convertedServiceVariables;
diff --git a/config/sentry.php b/config/sentry.php
index a1505137e..28fabe940 100644
--- a/config/sentry.php
+++ b/config/sentry.php
@@ -7,7 +7,7 @@
// The release version of your application
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
- 'release' => '4.0.0-beta.327',
+ 'release' => '4.0.0-beta.328',
// When left empty or `null` the Laravel environment will be used
'environment' => config('app.env'),
diff --git a/config/version.php b/config/version.php
index cb9bd0622..f9078cf09 100644
--- a/config/version.php
+++ b/config/version.php
@@ -1,3 +1,3 @@