Groundhog hosting integration for self-hosted HTTPS tunnels
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 8/100
Research direction
This is a proposal, not a defined change: start by deciding with maintainers whether a Groundhog integration belongs in the Toolkit, using the linked groundhog-client repository and the Groundhog.Aspire.Hosting package as reference. The usage sketch names AddGroundhogTunnel, a secret parameter for the key, and a PublicAddress expression. Done means a maintainer answer on scope and API shape, not code.
Written by the indexing model from the issue text.
Description
Aspire issue link
No prior Aspire issue.
Overview
Propose a Groundhog hosting integration for the Community Toolkit. Groundhog exposes a local application's endpoint over HTTPS through a developer-managed relay. The existing MIT-licensed integration runs the agent inside the AppHost process, so developers need no separately installed CLI. It uses secret parameters for tunnel credentials and publishes the tunnel's public address as an Aspire expression.
Public implementation and protocol documentation: https://github.com/Unifinity-Software/groundhog-client
Current standalone package: https://www.nuget.org/packages/Groundhog.Aspire.Hosting
We would like maintainer feedback on whether a Toolkit contribution is appropriate and on the supported API/dependency shape. This is a proposal for a reviewed Toolkit integration, rather than a request to automatically list an external package. We would follow Toolkit package naming and resource namespace conventions if approved.
Usage example
var key = builder.AddParameter("groundhog-key", secret: true);
var tunnel = builder.AddGroundhogTunnel("tunnel", "https://tunnel.example.com", "myapp", key)
.WithReference(web.GetEndpoint("http"));
web.WithEnvironment("PublicOrigin", tunnel.Resource.PublicAddress);
Additional context
An existing compatible relay and provisioned tunnel/key are prerequisites; the integration does not deploy the relay. The current package targets .NET 10 and Aspire 13.6.1. It supports HTTP targets and explicitly configured loopback HTTPS trust, reconnect and disconnected local startup. A health preflight checks relay protocol compatibility. Credentials are supplied through secret parameters, rather than process arguments.
Hermetic tests cover forwarding, public address propagation, reconnect, invalid credentials and an unreachable relay. The standalone package-only sample and full suites pass; an actual Aspire orchestrator lifecycle smoke check is still outstanding and would be required for a Toolkit contribution. TypeScript generated bindings have not been verified and are not claimed.
The current Aspire CLI package filter does not discover the standalone Groundhog.Aspire.Hosting ID. A Toolkit contribution could provide discovery through its normal naming, testing and release process. We will keep the existing public package supported while discussing the contribution.
Help us help you
Yes, but only if others can assist.
- Dominant language
- C#
- Stars
- 628
- Forks
- 199
- Avg merge
- 17h 22m
- Merged PRs (30d)
- 175
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CommunityToolkit/Aspire
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
CommunityToolkit/Aspire#2231 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
CommunityToolkit/Aspire#1622 · 4 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
CommunityToolkit/Aspire#1620 · 4 comments ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
CommunityToolkit/Aspire#2250 · 1 comment ·
Maintainers usually reply within 1 day
-
Aspire agent awarenessPossibly taken @tommasodotNET claimed this 4 days ago. Openintegration request :mailbox_with_mail:
CommunityToolkit/Aspire#2248 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in CommunityToolkit/Aspire
Similar issues
-
bug priority: P2
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
:watch: Not Triaged dotnet-csharp/svc fundamentals/subsvc
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Wrong values of Kernel32.FileShare.Delete and Kernel32.FileAttributes.PosixSemanticsPossibly taken @ElectLive claimed this today. Openbug good first issue help wanted
Difficulty 1/5 Under an hour Newbie friendliness 83/100
ForNeVeR/TruePath#241 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
files-community/Files#19047 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day