diff --git a/.env.development.example b/.env.development.example
index e73b8c1dd..506448d38 100644
--- a/.env.development.example
+++ b/.env.development.example
@@ -13,4 +13,6 @@ APP_DEBUG=true
APP_URL=http://localhost
APP_PORT=8000
+DEV_CONFIG_PATH=/home/andrasbacsai/devel/coolify/_data/coolify
+
DUSK_DRIVER_URL=http://selenium:4444
diff --git a/app/Actions/Proxy/CheckConfigurationSync.php b/app/Actions/Proxy/CheckConfigurationSync.php
new file mode 100644
index 000000000..3648aa388
--- /dev/null
+++ b/app/Actions/Proxy/CheckConfigurationSync.php
@@ -0,0 +1,28 @@
+trim()->value;
+ resolve(SaveConfigurationSync::class)($server, $proxy_configuration);
+ return $proxy_configuration;
+ }
+
+ return $proxy_configuration;
+ }
+
+}
\ No newline at end of file
diff --git a/app/Actions/Proxy/CheckProxySettingsInSync.php b/app/Actions/Proxy/CheckProxySettingsInSync.php
deleted file mode 100644
index ae0142fec..000000000
--- a/app/Actions/Proxy/CheckProxySettingsInSync.php
+++ /dev/null
@@ -1,33 +0,0 @@
-trim()->value;
- } else {
- $final_output = Str::of($output)->trim()->value;
- }
- $docker_compose_yml_base64 = base64_encode($final_output);
- $server->proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
- $server->save();
- if (is_null($output) || $reset) {
- instant_remote_process([
- "mkdir -p $proxy_path",
- "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml",
- ], $server);
- }
- return $final_output;
- }
-}
diff --git a/app/Actions/Proxy/SaveConfigurationSync.php b/app/Actions/Proxy/SaveConfigurationSync.php
new file mode 100644
index 000000000..f4c009079
--- /dev/null
+++ b/app/Actions/Proxy/SaveConfigurationSync.php
@@ -0,0 +1,23 @@
+proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
+ $server->save();
+
+ instant_remote_process([
+ "mkdir -p $proxy_path",
+ "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml",
+ ], $server);
+ }
+}
\ No newline at end of file
diff --git a/app/Actions/Proxy/StartProxy.php b/app/Actions/Proxy/StartProxy.php
index 5e1c79aee..cea5a2166 100644
--- a/app/Actions/Proxy/StartProxy.php
+++ b/app/Actions/Proxy/StartProxy.php
@@ -2,6 +2,7 @@
namespace App\Actions\Proxy;
+use App\Actions\Proxy\CheckConfigurationSync;
use App\Enums\ProxyStatus;
use App\Enums\ProxyTypes;
use App\Models\Server;
@@ -18,8 +19,7 @@ class StartProxy
$server->proxy->status = ProxyStatus::EXITED->value;
$server->save();
}
- $proxy_path = config('coolify.proxy_config_path');
-
+ $proxy_path = get_proxy_path();
$networks = collect($server->standaloneDockers)->map(function ($docker) {
return $docker['network'];
})->unique();
@@ -30,23 +30,16 @@ class StartProxy
return "docker network ls --format '{{.Name}}' | grep '^$network$' >/dev/null 2>&1 || docker network create --attachable $network > /dev/null 2>&1";
});
- $configuration = instant_remote_process([
- "cat $proxy_path/docker-compose.yml",
- ], $server, false);
- if (is_null($configuration)) {
- $configuration = Str::of(getProxyConfiguration($server))->trim()->value;
- } else {
- $configuration = Str::of($configuration)->trim()->value;
- }
+ $configuration = resolve(CheckConfigurationSync::class)($server);
+
$docker_compose_yml_base64 = base64_encode($configuration);
$server->proxy->last_applied_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
$server->save();
+
$activity = remote_process([
"echo 'Creating required Docker networks...'",
...$create_networks_command,
- "mkdir -p $proxy_path",
"cd $proxy_path",
- "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml",
"echo 'Creating Docker Compose file...'",
"echo 'Pulling docker image...'",
'docker compose pull -q',
diff --git a/app/Http/Livewire/Server/Proxy.php b/app/Http/Livewire/Server/Proxy.php
index d38eaa76d..4e8680419 100644
--- a/app/Http/Livewire/Server/Proxy.php
+++ b/app/Http/Livewire/Server/Proxy.php
@@ -2,7 +2,8 @@
namespace App\Http\Livewire\Server;
-use App\Actions\Proxy\CheckProxySettingsInSync;
+use App\Actions\Proxy\CheckConfigurationSync;
+use App\Actions\Proxy\SaveConfigurationSync;
use App\Enums\ProxyTypes;
use Illuminate\Support\Str;
use App\Models\Server;
@@ -16,7 +17,7 @@ class Proxy extends Component
public $proxy_settings = null;
public string|null $redirect_url = null;
- protected $listeners = ['proxyStatusUpdated', 'saveConfiguration'];
+ protected $listeners = ['proxyStatusUpdated', 'saveConfiguration'=>'submit'];
public function mount()
{
$this->redirect_url = $this->server->proxy->redirect_url;
@@ -41,17 +42,11 @@ class Proxy extends Component
public function submit()
{
try {
- $proxy_path = config('coolify.proxy_config_path');
- $this->proxy_settings = Str::of($this->proxy_settings)->trim()->value;
- $docker_compose_yml_base64 = base64_encode($this->proxy_settings);
- $this->server->proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
+ resolve(SaveConfigurationSync::class)($this->server, $this->proxy_settings);
+
$this->server->proxy->redirect_url = $this->redirect_url;
$this->server->save();
- instant_remote_process([
- "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml",
- ], $this->server);
- $this->server->refresh();
setup_default_redirect_404(redirect_url: $this->server->proxy->redirect_url, server: $this->server);
$this->emit('success', 'Proxy configuration saved.');
} catch (\Exception $e) {
@@ -61,7 +56,7 @@ class Proxy extends Component
public function reset_proxy_configuration()
{
try {
- $this->proxy_settings = resolve(CheckProxySettingsInSync::class)($this->server, true);
+ $this->proxy_settings = resolve(CheckConfigurationSync::class)($this->server, true);
} catch (\Exception $e) {
return general_error_handler(err: $e);
}
@@ -69,7 +64,7 @@ class Proxy extends Component
public function load_proxy_configuration()
{
try {
- $this->proxy_settings = resolve(CheckProxySettingsInSync::class)($this->server);
+ $this->proxy_settings = resolve(CheckConfigurationSync::class)($this->server);
} catch (\Exception $e) {
return general_error_handler(err: $e);
}
diff --git a/bootstrap/helpers/proxy.php b/bootstrap/helpers/proxy.php
index 10ecc10d8..9d2cc7e45 100644
--- a/bootstrap/helpers/proxy.php
+++ b/bootstrap/helpers/proxy.php
@@ -2,13 +2,19 @@
use App\Models\Server;
use Spatie\Url\Url;
+use Illuminate\Support\Str;
use Symfony\Component\Yaml\Yaml;
-function getProxyConfiguration(Server $server)
+function get_proxy_path() {
+ $base_path = config('coolify.base_config_path');
+ $proxy_path = "$base_path/proxy";
+ return $proxy_path;
+}
+function generate_default_proxy_configuration(Server $server)
{
- $proxy_path = config('coolify.proxy_config_path');
+ $proxy_path = get_proxy_path();
if (isDev()) {
- $proxy_path = $proxy_path . '/testing-host-1/';
+ $proxy_path = config('coolify.dev_config_path') . '/' . $server->name . '/proxy';
}
$networks = collect($server->standaloneDockers)->map(function ($docker) {
return $docker['network'];
@@ -53,7 +59,7 @@ function getProxyConfiguration(Server $server)
"--ping=true",
"--ping.entrypoint=http",
"--api.dashboard=true",
- "--api.insecure=true",
+ "--api.insecure=false",
"--entrypoints.http.address=:80",
"--entrypoints.https.address=:443",
"--entrypoints.http.http.encodequerysemicolons=true",
@@ -86,8 +92,10 @@ function getProxyConfiguration(Server $server)
}
function setup_default_redirect_404(string|null $redirect_url, Server $server)
{
- $traefik_dynamic_conf_path = '/data/coolify/proxy/dynamic';
+ ray('called');
+ $traefik_dynamic_conf_path = get_proxy_path() . "/dynamic";
$traefik_default_redirect_file = "$traefik_dynamic_conf_path/default_redirect_404.yaml";
+ ray($redirect_url);
if (empty($redirect_url)) {
remote_process([
"rm -f $traefik_default_redirect_file",
@@ -159,4 +167,4 @@ function setup_default_redirect_404(string|null $redirect_url, Server $server)
ray($yaml);
}
}
-}
+}
\ No newline at end of file
diff --git a/config/coolify.php b/config/coolify.php
index aed7555ab..459fefcc6 100644
--- a/config/coolify.php
+++ b/config/coolify.php
@@ -10,5 +10,5 @@ return [
'mux_enabled' => env('MUX_ENABLED', true),
'dev_webhook' => env('SERVEO_URL'),
'base_config_path' => env('BASE_CONFIG_PATH', '/data/coolify'),
- 'proxy_config_path' => env('BASE_CONFIG_PATH', '/data/coolify') . "/proxy",
+ 'dev_config_path' => env('DEV_CONFIG_PATH', './_data/coolify'),
];
diff --git a/config/proxy.php b/config/proxy.php
deleted file mode 100644
index 3b5832666..000000000
--- a/config/proxy.php
+++ /dev/null
@@ -1,5 +0,0 @@
- env('PROJECT_PATH_ON_HOST', '/var/www/html')
-];
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index 41043aaa0..752787831 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -1,7 +1,6 @@
-version: '3.8'
+version: "3.8"
-x-testing-host:
- &testing-host-base
+x-testing-host: &testing-host-base
build:
dockerfile: Dockerfile
context: ./docker/testing-host
@@ -55,19 +54,19 @@ services:
container_name: coolify-testing-host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- - "./_data/coolify/proxy/testing-host-1:/data/coolify/proxy"
+ - "./_data/coolify/testing-local-docker-container/proxy:/data/coolify/proxy"
testing-host-2:
<<: *testing-host-base
container_name: coolify-testing-host-2
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- - "./_data/coolify/proxy/testing-host-2:/data/coolify/proxy"
+ - "./_data/coolify/testing-local-docker-container-2/proxy:/data/coolify/proxy"
mailpit:
- image: 'axllent/mailpit:latest'
+ image: "axllent/mailpit:latest"
container_name: coolify-mail
ports:
- - '${FORWARD_MAILPIT_PORT:-1025}:1025'
- - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
+ - "${FORWARD_MAILPIT_PORT:-1025}:1025"
+ - "${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025"
networks:
- coolify
diff --git a/resources/views/livewire/server/proxy.blade.php b/resources/views/livewire/server/proxy.blade.php
index 4859b3a29..11b277663 100644
--- a/resources/views/livewire/server/proxy.blade.php
+++ b/resources/views/livewire/server/proxy.blade.php
@@ -12,13 +12,12 @@
@endif