- What is dutchcodingcompany/laravel-hetzner-dns-api used for?
- It is a Laravel integration for the Hetzner DNS API that lets your application manage DNS zones and records programmatically. It is useful for deployment automation, environment provisioning, certificate validation, and DNS-as-code workflows. Treat it as an infrastructure adapter rather than domain logic, and wrap it behind an internal service if DNS changes are production-critical.
- How do I install and configure this Laravel Hetzner DNS package?
- Install it with Composer and configure your Hetzner API credentials through environment variables or your application’s configuration layer. The package is expected to integrate through Laravel’s service provider and configuration conventions, but check the repository README for the exact installation and publishing steps. Validate the setup against a disposable or non-production Hetzner DNS zone before using it in production.
- Which Laravel, PHP, and Saloon versions are supported?
- The package is a Laravel Composer package built around the Hetzner DNS API and likely depends on Saloon for HTTP requests, but the exact supported Laravel, PHP, and Saloon version matrix should be confirmed from its composer.json and release notes. Pin the package version and verify the transitive Saloon dependency against your application baseline. Do not assume compatibility with every Laravel or PHP version without checking the package constraints.
- Can it manage both DNS zones and DNS records?
- The package is described as managing Hetzner DNS zones and records, with a fluent wrapper for creating, updating, and deleting records. That makes it suitable for common DNS automation tasks such as creating records during deployments or certificate validation. Confirm the exact operation coverage, including bulk updates, validation, and error mapping, in the package source or documentation before relying on it for complex DNS workflows.
- How should I store and rotate my Hetzner API token?
- Store the Hetzner API token in environment variables or a secrets manager, never in source control, and restrict access to the applications and workers that need DNS changes. Rotate tokens on a schedule or after staff changes, and confirm what scoping Hetzner supports for DNS API tokens. The package should not be responsible for business-level approval or token lifecycle management, so keep those controls in your application and operations runbooks.
- Does the package handle Hetzner API rate limits, retries, and timeouts?
- The package is described as a thin API wrapper, so do not assume it provides comprehensive rate-limit handling, retries, timeouts, or idempotency. Treat those as application responsibilities unless the package source clearly documents built-in behavior. Implement logging, validation, retry policy, and approval gates in an internal DNS adapter around the package, especially for production changes.
- What changed in version 1.0.1 and do I need to update my code?
- Version 1.0.1 is a patch-level compatibility fix: requests using HasJsonBody now also implement HasBody. It reduces request-body handling risk and does not indicate a new public feature or breaking change, so existing consumers should not need code changes. Still run regression tests for record-create and record-update paths, and confirm any custom request classes or decorators satisfy the expected body interface.
- How should I test DNS record changes safely before production?
- Spike against a disposable Hetzner DNS zone and add automated tests for record create, update, delete, and error cases. Include contract coverage for request-body serialization after the 1.0.1 change, particularly for JSON-body requests. Roll out to non-production automation first, then use approval gates and rollback runbooks before allowing production DNS changes.
- Is this package suitable for production DNS automation?
- It can be suitable for low-volume production DNS automation, but DNS changes are production-impacting and the package is a small-maintainer, thin API wrapper. Keep it behind an internal adapter so application code does not depend directly on package request classes, and validate operations against a staging zone first. Use logging, token rotation, retry policy, approval gates, and rollback procedures rather than relying on the package for business-level validation.
- What are the alternatives if this package is not maintained or does not fit?
- Alternatives include calling the Hetzner DNS API directly through Laravel’s HTTP client, building your own small Saloon-based client, or using another DNS provider integration. Because the package has a small maintainer base, wrap it behind an internal interface so you can fork it or replace it without rewriting application code. Pin the version, monitor upstream activity and dependency drift, and migrate one DNS operation at a time.