Commit graph

14149 commits

Author SHA1 Message Date
Andras Bacsai
d04d0ab499 Refactor restart tracking and add missing model casts
- Consolidate duplicate restart tracking logic in GetContainersStatus
- Add last_restart_type string cast to all 8 standalone database models

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 17:45:58 +01:00
Andras Bacsai
6d47d24169 Fix standalone database "restarting" status flickering and add restart tracking
- Fix status flickering: Track databases in active/transient states (restarting, starting, created, paused) not just running
- Add isActiveOrTransient() helper to distinguish between active states and terminal states (exited, dead)
- Add safeguard: Protect updateNotFoundDatabaseStatus() from marking as exited when containers collection is empty
- Add restart_count tracking: New migration adds restart_count, last_restart_at, last_restart_type to all standalone database tables
- Update 8 database models with $casts for new restart tracking fields
- Update GetContainersStatus to extract RestartCount from Docker and update database models
- Reset restart tracking when database exits completely

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 16:25:41 +01:00
Andras Bacsai
20c6f61858
Add toggleable wire:navigate SPA navigation with prefetching (#7661) 2025-12-17 14:27:19 +01:00
Andras Bacsai
28cd582d63 Fix wireNavigate on external links and url()->previous()
Remove wireNavigate() from:
- External links (docs, GitHub) - can't be handled by Livewire SPA
- url()->previous() in all error pages - dynamic URL can't prefetch
- Links with target="_blank" - conflicts with wire:navigate semantics

Keep wireNavigate() on internal Dashboard links in error pages.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 13:25:27 +01:00
Andras Bacsai
e5019bb44f Add wireNavigate() to breadcrumbs dropdown navigation links
Add SPA navigation with prefetching to all navigation links in the
breadcrumbs component dropdown menus, excluding Terminal links which
require full page loads for WebSocket connections.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 12:25:15 +01:00
Andras Bacsai
691f118440 Add wireNavigate to resource list cards on environment page
Add wire:navigate.hover to application, database, and service cards on the environment resource index page for SPA navigation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 12:18:07 +01:00
Andras Bacsai
e709e2c131 Add toggleable wire:navigate SPA navigation with prefetching
Implement instance-wide SPA navigation toggle that enables smooth page transitions with prefetching on hover. Excludes terminal links which require full page lifecycle for WebSocket connections. Adds defensive checks to global-search component for SPA navigation compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 12:09:13 +01:00
Andras Bacsai
7c50f6011a
feat: add Soju IRC bouncer service template (#7532) 2025-12-17 11:51:30 +01:00
Andras Bacsai
d4a403278d
Added ClickHouse Migration Support (#7392) 2025-12-17 11:37:53 +01:00
Andras Bacsai
2c3a610538 feat: update ClickHouse migration to use official image version 25.11 2025-12-17 11:37:27 +01:00
Andras Bacsai
6e7ce9d822 feat: update default image value for standalone ClickHouse instances 2025-12-17 11:22:41 +01:00
Andras Bacsai
aaa72be58a Bump version to 4.0.0-beta.456 and update nightly version to 4.0.0-beta.457 2025-12-17 11:05:01 +01:00
Andras Bacsai
51f1be2995 Enhance upgrade and installation scripts with logging and status tracking
- Added logging functionality to `upgrade.sh` for better tracking of upgrade steps and errors.
- Implemented a status file mechanism in `upgrade.sh` for API polling during upgrades.
- Improved error handling and user feedback in `upgrade.sh` and `install.sh`.
- Download configuration files in parallel in `install.sh` to speed up the installation process.
- Updated versions in `versions.json` for Coolify and Traefik.
- Enhanced environment variable checks and updates in `install.sh`.
- Added health checks for the Coolify container post-installation.
2025-12-17 11:01:59 +01:00
Andras Bacsai
581d767560
Widen upgrade popup and add dev simulation (#7660) 2025-12-17 11:01:52 +01:00
Andras Bacsai
df0ad44500 Widen upgrade popup and add dev mode simulation
- Set modal width to consistent 48rem for both upgrade states
- Remove max-width constraint from progress stepper
- Add dev mode with Simulate button for local testing
- Simulate cycles through all upgrade steps with 2-second delays
2025-12-17 10:59:38 +01:00
Andras Bacsai
254b0a15e3 Fix dropdown positioning by adjusting offsets for scrollable containers 2025-12-16 15:01:53 +01:00
Andras Bacsai
0e84218cfd Enhance environment and resource dropdowns with improved timeout handling and positioning 2025-12-16 14:50:36 +01:00
Andras Bacsai
0db5d17072 Refactor project and environment dropdowns for improved accessibility and styling
- Updated dropdown toggle logic to use a single toggle function for better readability.
- Replaced span elements with buttons for dropdown toggles to enhance accessibility.
- Added click outside functionality to close dropdowns when clicking outside.
- Adjusted styling for dropdowns and hover states to use neutral colors for better UI consistency.
- Ensured proper alignment and positioning of dropdowns to prevent overflow issues.
2025-12-16 12:30:53 +01:00
Andras Bacsai
f763c3aa8b Refactor project environment and resource management UI
- Removed unnecessary SVG icons from the environment edit view for cleaner UI.
- Deleted the environment select component as it was no longer needed.
- Enhanced the project resource index view with a dropdown for environments and resources, improving navigation.
- Implemented dynamic dropdowns for environments and their associated resources, allowing for better user interaction.
- Added transitions and hover effects for a more responsive design.
- Updated the layout to ensure a consistent user experience across different project resources.
2025-12-16 12:30:53 +01:00
Andras Bacsai
2646fb81eb
Optimize PushServerUpdateJob with batch updates and async jobs (#7639) 2025-12-16 12:22:24 +01:00
Andras Bacsai
78677a64db
Change default session driver from Redis to database (#7652) 2025-12-16 12:12:40 +01:00
Andras Bacsai
51ed9b390d Change default session driver from Redis to database
Fixes intermittent 419 "Page Expired" errors on login/logout caused by
a race condition with Redis sessions. Database sessions are synchronous
and don't have this issue.

Users can still use Redis sessions by setting SESSION_DRIVER=redis.

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-16 12:11:59 +01:00
Andras Bacsai
0aca66bbba
Improve navigation from breadcrumb and Improve UI for this (#6360) 2025-12-15 16:25:27 +01:00
Andras Bacsai
5d73ac36da improve breadcrumbs a lot 2025-12-15 16:25:04 +01:00
Andras Bacsai
651e19fefe
Merge branch 'next' into fix_breadcrumb 2025-12-15 15:51:49 +01:00
Andras Bacsai
924812d7cd
feat:(service) Add Redis Insight to predefined docker networks by default (#7416) 2025-12-15 15:51:06 +01:00
Andras Bacsai
25827c3c8e
Update Pterodactyl + Wings template to expose port 2022 for SFTP access (#7315) 2025-12-15 15:50:51 +01:00
Andras Bacsai
fb516836cd
feat: add terraria service (#7323) 2025-12-15 15:50:31 +01:00
Andras Bacsai
16b720bb16
Merge branch 'next' into v4.x 2025-12-15 15:50:14 +01:00
Andras Bacsai
40ba8d5124
feat:(service) Add Penpot with s3 (#7407) 2025-12-15 15:49:48 +01:00
Andras Bacsai
28fd7775e2
feat:(service) Bump Beszel version to 0.16.1 (#7409) 2025-12-15 15:49:35 +01:00
Andras Bacsai
b84e5949f4
feat:(service) Add Beszel Agent as standalone template (#7412) 2025-12-15 15:49:22 +01:00
Andras Bacsai
e456e57ed9
fix:(service) Remov depreciated env and services on Penpot (#7415) 2025-12-15 15:49:11 +01:00
Andras Bacsai
ed64761caf
Add STORE_MODEL_IN_DB to LiteLLM environment variables (#7440) 2025-12-15 15:48:32 +01:00
Andras Bacsai
729697db13
Fix CSRF Login issues, adjust PAPERLESS_URL environment variable refe… (#7450) 2025-12-15 15:48:17 +01:00
Andras Bacsai
eefc97fccc
feat: prioritize main/master branch selection (#7520) 2025-12-15 15:47:57 +01:00
Andras Bacsai
75bf4c3133
fix(service): postiz showing no available server (#7595) 2025-12-15 15:47:26 +01:00
Andras Bacsai
986c003ac2
Feat: escape key fullscreen exit for logs view (#7632) 2025-12-15 15:47:10 +01:00
Andras Bacsai
b36f59fe58 Merge branch 'next' into feat/escape-key-fullscreen-exit
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 15:43:39 +01:00
Andras Bacsai
0efa4af5c3 Optimize PushServerUpdateJob performance with batch updates and async jobs
- Eager load service applications and databases to eliminate N+1 queries
- Replace individual model updates with batch database updates for applications, previews, and services
- Move connectProxyToNetworks to async ConnectProxyToNetworksJob to avoid blocking status updates
- Optimize Server.databases() and applications() methods with efficient database queries
- Use flatMap for cleaner collection transformations

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-15 14:06:32 +01:00
Andras Bacsai
383572edac
Fix S3 credential whitespace issue with proper trimming (#7638) 2025-12-15 12:23:20 +01:00
Andras Bacsai
5e90fc6b8f Fix S3 credential whitespace issue with proper trimming
- Add model saving event to trim key/secret fields (encrypted casts)
- Add attribute mutators to trim endpoint, bucket, region fields
- Create migration to fix existing S3 storage records with whitespace
- Use chunking in migration to handle large datasets efficiently
- Verify re-encryption validity before committing changes

Fixes #7469 #7594

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-15 12:05:54 +01:00
Andras Bacsai
9a61a35985
Update Umami image tag to latest version (#7459) 2025-12-15 11:28:27 +01:00
Andras Bacsai
c127a09364
fix: add idempotency guards to 18 migrations (#7637) 2025-12-15 11:24:48 +01:00
Andras Bacsai
07cd389eb9 fix: add idempotency guards to 18 migrations to prevent upgrade failures
When any migration fails due to table/column already existing, PostgreSQL rolls back
the entire batch and blocks all subsequent migrations. Add Schema::hasTable() and
Schema::hasColumn() guards to all problem migrations for safe re-execution.

Fixes #7606 #7625

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-15 11:23:04 +01:00
Andras Bacsai
e0b2424b76
Fix deployment log view UX issues (#7636) 2025-12-15 11:01:34 +01:00
Andras Bacsai
987252a179 Move polling button next to refresh button in runtime logs
Reorder toolbar buttons so that Refresh and Stream Logs (polling)
are adjacent, making the related actions easier to find.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 10:57:07 +01:00
Andras Bacsai
6b9c633fe7 Prevent Livewire from morphing logs when text is selected
Use Livewire's morph.updating hook to skip DOM morphing of the logs
container when user has text selected. This prevents the selection from
being lost when polling or manual refresh occurs.

The previous fix only prevented the JavaScript-based re-render, but
Livewire's morphing was still replacing the DOM elements entirely.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 10:53:02 +01:00
Andras Bacsai
5cc822c996 Fix text selection issue in runtime logs view
Apply the same selection preservation fix to the runtime logs component
(get-logs.blade.php) that was applied to deployment logs:
- Add hasActiveLogSelection() helper to detect active text selection
- Skip re-render when user has text selected (preserves copy ability)
- Add renderTrigger mechanism to ensure filtering works after refresh
- Use x-effect for hidden state to properly react to Livewire updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 10:52:00 +01:00
Andras Bacsai
d40c2caca2 Fix text disappearing during selection in deployment logs
Ensure initial render happens even when selection is active by checking
if element already has content before skipping re-render.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 10:49:26 +01:00