From faf527d554136f19df46b9c4b6a4706b2b88bac9 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Mon, 10 Aug 2026 09:56:30 +0200 Subject: [PATCH] fix(dev): support configurable hosts and light-mode surfaces Add configurable bind addresses and Vite protocols for development networking, and improve light-mode styling for logs and unsaved-change controls. --- docker-compose.dev.yml | 9 +++++---- resources/css/app.css | 14 ++++++++++++-- .../views/components/unsaved-bar.blade.php | 8 ++++---- .../Feature/DeploymentLogToolbarStyleTest.php | 10 +++++++--- tests/Feature/DeploymentLogsLayoutTest.php | 2 ++ tests/Feature/SentinelUnsavedBarFlashTest.php | 19 +++++++++++++++++++ vite.config.js | 8 +++++++- 7 files changed, 56 insertions(+), 14 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 7519a599b..0aafe6e25 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -13,7 +13,7 @@ services: - COOLIFY_CLI_VERSION=${COOLIFY_CLI_VERSION:-nightly} - COOLIFY_CLI_CHECKSUM=${COOLIFY_CLI_CHECKSUM:-unknown} ports: - - "${APP_PORT:-8000}:8080" + - "${DEV_BIND_ADDRESS:-0.0.0.0}:${APP_PORT:-8000}:8080" - "${FORWARD_FLUX_PORT:-6443}:6443" extra_hosts: - "host.docker.internal:host-gateway" @@ -82,8 +82,8 @@ services: env_file: - .env ports: - - "${FORWARD_SOKETI_PORT:-6001}:6001" - - "6002:6002" + - "${DEV_BIND_ADDRESS:-0.0.0.0}:${FORWARD_SOKETI_PORT:-6001}:6001" + - "${DEV_BIND_ADDRESS:-0.0.0.0}:6002:6002" extra_hosts: - "host.docker.internal:host-gateway" volumes: @@ -111,8 +111,9 @@ services: # Set VITE_HOST in .env to a browser-reachable IP/hostname for LAN/Tailscale access VITE_HOST: "${VITE_HOST:-localhost}" VITE_PORT: "${VITE_PORT:-5173}" + VITE_PROTOCOL: "${VITE_PROTOCOL:-http}" ports: - - "${VITE_PORT:-5173}:${VITE_PORT:-5173}" + - "${DEV_BIND_ADDRESS:-0.0.0.0}:${VITE_PORT:-5173}:${VITE_PORT:-5173}" volumes: - .:/var/www/html/:cached command: sh -c "npm install && npm run dev" diff --git a/resources/css/app.css b/resources/css/app.css index 2a9356412..44bb7213c 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -2673,6 +2673,16 @@ input[type="search"]::-webkit-search-results-decoration { /* Shared logs viewer (deployment + runtime) — mobile-first toolbar Mobile stacks: search → meta → full-width actions (no side-by-side overlap). */ +.logs-viewer { + background: #fff; + color: #262626; +} + +.dark .logs-viewer { + background: var(--color-log); + color: #f5f5f5; +} + .logs-viewer-toolbar { flex-shrink: 0; border-bottom: 1px solid var(--color-neutral-200); @@ -2934,7 +2944,7 @@ html[data-theme="custom"] .logs-viewer-timestamp { .logs-viewer-viewport { min-width: 0; - padding: 0.5rem 0.75rem; + padding: 0.5rem 0.75rem 2rem; } .logs-viewer-line { @@ -3024,7 +3034,7 @@ html[data-theme="custom"] .logs-viewer-timestamp { } .logs-viewer-viewport { - padding: 0.5rem 1rem; + padding: 0.5rem 1rem 2rem; } .logs-viewer-line { diff --git a/resources/views/components/unsaved-bar.blade.php b/resources/views/components/unsaved-bar.blade.php index 9d4ec36be..15b945154 100644 --- a/resources/views/components/unsaved-bar.blade.php +++ b/resources/views/components/unsaved-bar.blade.php @@ -56,18 +56,18 @@ } " @if ($targets) wire:target="{{ $targets }}" @endif - class="pointer-events-none fixed inset-x-3 bottom-[calc(var(--keyboard-inset,0px)+max(1.5rem,env(safe-area-inset-bottom,0px)+0.75rem))] z-[1000] flex max-w-full translate-y-6 flex-col items-stretch gap-2 rounded-2xl border border-white/10 bg-surface py-2.5 pr-2.5 pl-4 opacity-0 shadow-modal transition-[opacity,transform] duration-200 ease-out delay-0 [&.is-dirty]:pointer-events-auto [&.is-dirty]:translate-y-0 [&.is-dirty]:opacity-100 [&.is-dirty]:delay-300 sm:inset-x-auto sm:left-1/2 sm:bottom-6 sm:w-max sm:max-w-none sm:-translate-x-1/2 sm:flex-row sm:items-center sm:gap-8 sm:py-2 sm:pl-5 sm:pr-2"> - {{ $label }} + class="pointer-events-none fixed inset-x-3 bottom-[calc(var(--keyboard-inset,0px)+max(1.5rem,env(safe-area-inset-bottom,0px)+0.75rem))] z-[1000] flex max-w-full translate-y-6 flex-col items-stretch gap-2 rounded-2xl border border-neutral-200 bg-white py-2.5 pr-2.5 pl-4 opacity-0 shadow-modal transition-[opacity,transform] duration-200 ease-out delay-0 dark:border-white/10 dark:bg-surface [&.is-dirty]:pointer-events-auto [&.is-dirty]:translate-y-0 [&.is-dirty]:opacity-100 [&.is-dirty]:delay-300 sm:inset-x-auto sm:left-1/2 sm:bottom-6 sm:w-max sm:max-w-none sm:-translate-x-1/2 sm:flex-row sm:items-center sm:gap-8 sm:py-2 sm:pl-5 sm:pr-2"> + {{ $label }}