v0.8.0

psviderski/uncloudv0.8.0Jun 12, 2025by psviderski

AI Summary

This release introduces build & push capabilities for Compose deployments with a new `uc build` command and integrated build step in `uc deploy`. It also enables passive health checks and automatic retry logic (3 retries) for Caddy reverse proxy upstreams, along with launching new documentation and a Discord community.

Key Highlights

  • New `uc build` command for building service images from Dockerfile and build: configuration
  • Integrated build step in `uc deploy` automatically builds and pushes images to registry
  • Enabled passive health checks for Caddy reverse proxy to detect unhealthy upstreams
  • Added automatic retry logic (3 retries) for failed requests
  • Launched new documentation website at docs.uncloud.run and Discord server

New Features

  • `uc build` command to build service images from Dockerfile and build: configuration in Compose files
  • Integrated build step in `uc deploy` that automatically builds and pushes image before deployment
  • --no-build flag to skip building when deploying
  • Passive health checks for Caddy reverse proxy upstreams
  • Automatic retry logic (3 retries) for failed requests
  • Logging enabled by default for Caddy reverse proxy
  • Default SSH key path set to ~/.ssh/id_ed25519
  • `m` alias for the machine command
  • New documentation website at docs.uncloud.run with Getting Started guide

Full Release Notes

This release introduces build & push capabilities for Compose deployments, enables [passive health checks](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#passive-health-checks) for upstreams in Caddy reverse proxy, minor bug fixes and improvements.

We also launched:
* [Uncloud Documentation](https://docs.uncloud.run/)
* [Discord server](https://discord.gg/eR35KQJhPu)

## New features

### Initial build & push support (still experimenting) ✨

* New `uc build` command to build service images from `Dockerfile` and `build:` configuration in Compose files
* Integrated build step in `uc deploy` automatically builds and pushes an image to the registry specified in `image:` before deployment
* Use `--no-build` flag to skip building when deploying

### Caddy reverse proxy improvements

* Enabled [passive health checks](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#passive-health-checks) to automatically detect unhealthy upstreams
* Added automatic retry logic (3 retries) for failed requests to gracefully handle temporary unavailable upstreams
* Logging enabled by default for better observability

## Documentation
* Launched a new documentation website at [docs.uncloud.run](https://docs.uncloud.run/) with a [Getting started](https://docs.uncloud.run/category/getting-started) guide.
* Documentation itself is deployed using Uncloud across multiple machines (dogfooding FTW!) See the [`compose.yaml`](https://github.com/psviderski/uncloud/blob/main/docs/compose.yaml) file if curious.
![](https://github.com/psviderski/uncloud/blob/main/.github/images/compose-deploy.jpg)

## User experience

* Default SSH key path is now set to `~/.ssh/id_ed25519`
* Added `m` alias for the `machine` command

## Bug Fixes

* Fixed Caddy deployment after adding new machine by using cluster client instead of machine client (#65)

## Testing & CI

* Added GitHub Actions workflow for automated Go tests
* Enhanced e2e tests with build & push verification

## Contributors
Thanks to @tonyo for the build & push RFC and implementation, test improvements, and the make `install-dev` helper!

## Changelog
* 624caf037ba24fbdc22108c2a599a959d51f3e01 chore(docs): init overview page
* 2a0d31cec0a1470b0effa07965cdc5f54270b367 chore: Helper make target to install protobuf/grpc plugins
* 6a4e63dbd4cb431a41280e7304c108ddcfdeb204 chore: add Discord to landing, remove crossed out Kubernetes
* 6f9ac1fcc71ed362bbb1f5038d03be1490430044 chore: add Docker image for docs and Uncloud Compose deployment (dogfooding!)
* ae04dea808165cd175a72aeedcd01c3e9d559994 chore: add Docs to website navbar and footer, add other resources to footer
* f1abbbea6da743cdf03cd38562d0fc1bed163c95 chore: add discord and X badges to README
* 23dfe45b2feb0e56190919ecc4f9032dd2303331 chore: add docs badge to github README
* d2dd5e3c891557f418dce1a961810ebc043fab6c chore: add inspiration & acknowledgements section to README
* 7edd8f2976af6ddec202bbe02a2a7028ee061a80 chore: add m alias for machine command
* 8f00e0082e525c528488a57e9e3a3c93d1aff4d3 chore: add social links in the footer
* 2bfcce7803091ea0fb3e4621d3bb3786e1e0c6e5 chore: add uncloud-docs deploy from compose to demo section in README
* f49ec465d07e8e21c8e5d7943620873566eeaf83 chore: bring terminal on landing back, update hero, move demo to bottom
* 365a5fc0b54e6553d8ab2c941342067c099d6686 chore: build multiarch images for corrosion and ucind to support e2e tests on amd64
* 3aa8fead76638fea2edbff6f01e83adc776f7b09 chore: configure docs custom styles, init intro page
* dfa6e001c50f1b446731e7a6b5eeefe428892e74 chore: cross over kubernetes on landing hero
* 735e36012a2490d2b69f06132d0c2dd7372ef3af chore: delete unused ucind-image-push target in Makefile
* ff1a8fbcf9857e94ae0d1e73349e1341bdab4d4e chore: fix comment
* 59f6fa75ca234218d631f30650ccc19cfb9a5d10 chore: init docusaurus docs
* fd3facb6b03a044d35c7c7c8a28f42f672184bac chore: minor README change
* eec728620b9c67a2cb7b5a50660c505d132aecc9 chore: minor README change
* bd03bb9bfa1ff422393cc0218b19ad269b112fd0 chore: minor README change
* 1ffe9acdd7781fac4d4fcbb391e0fdaf9b270854 chore: minor README rearrangement
* 4075f85b72a95afae45b92c16f187dd046a739a4 chore: minor website update
* fa3d992dbc81c27880c26a9f6d651b16ba0352f4 chore: period
* 7699b530c2b1adf0237dd4dbc5813195751cb735 chore: refine links
* 683ad2235849b75340a19b491f68ea00f89ec9d2 chore: remove extra [FLAGS] from volume commands help, add SERVICE for inspect
* 0d820bc75a29c1be812b878a82f0cacd49dd8f90 chore: replace github discussions with discord in subscribe section
* 009c0e1b4c2d5e25629a7484748099780548bcf7 chore: scale docs service to 2 replicas in different regions
* 1ec5184f21644a161fcbb0bf7344a6341113735f chore: self-hosting focused front page (first screen)
* 4590a516ad8eb05ffcd29d328596adf78ea0e462 chore: set default ssh key path to ~/.ssh/id_ed25519 and handle home expansion
* a5fe9fbfb21952b123564738ee0d3fd35910d2bc chore: update -p flag help for run command
* 8b66a11394c8aa0db44f1a29e6e487345add3baa chore: update hero
* a7d8afb052e1e08f9aab209e74aa569a47f95e8c chore: update value section wording
* c34542a9d89b63ac3421a44c2b3ef545bb91a4c6 chore: update website title
* 971b21d6c13168c401ff692d2260847bd5762c72 feat: Implement basic build & push capabilities for services (#68)
* fc61e2fc07fd8ee8cf22f58f43350d567677c813 feat: enable passive health checks and upstream retries in Caddy
* 4df1820f96ab605556746377915832e2d988fae1 fix(doc): Tiny fixes
* 88db1cb6a9b099ceada0f9b09ddf92149ad6bc44 fix: hero svg on safari
* 12c86f1dd407741f905f4aebcdc0a41976c266bc fix: use existing cluster client when deploying caddy after adding new machine #65