v0.11.1

psviderski/uncloudv0.11.1Aug 15, 2025by psviderski

AI Summary

Adds private registry authentication support for pulling images from private container registries, using Docker credentials from local and remote configs.

Key Highlights

  • Private registry authentication support
  • Docker credentials from local config
  • Docker credentials from remote machine config

Breaking Changes

  • Requires systemd service configuration update (ProtectHome=read-only)

New Features

  • Private registry authentication
  • Docker credential retrieval from local and remote configs

Full Release Notes

## Private registry support

Fixed authentication when pulling images from private container registries. `uc deploy` or `uc run` will try to retrieve the registry credentials from your local Docker config (`~/.docker/config.json`), including the configured [credentials store](https://docs.docker.com/reference/cli/docker/login/#credential-stores). If the credentials are not found locally, the `uncloudd` daemon on the remote machine will try to retrieve the credentials from its own Docker config (`/root/.docker/config.json`).

In order to configure the credentials for your private registries, you can:
1. **(Recommended)** Run [`docker login`](https://docs.docker.com/reference/cli/docker/login/) **locally** (where you run `uc`) if you have Docker CLI installed.
2. Run `docker login` on your **remote machines** under **`root` user** or using `sudo docker login` so that the credentials are stored in the root-owned Docker config.

## Upgrade to 0.11.1

⚠️ **IMPORTANT:** You need to run the following commands on your existing remote machines to allow the daemon to read credentials from the Docker config:
```
sudo sed -i 's/ProtectHome=true/ProtectHome=read-only/' /etc/systemd/system/uncloud.service
sudo systemctl daemon-reload
sudo systemctl restart uncloud
```

Newly provisioned machines will have the correct configuration automatically.

### Uncloud CLI locally

To upgrade the Uncloud CLI (`uc`) locally:

```bash
# Homebrew (macOS, Linux)
brew upgrade uncloud

# Install script (macOS, Linux)
curl -fsS https://get.uncloud.run/install.sh | sh
```

### Machine daemon

To upgrade the Uncloud daemon on your machines, run the following commands on each machine:

```bash
# AMD64
curl -fsSL -o uncloudd.tar.gz https://github.com/psviderski/uncloud/releases/download/v0.11.1/uncloudd_linux_amd64.tar.gz
# ARM64
# curl -fsSL -o uncloudd.tar.gz https://github.com/psviderski/uncloud/releases/download/v0.11.1/uncloudd_linux_arm64.tar.gz
tar -xf uncloudd.tar.gz
sudo install uncloudd /usr/local/bin/uncloudd
rm uncloudd uncloudd.tar.gz
sudo systemctl restart uncloud
```

## Changelog
* 12c07812a27dd89ae5f84550f1568102f2f6ee4c chore: add Caddy config to ServiceSpec, load x-caddy to it
* 4be8339c5182890352009b5cc00940a613622ee6 chore: generate a minimal Caddyfile with verify handler alongside caddy.json
* 9186d31d123f37c2e1b7367e465548bec1b55189 chore: go mod tidy
* ec73f9ecd88a4cdd5570bb422b93998174f7c4d9 chore: handle x-caddy: path/to/Caddyfile to read Caddy config in compose from file
* 8dd69b46da9a0f0613203668aabab33768534891 chore: refactor docker gRPC server to use docker service for inspecting and listing containers
* 4cc1e556dd4a5a1aaeb7f1f8a30ab6db7f542c28 chore: store ServiceContainer (includes service spec) instead of Container in Corrosion store
* dd7bc6c982be2a321ce7d14b029341ba2925ab58 chore: trim spaces for x-caddy, diff Caddy configs when comparing service specs
* 5d3f1fe225077ebcf609da9023f36849c14ce832 chore: x-caddy extension type in compose
* c67127f83f83ade904490e17c0901fc8d64809df feat: Add basic LLM instruction files
* 1ce3e62dbbfdd3928f8393783d16b088145a6954 fix: use local and remote  Docker credentials to pull image from private registry