Feature: Hetzner Servers - Add support for Hetzner firewalls and internal networks when creating the Server#9646
Open
JanThiel wants to merge 1 commit intocoollabsio:nextfrom
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. |
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 and Internal Networks at the time of server creation. To do that you have to switch to the Hetzner console afterwards and assign them manually.
This PR introduces these two options to the Coolify Create Hetzner Server Dialog. You can 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