Update contact links in error and subscription views
This commit is contained in:
parent
27c1bda09b
commit
f8c19e1fb3
@ -120,7 +120,7 @@ function generateSshCommand(Server $server, string $command, bool $isMux = true)
|
|||||||
$delimiter = 'EOF-COOLIFY-SSH';
|
$delimiter = 'EOF-COOLIFY-SSH';
|
||||||
$ssh_command = "timeout $timeout ssh ";
|
$ssh_command = "timeout $timeout ssh ";
|
||||||
|
|
||||||
if ($isMux && config('coolify.mux_enabled')) {
|
if ($isMux && config('coolify.mux_enabled') === true && config('coolify.is_windows_docker_desktop') === false) {
|
||||||
$ssh_command .= '-o ControlMaster=auto -o ControlPersist=1m -o ControlPath=/var/www/html/storage/app/ssh/mux/%h_%p_%r ';
|
$ssh_command .= '-o ControlMaster=auto -o ControlPersist=1m -o ControlPath=/var/www/html/storage/app/ssh/mux/%h_%p_%r ';
|
||||||
}
|
}
|
||||||
if (data_get($server, 'settings.is_cloudflare_tunnel')) {
|
if (data_get($server, 'settings.is_cloudflare_tunnel')) {
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'docs' => 'https://coolify.io/docs/contact',
|
'docs' => 'https://coolify.io/docs/',
|
||||||
|
'contact' => 'https://coolify.io/docs/contact',
|
||||||
'self_hosted' => env('SELF_HOSTED', true),
|
'self_hosted' => env('SELF_HOSTED', true),
|
||||||
'waitlist' => env('WAITLIST', false),
|
'waitlist' => env('WAITLIST', false),
|
||||||
'license_url' => 'https://licenses.coollabs.io',
|
'license_url' => 'https://licenses.coollabs.io',
|
||||||
'mux_enabled' => env('MUX_ENABLED', true),
|
'mux_enabled' => env('MUX_ENABLED', true),
|
||||||
'dev_webhook' => env('SERVEO_URL'),
|
'dev_webhook' => env('SERVEO_URL'),
|
||||||
|
'is_windows_docker_desktop' => env('IS_WINDOWS_DOCKER_DESKTOP', false),
|
||||||
'base_config_path' => env('BASE_CONFIG_PATH', '/data/coolify'),
|
'base_config_path' => env('BASE_CONFIG_PATH', '/data/coolify'),
|
||||||
'helper_image' => env('HELPER_IMAGE', 'ghcr.io/coollabsio/coolify-helper:latest'),
|
'helper_image' => env('HELPER_IMAGE', 'ghcr.io/coollabsio/coolify-helper:latest'),
|
||||||
];
|
];
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
use App\Models\Team;
|
use App\Models\Team;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Facades\Artisan;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Process;
|
use Illuminate\Support\Facades\Process;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
@ -67,7 +66,7 @@ public function run(): void
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isCloud()) {
|
if (!isCloud() && config('coolify.is_windows_docker_desktop') === false) {
|
||||||
// Save SSH Keys for the Coolify Host
|
// Save SSH Keys for the Coolify Host
|
||||||
$coolify_key_name = "id.root@host.docker.internal";
|
$coolify_key_name = "id.root@host.docker.internal";
|
||||||
$coolify_key = Storage::disk('ssh-keys')->get("{$coolify_key_name}");
|
$coolify_key = Storage::disk('ssh-keys')->get("{$coolify_key_name}");
|
||||||
@ -123,6 +122,59 @@ public function run(): void
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (config('coolify.is_windows_docker_desktop')) {
|
||||||
|
PrivateKey::updateOrCreate(
|
||||||
|
[
|
||||||
|
'id' => 0,
|
||||||
|
'team_id' => 0,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"name" => "Testing-host",
|
||||||
|
"description" => "This is a a docker container with SSH access",
|
||||||
|
"private_key" => "-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||||
|
QyNTUxOQAAACBbhpqHhqv6aI67Mj9abM3DVbmcfYhZAhC7ca4d9UCevAAAAJi/QySHv0Mk
|
||||||
|
hwAAAAtzc2gtZWQyNTUxOQAAACBbhpqHhqv6aI67Mj9abM3DVbmcfYhZAhC7ca4d9UCevA
|
||||||
|
AAAECBQw4jg1WRT2IGHMncCiZhURCts2s24HoDS0thHnnRKVuGmoeGq/pojrsyP1pszcNV
|
||||||
|
uZx9iFkCELtxrh31QJ68AAAAEXNhaWxANzZmZjY2ZDJlMmRkAQIDBA==
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
||||||
|
"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
if (Server::find(0) == null) {
|
||||||
|
$server_details = [
|
||||||
|
'id' => 0,
|
||||||
|
'uuid' => 'coolify-testing-host',
|
||||||
|
'name' => "localhost",
|
||||||
|
'description' => "This is the server where Coolify is running on. Don't delete this!",
|
||||||
|
'user' => 'root',
|
||||||
|
'ip' => "coolify-testing-host",
|
||||||
|
'team_id' => 0,
|
||||||
|
'private_key_id' => 0
|
||||||
|
];
|
||||||
|
$server_details['proxy'] = ServerMetadata::from([
|
||||||
|
'type' => ProxyTypes::TRAEFIK_V2->value,
|
||||||
|
'status' => ProxyStatus::EXITED->value
|
||||||
|
]);
|
||||||
|
$server = Server::create($server_details);
|
||||||
|
$server->settings->is_reachable = true;
|
||||||
|
$server->settings->is_usable = true;
|
||||||
|
$server->settings->save();
|
||||||
|
} else {
|
||||||
|
$server = Server::find(0);
|
||||||
|
$server->settings->is_reachable = true;
|
||||||
|
$server->settings->is_usable = true;
|
||||||
|
$server->settings->save();
|
||||||
|
}
|
||||||
|
if (StandaloneDocker::find(0) == null) {
|
||||||
|
StandaloneDocker::create([
|
||||||
|
'id' => 0,
|
||||||
|
'name' => 'localhost-coolify',
|
||||||
|
'network' => 'coolify',
|
||||||
|
'server_id' => 0,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$settings = InstanceSettings::get();
|
$settings = InstanceSettings::get();
|
||||||
|
116
docker-compose.windows.yml
Normal file
116
docker-compose.windows.yml
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
coolify-testing-host:
|
||||||
|
init: true
|
||||||
|
build:
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: coolify-testing-host
|
||||||
|
volumes:
|
||||||
|
- //var/run/docker.sock://var/run/docker.sock
|
||||||
|
- ./:/data/coolify
|
||||||
|
coolify:
|
||||||
|
image: "ghcr.io/coollabsio/coolify:${LATEST_IMAGE:-4.0.0-beta.199}"
|
||||||
|
container_name: coolify
|
||||||
|
restart: always
|
||||||
|
working_dir: /var/www/html
|
||||||
|
extra_hosts:
|
||||||
|
- 'host.docker.internal:host-gateway'
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ./.env
|
||||||
|
target: /var/www/html/.env
|
||||||
|
read_only: true
|
||||||
|
- ./ssh:/var/www/html/storage/app/ssh
|
||||||
|
- ./applications:/var/www/html/storage/app/applications
|
||||||
|
- ./databases:/var/www/html/storage/app/databases
|
||||||
|
- ./services:/var/www/html/storage/app/services
|
||||||
|
- ./backups:/var/www/html/storage/app/backups
|
||||||
|
environment:
|
||||||
|
- IS_WINDOWS_DOCKER_DESKTOP=true
|
||||||
|
- APP_ID
|
||||||
|
- APP_ENV=production
|
||||||
|
- APP_NAME
|
||||||
|
- APP_KEY
|
||||||
|
- DB_PASSWORD
|
||||||
|
- REDIS_PASSWORD
|
||||||
|
- SSL_MODE=off
|
||||||
|
- PHP_PM_CONTROL=dynamic
|
||||||
|
- PHP_PM_START_SERVERS=1
|
||||||
|
- PHP_PM_MIN_SPARE_SERVERS=1
|
||||||
|
- PHP_PM_MAX_SPARE_SERVERS=10
|
||||||
|
- PUSHER_APP_ID
|
||||||
|
- PUSHER_APP_KEY
|
||||||
|
- PUSHER_APP_SECRET
|
||||||
|
- AUTOUPDATE=true
|
||||||
|
- SELF_HOSTED=true
|
||||||
|
- MUX_ENABLED=false
|
||||||
|
ports:
|
||||||
|
- "${APP_PORT:-8000}:80"
|
||||||
|
expose:
|
||||||
|
- "${APP_PORT:-8000}"
|
||||||
|
healthcheck:
|
||||||
|
test: curl --fail http://localhost:80/api/health || exit 1
|
||||||
|
interval: 5s
|
||||||
|
retries: 10
|
||||||
|
timeout: 2s
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
postgres:
|
||||||
|
image: postgres:15-alpine
|
||||||
|
container_name: coolify-db
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- coolify-db:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: "${DB_USERNAME:-coolify}"
|
||||||
|
POSTGRES_PASSWORD: "${DB_PASSWORD}"
|
||||||
|
POSTGRES_DB: "${DB_DATABASE:-coolify}"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"pg_isready -U ${DB_USERNAME:-coolify}",
|
||||||
|
"-d",
|
||||||
|
"${DB_DATABASE:-coolify}"
|
||||||
|
]
|
||||||
|
interval: 5s
|
||||||
|
retries: 10
|
||||||
|
timeout: 2s
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
container_name: coolify-redis
|
||||||
|
restart: always
|
||||||
|
command: redis-server --save 20 1 --loglevel warning --requirepass ${REDIS_PASSWORD}
|
||||||
|
environment:
|
||||||
|
REDIS_PASSWORD: "${REDIS_PASSWORD}"
|
||||||
|
volumes:
|
||||||
|
- coolify-redis:/data
|
||||||
|
healthcheck:
|
||||||
|
test: redis-cli ping
|
||||||
|
interval: 5s
|
||||||
|
retries: 10
|
||||||
|
timeout: 2s
|
||||||
|
soketi:
|
||||||
|
image: 'quay.io/soketi/soketi:1.6-16-alpine'
|
||||||
|
container_name: coolify-realtime
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "${SOKETI_PORT:-6001}:6001"
|
||||||
|
environment:
|
||||||
|
SOKETI_DEBUG: "${SOKETI_DEBUG:-false}"
|
||||||
|
SOKETI_DEFAULT_APP_ID: "${PUSHER_APP_ID}"
|
||||||
|
SOKETI_DEFAULT_APP_KEY: "${PUSHER_APP_KEY}"
|
||||||
|
SOKETI_DEFAULT_APP_SECRET: "${PUSHER_APP_SECRET}"
|
||||||
|
healthcheck:
|
||||||
|
test: wget -qO- http://localhost:6001/ready || exit 1
|
||||||
|
interval: 5s
|
||||||
|
retries: 10
|
||||||
|
timeout: 2s
|
||||||
|
volumes:
|
||||||
|
coolify-db:
|
||||||
|
name: coolify-db
|
||||||
|
coolify-redis:
|
||||||
|
name: coolify-redis
|
@ -258,7 +258,7 @@ class="grid max-w-sm grid-cols-1 -mt-16 divide-y divide-coolgray-500 isolate gap
|
|||||||
<div class="flex items-start gap-4 text-xl tracking-tight">Need official support for
|
<div class="flex items-start gap-4 text-xl tracking-tight">Need official support for
|
||||||
your self-hosted instance?
|
your self-hosted instance?
|
||||||
<x-forms.button>
|
<x-forms.button>
|
||||||
<a class="font-bold text-white hover:no-underline" href="{{ config('coolify.docs') }}">Contact
|
<a class="font-bold text-white hover:no-underline" href="{{ config('coolify.contact') }}">Contact
|
||||||
Us</a>
|
Us</a>
|
||||||
</x-forms.button>
|
</x-forms.button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<a href="/">
|
<a href="/">
|
||||||
<x-forms.button>Go back home</x-forms.button>
|
<x-forms.button>Go back home</x-forms.button>
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank" class="text-xs" href="{{ config('coolify.docs') }}">Contact
|
<a target="_blank" class="text-xs" href="{{ config('coolify.contact') }}">Contact
|
||||||
support
|
support
|
||||||
<x-external-link />
|
<x-external-link />
|
||||||
</a>
|
</a>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<a href="/">
|
<a href="/">
|
||||||
<x-forms.button>Go back home</x-forms.button>
|
<x-forms.button>Go back home</x-forms.button>
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank" class="text-xs" href="{{ config('coolify.docs') }}">Contact
|
<a target="_blank" class="text-xs" href="{{ config('coolify.contact') }}">Contact
|
||||||
support
|
support
|
||||||
<x-external-link />
|
<x-external-link />
|
||||||
</a>
|
</a>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<a href="/">
|
<a href="/">
|
||||||
<x-forms.button>Go back home</x-forms.button>
|
<x-forms.button>Go back home</x-forms.button>
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank" class="text-xs" href="{{ config('coolify.docs') }}">Contact
|
<a target="_blank" class="text-xs" href="{{ config('coolify.contact') }}">Contact
|
||||||
support
|
support
|
||||||
<x-external-link />
|
<x-external-link />
|
||||||
</a>
|
</a>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<a href="/">
|
<a href="/">
|
||||||
<x-forms.button>Go back home</x-forms.button>
|
<x-forms.button>Go back home</x-forms.button>
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ config('coolify.docs') }}" class="font-semibold text-white ">Contact
|
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white ">Contact
|
||||||
support
|
support
|
||||||
<span aria-hidden="true">→</span></a>
|
<span aria-hidden="true">→</span></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<a href="/">
|
<a href="/">
|
||||||
<x-forms.button>Go back home</x-forms.button>
|
<x-forms.button>Go back home</x-forms.button>
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ config('coolify.docs') }}" class="font-semibold text-white ">Contact
|
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white ">Contact
|
||||||
support
|
support
|
||||||
<span aria-hidden="true">→</span></a>
|
<span aria-hidden="true">→</span></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<a href="/">
|
<a href="/">
|
||||||
<x-forms.button>Go back home</x-forms.button>
|
<x-forms.button>Go back home</x-forms.button>
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ config('coolify.docs') }}" class="font-semibold text-white">Contact
|
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white">Contact
|
||||||
support
|
support
|
||||||
<span aria-hidden="true">→</span></a>
|
<span aria-hidden="true">→</span></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
patience.
|
patience.
|
||||||
</p>
|
</p>
|
||||||
<div class="flex items-center justify-center mt-10 gap-x-6">
|
<div class="flex items-center justify-center mt-10 gap-x-6">
|
||||||
<a href="{{ config('coolify.docs') }}" class="font-semibold text-white ">Contact
|
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white ">Contact
|
||||||
support
|
support
|
||||||
<span aria-hidden="true">→</span></a>
|
<span aria-hidden="true">→</span></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
again</x-forms.button></a>
|
again</x-forms.button></a>
|
||||||
@endif
|
@endif
|
||||||
<div>To update your subscription (upgrade / downgrade), please <a class="text-white underline"
|
<div>To update your subscription (upgrade / downgrade), please <a class="text-white underline"
|
||||||
href="{{ config('coolify.docs') }}" target="_blank">contact us.</a></div>
|
href="{{ config('coolify.contact') }}" target="_blank">contact us.</a></div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@if (subscriptionProvider() === 'lemon')
|
@if (subscriptionProvider() === 'lemon')
|
||||||
@ -25,7 +25,7 @@
|
|||||||
@if (currentTeam()->subscription->lemon_status === 'cancelled')
|
@if (currentTeam()->subscription->lemon_status === 'cancelled')
|
||||||
<div class="pb-4">Subscriptions ends at: {{ getRenewDate() }}</div>
|
<div class="pb-4">Subscriptions ends at: {{ getRenewDate() }}</div>
|
||||||
<div class="py-4">If you would like to change the subscription to a lower/higher plan, <a
|
<div class="py-4">If you would like to change the subscription to a lower/higher plan, <a
|
||||||
class="text-white underline" href="{{ config('coolify.docs') }}" target="_blank">please
|
class="text-white underline" href="{{ config('coolify.contact') }}" target="_blank">please
|
||||||
contact
|
contact
|
||||||
us.</a></div>
|
us.</a></div>
|
||||||
@else
|
@else
|
||||||
|
@ -23,13 +23,13 @@
|
|||||||
</x-slot:pro>
|
</x-slot:pro>
|
||||||
<x-slot:ultimate>
|
<x-slot:ultimate>
|
||||||
<x-forms.button x-show="selected === 'monthly'" x-cloak aria-describedby="tier-ultimate"
|
<x-forms.button x-show="selected === 'monthly'" x-cloak aria-describedby="tier-ultimate"
|
||||||
class="w-full h-10 buyme"><a class="text-white hover:no-underline" href="{{ config('coolify.docs') }}"
|
class="w-full h-10 buyme"><a class="text-white hover:no-underline" href="{{ config('coolify.contact') }}"
|
||||||
target="_blank">
|
target="_blank">
|
||||||
Contact Us</a>
|
Contact Us</a>
|
||||||
</x-forms.button>
|
</x-forms.button>
|
||||||
|
|
||||||
<x-forms.button x-show="selected === 'yearly'" x-cloak aria-describedby="tier-ultimate"
|
<x-forms.button x-show="selected === 'yearly'" x-cloak aria-describedby="tier-ultimate"
|
||||||
class="w-full h-10 buyme"><a class="text-white hover:no-underline" href="{{ config('coolify.docs') }}"
|
class="w-full h-10 buyme"><a class="text-white hover:no-underline" href="{{ config('coolify.contact') }}"
|
||||||
target="_blank">
|
target="_blank">
|
||||||
Contact Us</a>
|
Contact Us</a>
|
||||||
</x-forms.button>
|
</x-forms.button>
|
||||||
|
Loading…
Reference in New Issue
Block a user