feat(cloud-provider): Add support for Hetzner firewalls, internal networks and backups when creating the Server - #9646
Conversation
…nal networks to the Server Creation dialog
There was a problem hiding this comment.
Pull request overview
Adds first-class support for selecting existing Hetzner Firewalls and Internal Networks during Hetzner server creation in Coolify (UI + API), addressing #9619.
Changes:
- Extend Hetzner server creation flow (Livewire) to load, display, and submit selected firewall/network IDs.
- Add new API endpoints to fetch Hetzner firewalls and networks for a given Hetzner cloud provider token.
- Expand Hetzner server creation API to accept
hetzner_firewall_idsandhetzner_network_idsand forward them to Hetzner.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/Feature/HetznerServerCreationTest.php | Adds a Livewire-oriented test ensuring firewalls/networks are loaded (plus a small dedupe test). |
| tests/Feature/HetznerApiTest.php | Adds API coverage for new GET endpoints and asserts firewalls/networks are passed to Hetzner on create. |
| routes/api.php | Registers new Hetzner read endpoints for firewalls and networks. |
| resources/views/livewire/server/new/by-hetzner.blade.php | Adds multi-select UI controls for Firewalls and Internal Networks. |
| app/Services/HetznerService.php | Adds getFirewalls() and getNetworks() wrappers. |
| app/Livewire/Server/New/ByHetzner.php | Loads firewalls/networks, filters location-compatible networks, and passes IDs to Hetzner create-server payload. |
| app/Http/Controllers/Api/HetznerController.php | Implements /hetzner/firewalls + /hetzner/networks and forwards firewall/network IDs during server creation. |
|
Hi @JanThiel! 👋 It appears to us that you are adding a new feature to Coolify. Coolify Docs Repository: https://github.com/coollabsio/coolify-docs |
I am unable to find any relevant existing docs that note any content of the Hetzner specific Create Server Dialog. As it is quite self explainatory and well documented at Hetzner I do not see the need to create additional docs for it. |
…s-and-internal-networks
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.
|
Thank you for the PR! 💜 |
Changes
Creating a Hetzner Server is straight forward in Coolify. Yet it lacks some essential features of the Hetzner Cloud. Primarily the ability to assign Firewalls, Internal Networks and enable Hetzner Backups at the time of server creation. To do that you have to switch to the Hetzner console afterwards and configure them manually.
This PR introduces these three options to the Coolify Create Hetzner Server Dialog. You can enable backups and select as many pre-existing firewalls and internal networks that are assigned to the Server at Hetzner when creating it.
Issues
Category
Preview
Hetzner Server Create new options in Coolify:


Proof at Hetzner Console:


AI Assistance
If AI was used:
All code written by AI was manually reviewed and locally tested using PHPStorm.
Testing
Hetzner:
Contributor Agreement
Important