diff --git a/README.md b/README.md index d840739d7..c3412be14 100644 --- a/README.md +++ b/README.md @@ -35,22 +35,32 @@ Thank you so much! Special thanks to our biggest sponsors! -cccareers logo -hetzner logo -logto logo -bc direct logo -quantcdn logo -arcjet logo -supaguide logo -tigris logo -fractal logo -advin logo -trieve logo -blacksmith logo -latitude logo -branddev logo -jobscollider logo -hostinger logo +### Special Sponsors + +![image](https://github.com/user-attachments/assets/c95a07df-7c5a-4e77-a35a-81f25fcbece1) + +* [CCCareers](https://cccareers.org/) - A career development platform connecting coding bootcamp graduates with job opportunities in the tech industry. +* [Hetzner](http://htznr.li/CoolifyXHetzner) - A German web hosting company offering affordable dedicated servers, cloud services, and web hosting solutions. +* [Logto](https://logto.io/?ref=coolify) - An open-source authentication and authorization solution for building secure login systems and managing user identities. +* [BC Direct](https://bc.direct/?ref=coolify.io) - A digital marketing agency specializing in e-commerce solutions and online business growth strategies. +* [QuantCDN](https://www.quantcdn.io/?ref=coolify.io) - A content delivery network (CDN) optimizing website performance through global content distribution. +* [Arcjet](https://arcjet.com/?ref=coolify.io) - A cloud-based platform providing real-time protection against API abuse and bot attacks. +* [SupaGuide](https://supa.guide/?ref=coolify.io) - A comprehensive resource hub offering guides and tutorials for web development using Supabase. +* [Tigris](https://tigrisdata.com/?ref=coolify.io) - A fully managed serverless object storage service compatible with Amazon S3 API. Offers high performance, scalability, and built-in search capabilities for efficient data management. +* [Fractal Networks](https://fractalnetworks.co/?ref=coolify.io) - A decentralized network infrastructure company focusing on secure and private communication solutions. +* [Advin](https://coolify.ad.vin/?ref=coolify.io) - A digital advertising agency specializing in programmatic advertising and data-driven marketing strategies. +* [Treive](https://trieve.ai/?ref=coolify.io) - An AI-powered search and discovery platform for enhancing information retrieval in large datasets. +* [Blacksmith](https://blacksmith.sh/?ref=coolify.io) - A cloud-native platform for automating infrastructure provisioning and management across multiple cloud providers. +* [Latitude](https://latitude.sh/?ref=coolify.io) - A cloud computing platform offering bare metal servers and cloud instances for developers and businesses. +* [Brand Dev](https://brand.dev/?ref=coolify.io) - A web development agency specializing in creating custom digital experiences and brand identities. +* [Jobscollider](https://jobscollider.com/remote-jobs?ref=coolify.io) - A job search platform connecting professionals with remote work opportunities across various industries. +* [Hostinger](https://hostinger.com?ref=coolify.io) - A web hosting provider offering affordable hosting solutions, domain registration, and website building tools. +* [Glueops](https://www.glueops.dev/?ref=coolify.io) - A DevOps consulting company providing infrastructure automation and cloud optimization services. +* [Ubicloud](https://ubicloud.com/?ref=coolify.io) - An open-source alternative to hyperscale cloud providers, offering high-performance cloud computing services. +* [Juxtdigital](https://juxtdigital.dev/?ref=coolify.io) - A digital agency offering web development, design, and digital marketing services for businesses. +* [Saasykit](https://saasykit.com/?ref=coolify.io) - A Laravel-based boilerplate providing essential components and features for building SaaS applications quickly. +* [Massivegrid](https://massivegrid.com/?ref=coolify.io) - A cloud hosting provider offering scalable infrastructure solutions for businesses of all sizes. + ## Github Sponsors ($40+) SerpAPI @@ -77,6 +87,7 @@ Special thanks to our biggest sponsors! Paweł Pierścionek Michael Mazurczak Formbricks +Adith Suhas ## Organizations diff --git a/app/Http/Controllers/Api/ApplicationsController.php b/app/Http/Controllers/Api/ApplicationsController.php index 413555194..81b173011 100644 --- a/app/Http/Controllers/Api/ApplicationsController.php +++ b/app/Http/Controllers/Api/ApplicationsController.php @@ -53,6 +53,7 @@ class ApplicationsController extends Controller summary: 'List', description: 'List all applications.', path: '/applications', + operationId: 'list-applications', security: [ ['bearerAuth' => []], ], @@ -101,6 +102,7 @@ class ApplicationsController extends Controller summary: 'Create (Public)', description: 'Create new application based on a public git repository.', path: '/applications/public', + operationId: 'create-public-application', security: [ ['bearerAuth' => []], ], @@ -202,6 +204,7 @@ class ApplicationsController extends Controller summary: 'Create (Private - GH App)', description: 'Create new application based on a private repository through a Github App.', path: '/applications/private-github-app', + operationId: 'create-private-github-app-application', security: [ ['bearerAuth' => []], ], @@ -303,6 +306,7 @@ class ApplicationsController extends Controller summary: 'Create (Private - Deploy Key)', description: 'Create new application based on a private repository through a Deploy Key.', path: '/applications/private-deploy-key', + operationId: 'create-private-deploy-key-application', security: [ ['bearerAuth' => []], ], @@ -404,6 +408,7 @@ class ApplicationsController extends Controller summary: 'Create (Dockerfile)', description: 'Create new application based on a simple Dockerfile.', path: '/applications/dockerfile', + operationId: 'create-dockerfile-application', security: [ ['bearerAuth' => []], ], @@ -490,6 +495,7 @@ class ApplicationsController extends Controller summary: 'Create (Docker Image)', description: 'Create new application based on a prebuilt docker image', path: '/applications/dockerimage', + operationId: 'create-dockerimage-application', security: [ ['bearerAuth' => []], ], @@ -573,6 +579,7 @@ class ApplicationsController extends Controller summary: 'Create (Docker Compose)', description: 'Create new application based on a docker-compose file.', path: '/applications/dockercompose', + operationId: 'create-dockercompose-application', security: [ ['bearerAuth' => []], ], @@ -1171,6 +1178,7 @@ class ApplicationsController extends Controller summary: 'Get', description: 'Get application by UUID.', path: '/applications/{uuid}', + operationId: 'get-application-by-uuid', security: [ ['bearerAuth' => []], ], @@ -1235,6 +1243,7 @@ class ApplicationsController extends Controller summary: 'Delete', description: 'Delete application by UUID.', path: '/applications/{uuid}', + operationId: 'delete-application-by-uuid', security: [ ['bearerAuth' => []], ], @@ -1321,6 +1330,7 @@ class ApplicationsController extends Controller summary: 'Update', description: 'Update application by UUID.', path: '/applications/{uuid}', + operationId: 'update-application-by-uuid', security: [ ['bearerAuth' => []], ], @@ -1557,6 +1567,7 @@ class ApplicationsController extends Controller summary: 'List Envs', description: 'List all envs by application UUID.', path: '/applications/{uuid}/envs', + operationId: 'list-envs-by-application-uuid', security: [ ['bearerAuth' => []], ], @@ -1639,6 +1650,7 @@ class ApplicationsController extends Controller summary: 'Update Env', description: 'Update env by application UUID.', path: '/applications/{uuid}/envs', + operationId: 'update-env-by-application-uuid', security: [ ['bearerAuth' => []], ], @@ -1821,6 +1833,7 @@ class ApplicationsController extends Controller summary: 'Update Envs (Bulk)', description: 'Update multiple envs by application UUID.', path: '/applications/{uuid}/envs/bulk', + operationId: 'update-envs-by-application-uuid', security: [ ['bearerAuth' => []], ], @@ -2012,6 +2025,7 @@ class ApplicationsController extends Controller summary: 'Create Env', description: 'Create env by application UUID.', path: '/applications/{uuid}/envs', + operationId: 'create-env-by-application-uuid', security: [ ['bearerAuth' => []], ], @@ -2171,6 +2185,7 @@ class ApplicationsController extends Controller summary: 'Delete Env', description: 'Delete env by UUID.', path: '/applications/{uuid}/envs/{env_uuid}', + operationId: 'delete-env-by-application-uuid', security: [ ['bearerAuth' => []], ], @@ -2256,6 +2271,7 @@ class ApplicationsController extends Controller summary: 'Start', description: 'Start application. `Post` request is also accepted.', path: '/applications/{uuid}/start', + operationId: 'start-application-by-uuid', security: [ ['bearerAuth' => []], ], @@ -2359,6 +2375,7 @@ class ApplicationsController extends Controller summary: 'Stop', description: 'Stop application. `Post` request is also accepted.', path: '/applications/{uuid}/stop', + operationId: 'stop-application-by-uuid', security: [ ['bearerAuth' => []], ], @@ -2431,6 +2448,7 @@ class ApplicationsController extends Controller summary: 'Restart', description: 'Restart application. `Post` request is also accepted.', path: '/applications/{uuid}/restart', + operationId: 'restart-application-by-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/DatabasesController.php b/app/Http/Controllers/Api/DatabasesController.php index 0f1ee00d8..a205704cc 100644 --- a/app/Http/Controllers/Api/DatabasesController.php +++ b/app/Http/Controllers/Api/DatabasesController.php @@ -46,6 +46,7 @@ class DatabasesController extends Controller summary: 'List', description: 'List all databases.', path: '/databases', + operationId: 'list-databases', security: [ ['bearerAuth' => []], ], @@ -91,6 +92,7 @@ class DatabasesController extends Controller summary: 'Get', description: 'Get database by UUID.', path: '/databases/{uuid}', + operationId: 'get-database-by-uuid', security: [ ['bearerAuth' => []], ], @@ -151,6 +153,7 @@ class DatabasesController extends Controller summary: 'Update', description: 'Update database by UUID.', path: '/databases/{uuid}', + operationId: 'update-database-by-uuid', security: [ ['bearerAuth' => []], ], @@ -510,6 +513,7 @@ class DatabasesController extends Controller summary: 'Create (PostgreSQL)', description: 'Create a new PostgreSQL database.', path: '/databases/postgresql', + operationId: 'create-database-postgresql', security: [ ['bearerAuth' => []], ], @@ -575,6 +579,7 @@ class DatabasesController extends Controller summary: 'Create (Clickhouse)', description: 'Create a new Clickhouse database.', path: '/databases/clickhouse', + operationId: 'create-database-clickhouse', security: [ ['bearerAuth' => []], ], @@ -636,6 +641,7 @@ class DatabasesController extends Controller summary: 'Create (DragonFly)', description: 'Create a new DragonFly database.', path: '/databases/dragonfly', + operationId: 'create-database-dragonfly', security: [ ['bearerAuth' => []], ], @@ -696,6 +702,7 @@ class DatabasesController extends Controller summary: 'Create (Redis)', description: 'Create a new Redis database.', path: '/databases/redis', + operationId: 'create-database-redis', security: [ ['bearerAuth' => []], ], @@ -757,6 +764,7 @@ class DatabasesController extends Controller summary: 'Create (KeyDB)', description: 'Create a new KeyDB database.', path: '/databases/keydb', + operationId: 'create-database-keydb', security: [ ['bearerAuth' => []], ], @@ -818,6 +826,7 @@ class DatabasesController extends Controller summary: 'Create (MariaDB)', description: 'Create a new MariaDB database.', path: '/databases/mariadb', + operationId: 'create-database-mariadb', security: [ ['bearerAuth' => []], ], @@ -882,6 +891,7 @@ class DatabasesController extends Controller summary: 'Create (MySQL)', description: 'Create a new MySQL database.', path: '/databases/mysql', + operationId: 'create-database-mysql', security: [ ['bearerAuth' => []], ], @@ -945,6 +955,7 @@ class DatabasesController extends Controller summary: 'Create (MongoDB)', description: 'Create a new MongoDB database.', path: '/databases/mongodb', + operationId: 'create-database-mongodb', security: [ ['bearerAuth' => []], ], @@ -1514,6 +1525,7 @@ class DatabasesController extends Controller summary: 'Delete', description: 'Delete database by UUID.', path: '/databases/{uuid}', + operationId: 'delete-database-by-uuid', security: [ ['bearerAuth' => []], ], @@ -1597,6 +1609,7 @@ class DatabasesController extends Controller summary: 'Start', description: 'Start database. `Post` request is also accepted.', path: '/databases/{uuid}/start', + operationId: 'start-database-by-uuid', security: [ ['bearerAuth' => []], ], @@ -1672,6 +1685,7 @@ class DatabasesController extends Controller summary: 'Stop', description: 'Stop database. `Post` request is also accepted.', path: '/databases/{uuid}/stop', + operationId: 'stop-database-by-uuid', security: [ ['bearerAuth' => []], ], @@ -1747,6 +1761,7 @@ class DatabasesController extends Controller summary: 'Restart', description: 'Restart database. `Post` request is also accepted.', path: '/databases/{uuid}/restart', + operationId: 'restart-database-by-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/DeployController.php b/app/Http/Controllers/Api/DeployController.php index 437162058..96f98d844 100644 --- a/app/Http/Controllers/Api/DeployController.php +++ b/app/Http/Controllers/Api/DeployController.php @@ -32,6 +32,7 @@ class DeployController extends Controller summary: 'List', description: 'List currently running deployments', path: '/deployments', + operationId: 'list-deployments', security: [ ['bearerAuth' => []], ], @@ -79,6 +80,7 @@ class DeployController extends Controller summary: 'Get', description: 'Get deployment by UUID.', path: '/deployments/{uuid}', + operationId: 'get-deployment-by-uuid', security: [ ['bearerAuth' => []], ], @@ -134,6 +136,7 @@ class DeployController extends Controller summary: 'Deploy', description: 'Deploy by tag or uuid. `Post` request also accepted.', path: '/deploy', + operationId: 'deploy-by-tag-or-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/OtherController.php b/app/Http/Controllers/Api/OtherController.php index 1e48ffdbe..c085b88a5 100644 --- a/app/Http/Controllers/Api/OtherController.php +++ b/app/Http/Controllers/Api/OtherController.php @@ -13,6 +13,7 @@ class OtherController extends Controller summary: 'Version', description: 'Get Coolify version.', path: '/version', + operationId: 'version', security: [ ['bearerAuth' => []], ], @@ -43,6 +44,7 @@ class OtherController extends Controller summary: 'Enable API', description: 'Enable API (only with root permissions).', path: '/enable', + operationId: 'enable-api', security: [ ['bearerAuth' => []], ], @@ -94,6 +96,7 @@ class OtherController extends Controller summary: 'Disable API', description: 'Disable API (only with root permissions).', path: '/disable', + operationId: 'disable-api', security: [ ['bearerAuth' => []], ], @@ -158,6 +161,7 @@ class OtherController extends Controller summary: 'Healthcheck', description: 'Healthcheck endpoint.', path: '/healthcheck', + operationId: 'healthcheck', responses: [ new OA\Response( response: 200, diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 6aec31e9b..4d7ef3920 100644 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -13,6 +13,7 @@ class ProjectController extends Controller summary: 'List', description: 'list projects.', path: '/projects', + operationId: 'list-projects', security: [ ['bearerAuth' => []], ], @@ -56,6 +57,7 @@ class ProjectController extends Controller summary: 'Get', description: 'Get project by Uuid.', path: '/projects/{uuid}', + operationId: 'get-project-by-uuid', security: [ ['bearerAuth' => []], ], @@ -102,6 +104,7 @@ class ProjectController extends Controller summary: 'Environment', description: 'Get environment by name.', path: '/projects/{uuid}/{environment_name}', + operationId: 'get-environment-by-name', security: [ ['bearerAuth' => []], ], @@ -155,6 +158,7 @@ class ProjectController extends Controller summary: 'Create', description: 'Create Project.', path: '/projects', + operationId: 'create-project', security: [ ['bearerAuth' => []], ], @@ -250,6 +254,7 @@ class ProjectController extends Controller summary: 'Update', description: 'Update Project.', path: '/projects/{uuid}', + operationId: 'update-project-by-uuid', security: [ ['bearerAuth' => []], ], @@ -355,6 +360,7 @@ class ProjectController extends Controller summary: 'Delete', description: 'Delete project by UUID.', path: '/projects/{uuid}', + operationId: 'delete-project-by-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/ResourcesController.php b/app/Http/Controllers/Api/ResourcesController.php index ae076bb71..1fd5792e0 100644 --- a/app/Http/Controllers/Api/ResourcesController.php +++ b/app/Http/Controllers/Api/ResourcesController.php @@ -13,6 +13,7 @@ class ResourcesController extends Controller summary: 'List', description: 'Get all resources.', path: '/resources', + operationId: 'list-resources', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/SecurityController.php b/app/Http/Controllers/Api/SecurityController.php index 67128234e..3a489f647 100644 --- a/app/Http/Controllers/Api/SecurityController.php +++ b/app/Http/Controllers/Api/SecurityController.php @@ -26,6 +26,7 @@ class SecurityController extends Controller summary: 'List', description: 'List all private keys.', path: '/security/keys', + operationId: 'list-private-keys', security: [ ['bearerAuth' => []], ], @@ -68,6 +69,7 @@ class SecurityController extends Controller summary: 'Get', description: 'Get key by UUID.', path: '/security/keys/{uuid}', + operationId: 'get-private-key-by-uuid', security: [ ['bearerAuth' => []], ], @@ -124,6 +126,7 @@ class SecurityController extends Controller summary: 'Create', description: 'Create a new private key.', path: '/security/keys', + operationId: 'create-private-key', security: [ ['bearerAuth' => []], ], @@ -217,6 +220,7 @@ class SecurityController extends Controller summary: 'Update', description: 'Update a private key.', path: '/security/keys', + operationId: 'update-private-key', security: [ ['bearerAuth' => []], ], @@ -313,6 +317,7 @@ class SecurityController extends Controller summary: 'Delete', description: 'Delete a private key.', path: '/security/keys/{uuid}', + operationId: 'delete-private-key-by-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/ServersController.php b/app/Http/Controllers/Api/ServersController.php index 9044c4a35..e2bde52f7 100644 --- a/app/Http/Controllers/Api/ServersController.php +++ b/app/Http/Controllers/Api/ServersController.php @@ -46,6 +46,7 @@ class ServersController extends Controller summary: 'List', description: 'List all servers.', path: '/servers', + operationId: 'list-servers', security: [ ['bearerAuth' => []], ], @@ -100,6 +101,7 @@ class ServersController extends Controller summary: 'Get', description: 'Get server by UUID.', path: '/servers/{uuid}', + operationId: 'get-server-by-uuid', security: [ ['bearerAuth' => []], ], @@ -177,6 +179,7 @@ class ServersController extends Controller summary: 'Resources', description: 'Get resources by server.', path: '/servers/{uuid}/resources', + operationId: 'get-resources-by-server-uuid', security: [ ['bearerAuth' => []], ], @@ -254,6 +257,7 @@ class ServersController extends Controller summary: 'Domains', description: 'Get domains by server.', path: '/servers/{uuid}/domains', + operationId: 'get-domains-by-server-uuid', security: [ ['bearerAuth' => []], ], @@ -401,6 +405,7 @@ class ServersController extends Controller summary: 'Create', description: 'Create Server.', path: '/servers', + operationId: 'create-server', security: [ ['bearerAuth' => []], ], @@ -545,6 +550,7 @@ class ServersController extends Controller summary: 'Update', description: 'Update Server.', path: '/servers/{uuid}', + operationId: 'update-server-by-uuid', security: [ ['bearerAuth' => []], ], @@ -655,6 +661,7 @@ class ServersController extends Controller summary: 'Delete', description: 'Delete server by UUID.', path: '/servers/{uuid}', + operationId: 'delete-server-by-uuid', security: [ ['bearerAuth' => []], ], @@ -727,6 +734,7 @@ class ServersController extends Controller summary: 'Validate', description: 'Validate server by UUID.', path: '/servers/{uuid}/validate', + operationId: 'validate-server-by-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/ServicesController.php b/app/Http/Controllers/Api/ServicesController.php index 3a5b59f55..c39778698 100644 --- a/app/Http/Controllers/Api/ServicesController.php +++ b/app/Http/Controllers/Api/ServicesController.php @@ -38,6 +38,7 @@ class ServicesController extends Controller summary: 'List', description: 'List all services.', path: '/services', + operationId: 'list-services', security: [ ['bearerAuth' => []], ], @@ -88,6 +89,7 @@ class ServicesController extends Controller summary: 'Create', description: 'Create a one-click service', path: '/services', + operationId: 'create-service', security: [ ['bearerAuth' => []], ], @@ -365,6 +367,7 @@ class ServicesController extends Controller summary: 'Get', description: 'Get service by UUID.', path: '/services/{uuid}', + operationId: 'get-service-by-uuid', security: [ ['bearerAuth' => []], ], @@ -422,6 +425,7 @@ class ServicesController extends Controller summary: 'Delete', description: 'Delete service by UUID.', path: '/services/{uuid}', + operationId: 'delete-service-by-uuid', security: [ ['bearerAuth' => []], ], @@ -483,6 +487,7 @@ class ServicesController extends Controller summary: 'Start', description: 'Start service. `Post` request is also accepted.', path: '/services/{uuid}/start', + operationId: 'start-service-by-uuid', security: [ ['bearerAuth' => []], ], @@ -558,6 +563,7 @@ class ServicesController extends Controller summary: 'Stop', description: 'Stop service. `Post` request is also accepted.', path: '/services/{uuid}/stop', + operationId: 'stop-service-by-uuid', security: [ ['bearerAuth' => []], ], @@ -633,6 +639,7 @@ class ServicesController extends Controller summary: 'Restart', description: 'Restart service. `Post` request is also accepted.', path: '/services/{uuid}/restart', + operationId: 'restart-service-by-uuid', security: [ ['bearerAuth' => []], ], diff --git a/app/Http/Controllers/Api/TeamController.php b/app/Http/Controllers/Api/TeamController.php index 1a481e5ec..3f951c6f7 100644 --- a/app/Http/Controllers/Api/TeamController.php +++ b/app/Http/Controllers/Api/TeamController.php @@ -32,6 +32,7 @@ class TeamController extends Controller summary: 'List', description: 'Get all teams.', path: '/teams', + operationId: 'list-teams', security: [ ['bearerAuth' => []], ], @@ -79,6 +80,7 @@ class TeamController extends Controller summary: 'Get', description: 'Get team by TeamId.', path: '/teams/{id}', + operationId: 'get-team-by-id', security: [ ['bearerAuth' => []], ], @@ -129,6 +131,7 @@ class TeamController extends Controller summary: 'Members', description: 'Get members by TeamId.', path: '/teams/{id}/members', + operationId: 'get-members-by-team-id', security: [ ['bearerAuth' => []], ], @@ -189,6 +192,7 @@ class TeamController extends Controller summary: 'Authenticated Team', description: 'Get currently authenticated team.', path: '/teams/current', + operationId: 'get-current-team', security: [ ['bearerAuth' => []], ], @@ -225,6 +229,7 @@ class TeamController extends Controller summary: 'Authenticated Team Members', description: 'Get currently authenticated team members.', path: '/teams/current/members', + operationId: 'get-current-team-members', security: [ ['bearerAuth' => []], ], diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php index 1ab6e5543..508164afe 100644 --- a/app/Jobs/ApplicationDeploymentJob.php +++ b/app/Jobs/ApplicationDeploymentJob.php @@ -109,7 +109,7 @@ class ApplicationDeploymentJob implements ShouldBeEncrypted, ShouldQueue private bool $is_debug_enabled; - private $build_args; + private Collection|string $build_args; private $env_args; @@ -168,6 +168,7 @@ class ApplicationDeploymentJob implements ShouldBeEncrypted, ShouldQueue $this->application_deployment_queue = ApplicationDeploymentQueue::find($application_deployment_queue_id); $this->application = Application::find($this->application_deployment_queue->application_id); $this->build_pack = data_get($this->application, 'build_pack'); + $this->build_args = collect([]); $this->application_deployment_queue_id = $application_deployment_queue_id; $this->deployment_uuid = $this->application_deployment_queue->deployment_uuid; diff --git a/app/Livewire/Project/New/PublicGitRepository.php b/app/Livewire/Project/New/PublicGitRepository.php index b29fe8cab..b5c5cb1db 100644 --- a/app/Livewire/Project/New/PublicGitRepository.php +++ b/app/Livewire/Project/New/PublicGitRepository.php @@ -99,6 +99,16 @@ class PublicGitRepository extends Component } } + public function updatedDockerComposeLocation() + { + if ($this->docker_compose_location) { + $this->docker_compose_location = rtrim($this->docker_compose_location, '/'); + if (! str($this->docker_compose_location)->startsWith('/')) { + $this->docker_compose_location = '/'.$this->docker_compose_location; + } + } + } + public function updatedBuildPack() { if ($this->build_pack === 'nixpacks') { diff --git a/app/Livewire/Project/Service/EditCompose.php b/app/Livewire/Project/Service/EditCompose.php index 3d0ad4e0b..dc043e65a 100644 --- a/app/Livewire/Project/Service/EditCompose.php +++ b/app/Livewire/Project/Service/EditCompose.php @@ -43,6 +43,7 @@ class EditCompose extends Component { $this->dispatch('info', 'Saving new docker compose...'); $this->dispatch('saveCompose', $this->service->docker_compose_raw); + $this->dispatch('refreshStorages'); } public function instantSave() diff --git a/app/Livewire/Project/Shared/EnvironmentVariable/All.php b/app/Livewire/Project/Shared/EnvironmentVariable/All.php index 4c79eb3a2..055788b57 100644 --- a/app/Livewire/Project/Shared/EnvironmentVariable/All.php +++ b/app/Livewire/Project/Shared/EnvironmentVariable/All.php @@ -24,6 +24,7 @@ class All extends Component protected $listeners = [ 'saveKey' => 'submit', + 'refreshEnvs', 'environmentVariableDeleted' => 'refreshEnvs', ]; @@ -61,7 +62,7 @@ class All extends Component $sortBy = data_get($this->resource, 'settings.is_env_sorting_enabled') ? 'key' : 'order'; $sortFunction = function ($variables) use ($sortBy) { - if (!$variables) { + if (! $variables) { return $variables; } if ($sortBy === 'key') { diff --git a/app/Livewire/Project/Shared/EnvironmentVariable/Show.php b/app/Livewire/Project/Shared/EnvironmentVariable/Show.php index cbc4314f0..463ceecad 100644 --- a/app/Livewire/Project/Shared/EnvironmentVariable/Show.php +++ b/app/Livewire/Project/Shared/EnvironmentVariable/Show.php @@ -136,4 +136,4 @@ class Show extends Component return handleError($e); } } -} \ No newline at end of file +} diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php index 7ef02fff9..cc5c13407 100644 --- a/bootstrap/helpers/shared.php +++ b/bootstrap/helpers/shared.php @@ -3092,10 +3092,9 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int $topLevel->get('volumes')->put($name, [ 'name' => $name, ]); - LocalPersistentVolume::updateOrCreate( [ - 'mount_path' => $target, + 'name' => $name, 'resource_id' => $originalResource->id, 'resource_type' => get_class($originalResource), ], @@ -3332,7 +3331,10 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int foreach ($normalEnvironments as $key => $value) { $key = str($key); $value = str($value); - if ($value->startsWith('$')) { + if ($value->startsWith('$') || $value->contains('${')) { + if ($value->contains('${')) { + $value = $value->after('${')->before('}'); + } $value = str(replaceVariables(str($value))); if ($value->contains(':-')) { $key = $value->before(':'); @@ -3639,37 +3641,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 54e39e887..84d1a8708 100644 --- a/config/sentry.php +++ b/config/sentry.php @@ -7,7 +7,7 @@ return [ // 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.326', + 'release' => '4.0.0-beta.330', // 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 f567ea5da..58ac0af61 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@ + + + + + + + + + + + + + + + + + diff --git a/other/logos/saasykit.png b/other/logos/saasykit.png new file mode 100644 index 000000000..27013eadd Binary files /dev/null and b/other/logos/saasykit.png differ diff --git a/other/logos/saasykit.webp b/other/logos/saasykit.webp new file mode 100644 index 000000000..0d1085e6c Binary files /dev/null and b/other/logos/saasykit.webp differ diff --git a/other/logos/ubicloud.svg b/other/logos/ubicloud.svg new file mode 100644 index 000000000..3613858ca --- /dev/null +++ b/other/logos/ubicloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/livewire/project/new/public-git-repository.blade.php b/resources/views/livewire/project/new/public-git-repository.blade.php index 01cd67575..cef6cffaf 100644 --- a/resources/views/livewire/project/new/public-git-repository.blade.php +++ b/resources/views/livewire/project/new/public-git-repository.blade.php @@ -4,7 +4,7 @@
-
+
@@ -47,7 +47,7 @@ @if ($build_pack === 'dockercompose') - Compose file location in your repository: