Lightweight OCI containers for OpenWrt, distributed as APK packages with squashfs images.
Before installing containers, set up uvol (volume management) on the device.
apk add autopart uvol lvm2 partx-utils sfdisk e2fsprogs \
kmod-fs-ext4 kmod-fs-squashfs block-mount \
uxc procd-ujail kmod-veth
The device needs free disk space for LVM. For VMs, resize the image first
(qemu-img resize image.img +4G), then fix the GPT table on the device:
sfdisk --relocate gpt-bak-std /dev/vda
Reboot after installing autopart — it will create the LVM partition automatically.
Then set up the metadata volume:
uvol create .meta 4194304 rw uvol up .meta mkdir -p /tmp/run/uvol/.meta/apk ln -sf ../../tmp/run/uvol/.meta/apk /lib/apk/db-uvol touch /lib/apk/db-uvol/world
# Download the public key uclient-fetch -O /etc/apk/keys/uxc-public.pem https://aparcar.org/uxc-action/public-key.pem # Add the feed (replace ARCH with your device architecture, e.g. aarch64_generic) echo "https://aparcar.org/uxc-action/ARCH/packages.adb" >> /etc/apk/repositories apk update
apk add container-alpine uxc list uxc start alpine
Feed URL: https://aparcar.org/uxc-action/aarch64_generic/packages.adb
| Package | Size |
|---|---|
| container-alpine-3.21.3.apk | 3.2M |
| container-debian-12.13.apk | 22M |
| container-homeassistant-2026.3.4.apk | 579M |
| container-pihole-2026.02.0.apk | 33M |
Feed URL: https://aparcar.org/uxc-action/x86_64/packages.adb
| Package | Size |
|---|---|
| container-alpine-3.21.3.apk | 3.0M |
| container-debian-12.13.apk | 23M |
| container-homeassistant-2026.3.4.apk | 599M |
| container-pihole-2026.02.0.apk | 34M |
public-key.pem (ECDSA P-256)