Commit graph

13402 commits

Author SHA1 Message Date
Andras Bacsai
0b8d3d395e fix: remove redundant process termination logic from deployment methods 2025-11-10 14:46:02 +01:00
Andras Bacsai
9507f602df fix: ensure service state is refreshed and compose configurations are saved after submission 2025-11-10 14:44:11 +01:00
Andras Bacsai
b9846c08cc fix: ensure unique environment files are included for applications and services 2025-11-10 14:42:34 +01:00
Andras Bacsai
f5fa09790e refactor: improve command handling and ensure correct working directory for Docker operations 2025-11-10 14:40:03 +01:00
Andras Bacsai
d8878d868c fix: remove unnecessary peer dependencies from package-lock.json 2025-11-10 14:39:57 +01:00
Andras Bacsai
fe46c490a2 Update service templates for Convex and EmbyStat; modify compose configurations and adjust tags and categories for better clarity and organization 2025-11-10 14:16:14 +01:00
Andras Bacsai
e63a270fea
Enhance container status tracking and improve user notifications (#7182) 2025-11-10 13:58:22 +01:00
Andras Bacsai
194d023f70
Enhance port detection and improve user notifications (#7184) 2025-11-10 13:56:09 +01:00
Andras Bacsai
99e97900a5 feat: add automated PORT environment variable detection and UI warnings
Add detection system for PORT environment variable to help users configure applications correctly:

- Add detectPortFromEnvironment() method to Application model to detect PORT env var
- Add getDetectedPortInfoProperty() computed property in General Livewire component
- Display contextual info banners in UI when PORT is detected:
  - Warning when PORT exists but ports_exposes is empty
  - Warning when PORT doesn't match ports_exposes configuration
  - Info message when PORT matches ports_exposes
- Add deployment logging to warn about PORT/ports_exposes mismatches
- Include comprehensive unit tests for port detection logic

The ports_exposes field remains authoritative for proxy configuration, while
PORT detection provides helpful suggestions to users.
2025-11-10 13:43:27 +01:00
Andras Bacsai
68a9f2ca77 feat: add container restart tracking and crash loop detection
Track container restart counts from Docker and detect crash loops to provide better visibility into application health issues.

- Add restart_count, last_restart_at, and last_restart_type columns to applications table
- Detect restart count increases from Docker inspect data and send notifications
- Show restart count badge in UI with warning icon on Logs navigation
- Distinguish between crash restarts and manual restarts
- Implement 30-second grace period to prevent false "exited" status during crash loops
- Reset restart count on manual stop, restart, and redeploy actions
- Add unit tests for restart count tracking logic

This helps users quickly identify when containers are in crash loops and need attention, even when the container status flickers between states during Docker's restart backoff period.
2025-11-10 13:04:31 +01:00
Andras Bacsai
5702733a53
Enhance Nginx configuration for better performance and analytics (#7179) 2025-11-10 11:34:24 +01:00
Andras Bacsai
40e242b874 perf(nginx): increase client body buffer size to 256k for Sentinel payloads
Increases client_body_buffer_size from default (8k-16k) to 256k to handle
Sentinel monitoring data in memory instead of buffering to disk. This eliminates
the "client request body is buffered to a temporary file" warning and improves
performance for servers with many containers (50-100+) sending health check data.

Affects both production and development nginx configurations.
2025-11-10 11:32:49 +01:00
Andras Bacsai
0ea27ce37a
Cancel active deployments when a pull request is closed (#7164) 2025-11-10 11:16:54 +01:00
Andras Bacsai
919fc184b7 fix(docker): improve pull request ID check in container status function 2025-11-09 20:35:03 +01:00
Andras Bacsai
67605d50fc fix(deployment): prevent base deployments from being killed when PRs close (#7113)
- Fix container filtering to properly distinguish base deployments (pullRequestId=0) from PR deployments
- Add deployment cancellation when PR closes via webhook to prevent race conditions
- Prevent CleanupHelperContainersJob from killing active deployment containers
- Enhance error messages with exit codes and actual errors instead of vague "Oops" messages
- Protect status transitions in finally blocks to ensure proper job failure handling
2025-11-09 14:41:35 +01:00
Andras Bacsai
649dd023cb
feat(service): Add postgresus service template. (#7055) 2025-11-08 16:16:26 +01:00
Andras Bacsai
f382e95d9b
Merge branch 'next' into v4.x 2025-11-08 16:15:57 +01:00
Andras Bacsai
ed51785fb9
Enhance Docker Compose handling and improve error management (#7148) 2025-11-08 16:14:15 +01:00
Andras Bacsai
712d60c75b feat: ensure .env file exists for docker compose and auto-inject in payloads 2025-11-07 15:20:10 +01:00
Andras Bacsai
d3eba6c1b7
Merge branch 'next' into issue-7127 2025-11-07 14:44:38 +01:00
Andras Bacsai
775216e7a5 jean jean 2025-11-07 14:33:32 +01:00
Andras Bacsai
7fd1d799b4 refactor: rename onWorktreeCreate script to setup in jean.json 2025-11-07 14:33:32 +01:00
Andras Bacsai
8660d1d8fe Merge branch 'next' into issue-7127 2025-11-07 14:14:51 +01:00
Andras Bacsai
e86575d6f7 fix: guard against null or empty docker compose in saveComposeConfigs method 2025-11-07 14:14:43 +01:00
Andras Bacsai
a71638581e
chore(deps-dev): bump tar from 7.5.1 to 7.5.2 (#7134) 2025-11-07 14:13:00 +01:00
Andras Bacsai
75a10df394
Add/Fix categories/tags (#7147) 2025-11-07 14:11:56 +01:00
Andras Bacsai
049affe216 refactor: rename onWorktreeCreate script to setup in jean.json 2025-11-07 14:04:09 +01:00
Andras Bacsai
468d5fe7d7 refactor: improve docker compose validation and transaction handling in StackForm 2025-11-07 14:03:19 +01:00
hareland
07ce375ac5 Embystat: change category from 'media' to 'analytics' 2025-11-07 13:50:19 +01:00
hareland
b08ea4402a Embystat: change category from 'media' to 'analytics' 2025-11-07 13:46:12 +01:00
hareland
183c70e3c8 **Update rybbit.yaml schema: add category field and adjust tags formatting** 2025-11-07 13:29:49 +01:00
Andras Bacsai
73985350ec fix: update version numbers to 4.0.0-beta.443 and 4.0.0-beta.444 2025-11-07 08:26:58 +01:00
Andras Bacsai
3801be2fd4 ci(workflows): refactor build-push jobs to use matrix strategy for multi-architecture support 2025-11-07 08:19:51 +01:00
peaklabs-dev
560c98e280
ci(workflow): fix changelog generation 2025-11-06 15:11:13 +01:00
dependabot[bot]
ffa4123a72
chore(deps-dev): bump tar from 7.5.1 to 7.5.2
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.1...v7.5.2)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-06 14:06:03 +00:00
Andras Bacsai
7bbfa094d0
v4.0.0-beta.442 (#7130) 2025-11-06 15:04:56 +01:00
Andras Bacsai
f005602147 fix: remove Gozunga from the list of sponsors in README 2025-11-06 15:00:24 +01:00
Andras Bacsai
4e734492e0 fix: escape shell arguments in syncBunny command execution 2025-11-06 14:57:53 +01:00
🏔️ Peak
7ebb41a97c
ci(workflows): improve security of all workflows & update action (#7133) 2025-11-06 14:56:09 +01:00
peaklabs-dev
6557514954
ci(workflows): improve security and update actions
- set top-level explicit permissions for each GitHub Actions workflow for improved security and deduplication of permissions.
- add `persist-credentials: false` to actions/checkout for improved security - see https://github.com/actions/checkout#checkout-v4
- update actions/checkout from v4 to v5
2025-11-06 14:40:54 +01:00
peaklabs-dev
2d64cdad7c
ci(claude): remove unused workflows 2025-11-06 14:36:59 +01:00
Andras Bacsai
24bcce3f9b
Update app/Console/Commands/SyncBunny.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-06 14:36:34 +01:00
Andras Bacsai
2768805996 fix: update helper_version to 1.0.12 in constants configuration 2025-11-06 14:33:42 +01:00
Andras Bacsai
bcd225bd22 feat: Implement required port validation for service applications
- Added `requiredPort` property to `ServiceApplicationView` to track the required port for services.
- Introduced modal confirmation for removing required ports, including methods to confirm or cancel the action.
- Enhanced `Service` model with `getRequiredPort` and `requiresPort` methods to retrieve port information from service templates.
- Implemented `extractPortFromUrl` method in `ServiceApplication` to extract port from FQDN URLs.
- Updated frontend views to display warnings when required ports are missing from domains.
- Created unit tests for service port validation and extraction logic, ensuring correct behavior for various scenarios.
- Added feature tests for Livewire component handling of domain submissions with required ports.
2025-11-06 14:32:36 +01:00
🏔️ Peak
e21b1e40bc
Merge branch 'v4.x' into next 2025-11-06 14:00:30 +01:00
Andras Bacsai
21835e4608
chore: update Nixpacks version to 1.41.0 (#7061) 2025-11-06 12:42:57 +01:00
Andras Bacsai
f89c5d2b21 fix: enhance onWorktreeCreate script to include directory creation and settings copy 2025-11-06 12:41:04 +01:00
Andras Bacsai
1ab5dbca20 fix: preserve empty strings and remove empty sections in docker-compose
- Preserve empty string environment variables instead of converting to null
  Empty strings and null have different semantics in Docker Compose:
  * Empty string (VAR: ""): Variable is set to "" in container (e.g., HTTP_PROXY="" means "no proxy")
  * Null (VAR: null): Variable is unset/removed from container environment

- Remove empty top-level sections (volumes, configs, secrets) from generated compose files
  These sections now only appear when they contain actual content, following Docker Compose best practices

- Add safety check for missing volumes in validateComposeFile to prevent iteration errors

- Add comprehensive unit tests for both fixes

Fixes #7126
2025-11-06 12:30:03 +01:00
Andras Bacsai
395d225f90
fix: envs added to the right place in dockerfiles (#7123) 2025-11-06 09:29:57 +01:00
Andras Bacsai
d0ee7d0412
Merge branch 'next' into feat-add-dockerfile-from-instruction-par 2025-11-06 09:24:54 +01:00