Andras Bacsai
c303c34cfd
feat(digitalocean): add droplet provisioning support
2026-07-08 10:42:58 +02:00
Andras Bacsai
d74206f4a9
Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-provider
2026-07-08 09:48:18 +02:00
Andras Bacsai
b0f0f7d8d0
feat: harden auth flows and server mobile navigation
...
Add normalized email identity rate limiting for registration and forgot-password requests, and refresh Sentinel status from restart broadcasts.
Rework server sidebars and navbar for mobile menus and active status visibility.
2026-07-08 09:42:52 +02:00
Andras Bacsai
6ed92cb97a
fix(vultr): validate public network and token scope
...
Require IPv6 when public IPv4 is disabled, constrain cloud token
lookup by team and provider during deletion, and encode Vultr instance IDs
in API paths.
2026-07-07 21:39:57 +02:00
Andras Bacsai
31f904ef9f
Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-provider
2026-07-07 21:23:07 +02:00
Andras Bacsai
6872f63f5f
fix(api): audit moved resources
2026-07-07 21:20:41 +02:00
Andras Bacsai
f244b5e25d
test(api): assert target env authorization on moves
2026-07-07 21:07:50 +02:00
Andras Bacsai
676161a627
fix(api): authorize target environment moves
2026-07-07 20:56:55 +02:00
Andras Bacsai
cf63c7d154
Merge remote-tracking branch 'origin/next' into feat/api-move-resources-between-projects
2026-07-07 18:13:37 +02:00
Andras Bacsai
9f13434273
fix(docker): escape container status commands
...
Build container status commands with escaped container names in the
Docker helper so callers can pass raw identifiers consistently.
2026-07-07 18:00:40 +02:00
Andras Bacsai
a165e03d06
fix(service-apps): harden updates and docker commands
...
Escape service application lifecycle command arguments for deploy, restart, stop, and log status checks.
Validate API update payloads from JSON/form data before applying allowed fields, preserving explicit boolean and null values.
Add coverage for service application API authorization, team isolation, validation, and command escaping.
2026-07-07 15:10:24 +02:00
Andras Bacsai
95a3c453d8
Merge remote-tracking branch 'origin/next' into 9249-pr-investigation
2026-07-07 14:45:48 +02:00
Andras Bacsai
a8000ac2ad
fix(hetzner): require at least one public IP protocol
2026-07-07 14:41:17 +02:00
Andras Bacsai
c9ffa0db96
Merge remote-tracking branch 'origin/next' into feat/hetzner-firewalls-and-internal-networks
2026-07-07 14:37:54 +02:00
Andras Bacsai
b939e09f12
refactor(hetzner): move advanced options into dropdown
2026-07-07 14:36:11 +02:00
Andras Bacsai
d723a52d9c
fix(hetzner): secure token-backed option fetches
...
Authorize stored Hetzner cloud provider tokens before fetching
firewalls or networks, hide provider error details, and keep server
creation intact if backup activation fails.
Collapse advanced Hetzner server options by default while preserving
visibility when advanced values are selected.
2026-07-07 14:24:15 +02:00
Andras Bacsai
aded45acbe
Merge remote-tracking branch 'origin/next' into feat/api/tag-management
2026-07-07 14:02:45 +02:00
Andras Bacsai
11b35ba3c1
feat(api): add tags to resource creation
...
Normalize tag names before attaching them, reject names that are too short
after sanitization, and return 404 when removing tags not attached to the
resource.
Adds a per-team unique tag-name index and migrates duplicate tags onto the
kept record before creating the constraint.
2026-07-07 13:56:33 +02:00
Andras Bacsai
2ad11fdd9a
Merge remote-tracking branch 'origin/next' into feat/hetzner-firewalls-and-internal-networks
2026-07-07 13:47:51 +02:00
Andras Bacsai
c58b4fd69c
Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-provider
2026-07-07 13:44:37 +02:00
Andras Bacsai
ff976a134f
Merge remote-tracking branch 'origin/next' into api-sensitive-data-scrubber
2026-07-07 12:56:19 +02:00
Andras Bacsai
9a2c432c79
fix(api): expose sensitive fields for privileged tokens
...
Privileged API tokens can read hidden resource fields in environment and
resource responses, including instance-admin team tokens with team_id 0.
Configuration hashes now include hidden environment variable values so
secret edits trigger restart detection.
2026-07-07 12:53:34 +02:00
Andras Bacsai
f617e58401
Merge remote-tracking branch 'origin/next' into feat/api/tag-management
...
# Conflicts:
# app/Http/Controllers/Api/ApplicationsController.php
2026-07-07 12:49:19 +02:00
Andras Bacsai
00a3738ec7
Merge remote-tracking branch 'origin/next' into api-application-preview-deployments
2026-07-07 12:38:37 +02:00
Andras Bacsai
cf12e1d7ef
feat(api): allow preview deployments on app create
...
Expose is_preview_deployments_enabled in the application create API
schema and validation, and skip deployment configuration column casts on
sqlite migrations.
2026-07-07 12:36:35 +02:00
Andras Bacsai
2caa5e67ff
fix(github): derive API URLs from GitHub HTML hosts ( #10610 )
2026-07-07 12:29:15 +02:00
Andras Bacsai
21bd8fa2bc
fix(github): reject malformed app URL origins
2026-07-07 12:24:52 +02:00
Andras Bacsai
b50839d451
Merge remote-tracking branch 'origin/next' into fix/url-validator-underscore-hostnames
2026-07-07 12:24:32 +02:00
Andras Bacsai
bce871d991
fix(domains): reject non-HTTP URL schemes
2026-07-07 12:20:26 +02:00
Andras Bacsai
d01e3a9730
fix(parsers): populate docker_compose_domains for API-created Docker Compose apps ( #9300 )
2026-07-07 12:17:52 +02:00
Andras Bacsai
d657c10df3
fix(api): allow source commit build setting ( #10551 )
2026-07-07 12:12:32 +02:00
Andras Bacsai
6c42ca82cb
fix: only strip git_host from repository_url when git_host is github.com ( #10274 )
2026-07-07 12:11:45 +02:00
Andras Bacsai
2741bc1d0d
test(api): cover public git repository URL storage
2026-07-07 12:10:38 +02:00
Andras Bacsai
ff5cfd4253
fix(api): normalize log endpoint query handling
...
Clamp log line counts, parse timestamp flags consistently, and filter
service subcontainers by Coolify labels. Document log endpoint timestamp
parameters and database/service log routes in OpenAPI.
2026-07-06 23:58:12 +02:00
Andras Bacsai
b6a4c7383a
fix(env): preserve empty service variable values ( #10850 )
2026-07-03 20:47:18 +02:00
Andras Bacsai
1adeed2a48
fix(github): preserve custom app API URLs
2026-07-03 12:01:16 +02:00
Andras Bacsai
eddcbe819b
fix(parser): populate compose domains from service env keys
2026-07-03 11:57:02 +02:00
Andras Bacsai
9b060958aa
fix(ray): remove Ray debug hooks from runtime ( #10847 )
2026-07-03 11:40:20 +02:00
Andras Bacsai
e551f9c176
Merge remote-tracking branch 'origin/next' into fix/docker-compose-domains-api-9211
2026-07-03 11:32:41 +02:00
Andras Bacsai
29c122b31a
fix(api): return deployment UUID strings directly
2026-07-03 11:31:49 +02:00
Andras Bacsai
a7dddccd2e
Merge remote-tracking branch 'origin/next' into ghe-support-helpers
2026-07-03 10:26:58 +02:00
Andras Bacsai
b5ba40b049
Merge remote-tracking branch 'origin/next' into fix/docker-compose-domains-api-9211
2026-07-03 10:26:19 +02:00
Andras Bacsai
8ce054c10c
fix(git): use cloud install path for ghe apps ( #10576 )
2026-07-03 10:24:04 +02:00
Andras Bacsai
b90380f542
Merge remote-tracking branch 'origin/next' into ghe-support-helpers
2026-07-03 10:15:29 +02:00
Andras Bacsai
67693acce7
fix(parser): preserve file volume state ( #10843 )
2026-07-03 10:14:39 +02:00
Andras Bacsai
d73649ca15
Merge remote-tracking branch 'origin/next' into fix-ghe-app-install-url
2026-07-03 10:10:39 +02:00
Andras Bacsai
08e0d02643
Merge remote-tracking branch 'origin/next' into next
2026-07-03 10:09:50 +02:00
Andras Bacsai
4435a46f07
fix(server): hide sentinel status before validation
2026-07-03 10:08:55 +02:00
Andras Bacsai
58f6f9e05b
feat(dev): add Lima testing server fixtures ( #10844 )
2026-07-03 10:07:55 +02:00
Andras Bacsai
c0866d4cb3
fix(auth): preserve invite login with database sessions
2026-07-03 09:38:05 +02:00
Andras Bacsai
eb56287b57
Merge remote-tracking branch 'origin/next' into 10633-invitation-link-redirect
2026-07-02 18:55:25 +02:00
Andras Bacsai
bb2f70ac3b
fix(railpack): isolate buildx from Docker client env ( #10840 )
2026-07-02 18:53:00 +02:00
Andras Bacsai
cf6f5a2678
feat(registry): add configurable docker registry url ( #9017 )
2026-07-02 18:52:46 +02:00
Andras Bacsai
99f60228ad
fix(api): avoid lazy loading nested server secrets
2026-07-02 17:47:22 +02:00
Andras Bacsai
c6c7ec1c31
fix(security): validate application domains safely
...
Use shared domain validation and normalization for application, service, and
preview domains so unsafe host input is rejected consistently.
Cover command-substitution payloads in application domain tests.
2026-07-02 17:47:04 +02:00
Andras Bacsai
cc4f666ba2
Merge remote-tracking branch 'origin/next' into improve-application-url-handling
2026-07-02 17:40:31 +02:00
Andras Bacsai
954c1e369c
fix(env-vars): avoid service preview variable lookups ( #10837 )
2026-07-02 17:39:16 +02:00
Andras Bacsai
d5395f0500
fix(services): preserve template keys for selection
2026-07-02 17:16:40 +02:00
Andras Bacsai
ed6352682e
Merge remote-tracking branch 'origin/next' into improve-application-url-handling
2026-07-02 16:57:14 +02:00
Andras Bacsai
cd95ac3d0d
test: cover case-sensitive application URL paths
2026-07-02 16:56:49 +02:00
Andras Bacsai
bbff70c8d0
fix: improve application URL handling
2026-07-02 16:52:07 +02:00
Andras Bacsai
3988ad6921
fix(webhooks): resolve hostnames using custom DNS servers
...
Keep webhook SSRF DNS checks active when general DNS validation is disabled, and include localhost loopback resolution in safe URL validation.
2026-07-02 16:47:55 +02:00
Andras Bacsai
0bf97df9af
feat: add internal endpoint controls
2026-07-02 16:35:39 +02:00
Andras Bacsai
7a853efa79
chore: inspect PR context ( #10834 )
2026-07-02 16:27:06 +02:00
Andras Bacsai
13172849e1
Merge remote-tracking branch 'origin/next' into api-sensitive-data-scrubber
2026-07-02 15:57:43 +02:00
Andras Bacsai
6871160623
fix(api): gate sensitive storage and GitHub fields
...
Expose GitHub app secrets and file storage content only when the request has sensitive read access. Hide LocalFileVolume content by default and resolve application UUIDs from route parameters.
2026-07-02 15:50:43 +02:00
Andras Bacsai
438eeefa73
feat(api): add REST endpoints for destinations ( #10405 )
2026-07-02 15:34:30 +02:00
Andras Bacsai
70021c8d5e
fix(api): handle destination create races as conflicts
2026-07-02 15:33:01 +02:00
Andras Bacsai
88d5aff018
Merge remote-tracking branch 'origin/next' into team-level-mcp-enablement
2026-07-02 15:15:11 +02:00
Andras Bacsai
4ef884e1ac
Merge remote-tracking branch 'origin/next' into feat/api-destinations
2026-07-02 15:14:13 +02:00
Andras Bacsai
20b5b90cf9
Merge remote-tracking branch 'origin/next' into improve-s3-storage-handling
2026-07-02 15:06:11 +02:00
Andras Bacsai
78d9244caa
fix: improve s3 storage handling
2026-07-02 15:05:05 +02:00
Andras Bacsai
bed058b826
Improve outbound URL validation ( #10833 )
2026-07-02 15:02:37 +02:00
Andras Bacsai
a06c1a7bf5
Improve storage mount path handling
2026-07-02 14:54:38 +02:00
Andras Bacsai
c7f014017b
Improve outbound URL validation
2026-07-02 14:46:46 +02:00
Andras Bacsai
a121386ab4
Merge branch 'next' into improve-resource-route-handling
2026-07-02 13:25:47 +02:00
Andras Bacsai
fb2d477e48
fix: improve team resource route handling
2026-07-02 13:05:27 +02:00
Andras Bacsai
74f4d04f53
fix(backups): default S3 storage for backup schedules
...
Show the S3 storage selector even when S3 backups are disabled, save
storage changes immediately, and improve responsive confirmation buttons.
2026-07-02 12:47:54 +02:00
Andras Bacsai
76d429fb74
fix(sidebar): center unread badge in settings menu
2026-07-02 12:35:28 +02:00
Julien Bouquillon
77086e28af
Merge branch 'v4.x' into api-application-preview-deployments
2026-07-01 19:11:16 +02:00
Andras Bacsai
22b31f5671
fix(backups): require valid S3 storage selection
...
Preserve S3 backups when a single valid storage is available, require
explicit selection when multiple storages exist, and disable S3 when none
are available.
Make backup action controls responsive on narrow screens.
2026-07-01 11:14:20 +02:00
Andras Bacsai
78374b566a
fix members smtp pw update
2026-06-30 15:29:19 +02:00
Andras Bacsai
63d6d835a9
Align resource creation permissions ( #10799 )
2026-06-29 15:59:46 +02:00
Andras Bacsai
29445bf177
fix: align resource creation permissions
2026-06-29 15:57:17 +02:00
Andras Bacsai
f2d11d9300
fix(railpack): interpolate build-time env variables by sourcing build… ( #10768 )
2026-06-29 11:08:19 +02:00
Andras Bacsai
7d65a4b496
Merge remote-tracking branch 'origin/next' into harden-database-import-files
2026-06-29 10:35:35 +02:00
Andras Bacsai
2d63d51237
fix: harden database backup imports
2026-06-29 10:27:01 +02:00
Andras Bacsai
9a64b2ea0a
Merge remote-tracking branch 'origin/next' into fix/railpack-buildtime-env-interpolation
2026-06-29 10:20:07 +02:00
Andras Bacsai
2dc34f61ff
fix(railpack): create empty build-time env file
2026-06-29 10:19:22 +02:00
Andras Bacsai
a630532308
fix(deploy): preserve deploy key command metadata
2026-06-29 10:17:09 +02:00
Andras Bacsai
3729b5c074
improve github webhook
2026-06-28 15:25:58 +02:00
Andras Bacsai
1a5b8d3612
fix(deploy): skip logging deploy key commands
2026-06-28 13:15:18 +02:00
Andras Bacsai
87d4744390
Validate environment variable keys
2026-06-25 18:19:58 +02:00
Andras Bacsai
bef94a9ce2
feat(mcp): add per-team server toggle
2026-06-25 11:42:19 +02:00
Aditya Tripathi
623bf89543
fix(railpack): interpolate build-time env variables by sourcing build-time .env
...
Railpack builds forwarded build-time variables inline as `env 'KEY=VALUE'`,
which single-quotes each value and prevents shell interpolation. References
like BETTER_AUTH_URL=$COOLIFY_URL reached the build as the literal string
"$COOLIFY_URL" instead of the resolved URL, breaking builds that validate
their env (e.g. SvelteKit/better-auth).
Wrap the railpack `docker buildx build` invocation with the same
wrap_build_command_with_env_export() helper used by the Dockerfile and
Nixpacks build paths, sourcing the build-time .env file (which writes
COOLIFY_* first and double-quotes normal vars to allow $VAR expansion).
Only buildpack control variables (NIXPACKS_/RAILPACK_), excluded from that
file and never needing interpolation, remain inline. Secret flags are
unchanged and read the interpolated values from the exported environment.
Fixes #10736
2026-06-24 20:11:46 +00:00
Andras Bacsai
00c5a630cf
fix(subscription): clamp dynamic quantity to MIN_SERVER_LIMIT on update
2026-06-19 08:27:41 +02:00
Andras Bacsai
9e021c4037
fix(api): enforce destination access and cleanup networks
...
Require admin team membership for destination mutations, return invalid-token
responses for tokenless requests, and remove standalone Docker networks when
deleting destinations.
2026-06-15 17:15:56 +02:00
Andras Bacsai
9665aa292c
fix(api): block invalid destination types and service deletions
2026-06-15 17:03:01 +02:00
Andras Bacsai
f5ecdfa4ce
Merge remote-tracking branch 'origin/next' into api-sensitive-data-scrubber
2026-06-15 13:29:25 +02:00
Andras Bacsai
96ea892748
fix(sidebar): remove theme switcher from sidebar navbar
2026-06-15 13:25:31 +02:00