Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Groundhog hosting integration for self-hosted HTTPS tunnels

Open
#2,242 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
8/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
csharp
Domain
devtools

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

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CommunityToolkit/Aspire

All issues in CommunityToolkit/Aspire

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.