@@ -413,7 +413,7 @@ $schema://$host {
|
|||||||
handle /app/* {
|
handle /app/* {
|
||||||
reverse_proxy coolify-realtime:6001
|
reverse_proxy coolify-realtime:6001
|
||||||
}
|
}
|
||||||
handle /terminal/ws/* {
|
handle /terminal/ws {
|
||||||
reverse_proxy coolify-realtime:6002
|
reverse_proxy coolify-realtime:6002
|
||||||
}
|
}
|
||||||
reverse_proxy coolify:80
|
reverse_proxy coolify:80
|
||||||
|
@@ -2985,7 +2985,11 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
|
|||||||
// Get magic environments where we need to preset the FQDN
|
// Get magic environments where we need to preset the FQDN
|
||||||
if ($key->startsWith('SERVICE_FQDN_')) {
|
if ($key->startsWith('SERVICE_FQDN_')) {
|
||||||
// SERVICE_FQDN_APP or SERVICE_FQDN_APP_3000
|
// SERVICE_FQDN_APP or SERVICE_FQDN_APP_3000
|
||||||
$fqdnFor = $key->after('SERVICE_FQDN_')->lower()->value();
|
if (substr_count(str($key)->value(), '_') === 3) {
|
||||||
|
$fqdnFor = $key->after('SERVICE_FQDN_')->beforeLast('_')->lower()->value();
|
||||||
|
} else {
|
||||||
|
$fqdnFor = $key->after('SERVICE_FQDN_')->lower()->value();
|
||||||
|
}
|
||||||
if ($isApplication) {
|
if ($isApplication) {
|
||||||
$fqdn = generateFqdn($server, "{$resource->name}-$uuid");
|
$fqdn = generateFqdn($server, "{$resource->name}-$uuid");
|
||||||
} elseif ($isService) {
|
} elseif ($isService) {
|
||||||
|
@@ -7,7 +7,7 @@ return [
|
|||||||
|
|
||||||
// The release version of your application
|
// The release version of your application
|
||||||
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
|
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
|
||||||
'release' => '4.0.0-beta.340',
|
'release' => '4.0.0-beta.341',
|
||||||
// When left empty or `null` the Laravel environment will be used
|
// When left empty or `null` the Laravel environment will be used
|
||||||
'environment' => config('app.env'),
|
'environment' => config('app.env'),
|
||||||
|
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return '4.0.0-beta.340';
|
return '4.0.0-beta.341';
|
||||||
|
@@ -46,6 +46,9 @@ services:
|
|||||||
- PUSHER_APP_ID
|
- PUSHER_APP_ID
|
||||||
- PUSHER_APP_KEY
|
- PUSHER_APP_KEY
|
||||||
- PUSHER_APP_SECRET
|
- PUSHER_APP_SECRET
|
||||||
|
- TERMINAL_PROTOCOL
|
||||||
|
- TERMINAL_HOST
|
||||||
|
- TERMINAL_PORT
|
||||||
- AUTOUPDATE
|
- AUTOUPDATE
|
||||||
- SELF_HOSTED
|
- SELF_HOSTED
|
||||||
- SSH_MUX_ENABLED
|
- SSH_MUX_ENABLED
|
||||||
|
8
package-lock.json
generated
8
package-lock.json
generated
@@ -26,7 +26,7 @@
|
|||||||
"postcss": "8.4.38",
|
"postcss": "8.4.38",
|
||||||
"pusher-js": "8.4.0-rc2",
|
"pusher-js": "8.4.0-rc2",
|
||||||
"tailwindcss": "3.4.4",
|
"tailwindcss": "3.4.4",
|
||||||
"vite": "4.5.3",
|
"vite": "4.5.5",
|
||||||
"vue": "3.4.29"
|
"vue": "3.4.29"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2082,9 +2082,9 @@
|
|||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "4.5.3",
|
"version": "4.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz",
|
||||||
"integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
|
"integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.18.10",
|
"esbuild": "^0.18.10",
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
"postcss": "8.4.38",
|
"postcss": "8.4.38",
|
||||||
"pusher-js": "8.4.0-rc2",
|
"pusher-js": "8.4.0-rc2",
|
||||||
"tailwindcss": "3.4.4",
|
"tailwindcss": "3.4.4",
|
||||||
"vite": "4.5.3",
|
"vite": "4.5.5",
|
||||||
"vue": "3.4.29"
|
"vue": "3.4.29"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
BIN
public/svgs/budge.png
Normal file
BIN
public/svgs/budge.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
@@ -50,18 +50,33 @@
|
|||||||
|
|
||||||
function initializeWebSocket() {
|
function initializeWebSocket() {
|
||||||
if (!socket || socket.readyState === WebSocket.CLOSED) {
|
if (!socket || socket.readyState === WebSocket.CLOSED) {
|
||||||
// Only use port if Coolify is used with ip (so it has a port in the url)
|
const predefined = {
|
||||||
let postPath = ':6002/terminal/ws';
|
protocol: "{{ env('TERMINAL_PROTOCOL') }}",
|
||||||
const port = window.location.port;
|
host: "{{ env('TERMINAL_HOST') }}",
|
||||||
if (!port) {
|
port: "{{ env('TERMINAL_PORT') }}"
|
||||||
postPath = '/terminal/ws';
|
|
||||||
}
|
}
|
||||||
let url = window.location.hostname;
|
const connectionString = {
|
||||||
// make sure the port is not included
|
protocol: window.location.protocol === 'https:' ? 'wss' : 'ws',
|
||||||
url = url.split(':')[0];
|
host: window.location.hostname,
|
||||||
socket = new WebSocket((window.location.protocol === 'https:' ? 'wss://' : 'ws://') +
|
port: ":6002",
|
||||||
url +
|
path: '/terminal/ws'
|
||||||
postPath);
|
}
|
||||||
|
if (!window.location.port) {
|
||||||
|
connectionString.port = ''
|
||||||
|
}
|
||||||
|
if (predefined.host) {
|
||||||
|
connectionString.host = predefined.host
|
||||||
|
}
|
||||||
|
if (predefined.port) {
|
||||||
|
connectionString.port = `:${predefined.port}`
|
||||||
|
}
|
||||||
|
if (predefined.protocol) {
|
||||||
|
connectionString.protocol = predefined.protocol
|
||||||
|
}
|
||||||
|
|
||||||
|
const url =
|
||||||
|
`${connectionString.protocol}://${connectionString.host}${connectionString.port}${connectionString.path}`
|
||||||
|
socket = new WebSocket(url);
|
||||||
|
|
||||||
socket.onmessage = handleSocketMessage;
|
socket.onmessage = handleSocketMessage;
|
||||||
socket.onerror = (e) => {
|
socket.onerror = (e) => {
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
# documentation: https://github.com/linuxserver/budge
|
# documentation: https://github.com/linuxserver/budge
|
||||||
# slogan: A budgeting personal finance app.
|
# slogan: A budgeting personal finance app.
|
||||||
# tags: personal finance, budgeting, expense tracking
|
# tags: personal finance, budgeting, expense tracking
|
||||||
|
# logo: svgs/budge.png
|
||||||
|
|
||||||
services:
|
services:
|
||||||
budge:
|
budge:
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"coolify": {
|
"coolify": {
|
||||||
"v4": {
|
"v4": {
|
||||||
"version": "4.0.0-beta.340"
|
"version": "4.0.0-beta.341"
|
||||||
},
|
},
|
||||||
"nightly": {
|
"nightly": {
|
||||||
"version": "4.0.0-beta.341"
|
"version": "4.0.0-beta.342"
|
||||||
},
|
},
|
||||||
"helper": {
|
"helper": {
|
||||||
"version": "1.0.1"
|
"version": "1.0.1"
|
||||||
|
Reference in New Issue
Block a user