What's Changed
Security & Fixes
- Fixed sporadic SSH "permission denied" errors during key rotation (#8990, fixes #7724)
- Fixed deployment failures when build server is enabled during restart operations (#9045, fixes #9013)
- Fixed breadcrumb queries causing out-of-memory crashes (#9048, fixes #9009)
- Fixed GitHub App webhook endpoint defaulting to IPv4 instead of instance domain (#8948)
- Fixed Hoppscotch service failing to start due to database health check (#8949)
- Fixed Docker Compose not respecting preserveRepository for project directory (#8956, fixes #8953)
- Fixed backup error when S3 storage is missing or deleted (#9038, fixes #9035)
- Fixed Stripe subscription error handling and resilience (#9030)
- Fixed Heyform template configuration (#8747)
- Fixed API resource UUID extraction from route parameters
- Fixed Docker cleanup stale container warning on cloud instances
- Fixed Compose file-not-found error now includes git branch info
New Services & Templates
- Added LibreSpeed service for self-hosted speed testing (#8626)
- Added imgcompress service for offline image processing (#8763)
- Updated Databasus to v3.16.2 (#8586)
- Updated n8n with Postgres and Worker to v2.10.4 (#8807)
- Updated SeaweedFS images to v4.13 (#8738)
- Fixed Castopod service port from 8000 to 8080 (#8817)
Improvements
- Added per-volume control of PR suffix in preview deployments (#9006, fixes #7802, fixes #7343)
- Added auto-population of FQDN from docker_compose_domains for compose previews (#8963, fixes #8958)
- Added force deletion option for servers with existing resources (#8962)
- Added auto-fetch of server metadata after validation (#8964)
- Added container label escape control to services API (#8955, fixes #8954)
- Added database environment variable management API endpoints
- Added storage management API endpoints for applications and backup schedules
- Added support for comments in bulk environment variable API endpoints
- Added placeholder hints for magic environment variables
- Added next billing date and billing interval display for subscriptions
- Added cache-based deduplication for delayed cron execution
- Simplified environment variable settings by removing buildtime/runtime options
What's Changed (Github)
- fix(git): GitHub App webhook endpoint defaults to IPv4 instead of the instance domain by @ShadowArcanist in #8948
- feat(service): update n8n-with-postgres-and-worker to 2.10.4 by @michachan in #8807
- Change Castopod service port from 8000 to 8080 by @SeriousM in #8817
- fix(service): hoppscotch fails to start due to db unhealthy by @ShadowArcanist in #8949
- fix(api): allow is_container_label_escape_enabled in service operations by @andrasbacsai in #8955
- fix(docker-compose): respect preserveRepository when injecting --project-directory by @andrasbacsai in #8956
- feat(server): allow force deletion of servers with resources by @andrasbacsai in #8962
- feat(compose-preview): populate fqdn from docker_compose_domains by @andrasbacsai in #8963
- feat(server): auto-fetch server metadata after validation by @andrasbacsai in #8964
- feat(templates): Add imgcompress service, for offline image processing by @ariqpradipa in #8763
- fix(template): fix heyform template by @iMuFeng in #8747
- chore(service): Update SeaweedFS images to version 4.13 by @FabioHAraujo in #8738
- feat(service): Add librespeed by @diogo24m in #8626
- feat(service): update databasus to v3.16.2 by @Luzefiru in #8586
- fix(preview): enable per-volume control of PR suffix in preview deployments by @andrasbacsai in #9006
- fix: prevent sporadic SSH permission denied on key rotation by @pannous in #8990
- fix(stripe): add error handling and resilience to subscription operations by @andrasbacsai in #9030
- fix(backup): throw explicit error when S3 storage missing or deleted by @andrasbacsai in #9038
- perf(breadcrumb): optimize queries and simplify navigation to fix OOM by @andrasbacsai in #9048
- fix(deployment): disable build server during restart operations by @andrasbacsai in #9045
- v4.0.0-beta.469 by @andrasbacsai in #9007
New Contributors
- @michachan made their first contribution in #8807
- @SeriousM made their first contribution in #8817
- @FabioHAraujo made their first contribution in #8738
- @pannous made their first contribution in #8990
Full Changelog: v4.0.0-beta.468...v4.0.0-beta.469