Feature: SSH + Docker Compose remote deployment pipeline with automatic TLS and YARP ingress
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
### Summary
Add an optional deployment pipeline to Aspire built on top of the Docker Compose environment, enabling deployment of Aspire applications to a remote VM via SSH. This pipeline is **targeted at small, non-enterprise deployments and hobbyist use cases**. It should:
- Built on top of the Docker Compose environment (not just reuse outputs)
- Build and push container images to registry
- Prompt for remote host, credentials, and deployment path
- Transfer compose files and merged environment variables
- Run `docker compose up -d` on remote host
- Health check services
- Provide step-wise progress and error reporting
#### Key Requirements
- CLI: `aspire deploy` (no additional arguments; works interactively and in CI)
- Interactive prompting for missing configuration, with support for non-interactive CI mode (via env/config)
- Registry support for container images
- Remote environment preparation (directory, Docker/compose, permissions)
- Step-wise reporting: prerequisites, image push, SSH, environment, transfer, deploy
- Merged .env management with auto-injected SERVICE_IMAGE tags
### Automatic TLS & Reverse Proxy (YARP)
- Integrate automatic TLS provisioning for exposed endpoints, using Let's Encrypt or self-signed certs
- Add YARP reverse proxy for ingress, with generated config, to front all HTTP services
- YARP configuration and TLS certificate management should be automated as part of the pipeline
- Document how custom ingress rules can be integrated
### Motivation
- Streamline intermediate deployments to SSH-accessible VMs with Docker, without requiring cloud orchestration
- Provide secure (TLS) ingress for all HTTP endpoints out-of-the-box
- Enable Aspire applications to be deployed with a single command for dev/test, hobby, or small-scale production
- **Intended for small-scale, non-enterprise use; not recommended for production at scale or regulated environments**
- Improve developer experience for remote deployments, and provide a foundation for additional pipeline types (K8s, cloud, etc.)
### References
- Prototype: [aspire-ssh-deploy](https://github.com/davidfowl/aspire-ssh-deploy)
- YARP: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
### Future Enhancements
- Multi-host/cluster SSH deployments
- CI/CD workflow scaffolding
- Advanced ingress (multi-cert, custom domains)
---
Labels: area-deployment, docker-compose, yarp, small-deployment, hobbyist
Contributor guide
Assessment
This issue has not been assessed yet.