orbitd

command module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

README



GitHub Tag GitHub License GitHub Issues or Pull Requests

Orbitd

A lightweight, set-and-forget container update daemon for Docker.

Orbitd monitors your containers and automatically updates them when new images are available—preserving all configuration, networks, volumes, and labels.

Features
  • Zero Configuration — Works out of the box with sensible defaults
  • Automatic Rollback — Restores previous container on update failure
  • Flexible Policies — Digest-only or semantic versioning (patch/minor/major)
  • Label Control — Opt-in or opt-out specific containers
  • Image Cleanup — Removes old images after successful updates

Quick Start

# docker-compose.yml
services:
  orbitd:
    image: ghcr.io/mizuchilabs/orbitd:latest
    container_name: orbitd
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

That's it. Orbitd will check all containers every 12 hours and update them when new digests are available.

Configuration

All settings are optional. Configure via environment variables or CLI flags:

Environment Variable CLI Flag Default Description
ORBITD_INTERVAL --interval 12h Check frequency (e.g., 5m, 1h)
ORBITD_POLICY --policy digest Update policy (see below)
ORBITD_CLEANUP --cleanup true Remove old images after updates
ORBITD_REQUIRE_LABEL --require-label false Only update labeled containers
ORBITD_DEBUG --debug false Enable verbose logging
Update Policies
Policy Behavior Example
digest Same tag, new digest (default) nginx:1.25 → latest build
patch Patch versions only 1.2.31.2.9
minor Minor + patch versions 1.2.31.9.0
major Any newer version 1.2.32.0.0

Semver policies require valid semver tags. Non-semver tags fall back to digest updates.

Container Labels

Control individual containers with labels:

services:
  # Updated automatically (default behavior)
  app:
    image: myapp:latest

  # Excluded from updates
  database:
    image: postgres:15
    labels:
      - "orbitd.enable=false"

  # Custom policy for this container
  api:
    image: myapi:1.0.0
    labels:
      - "orbitd.policy=minor"
Opt-In Mode

With ORBITD_REQUIRE_LABEL=true, only containers with orbitd.enable=true are monitored:

services:
  # Only this container is updated
  app:
    image: myapp:latest
    labels:
      - "orbitd.enable=true"

  # Ignored
  database:
    image: postgres:15

Installation

docker run -d \
  --name orbitd \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  ghcr.io/mizuchilabs/orbitd:latest
Binary

Download from releases and run:

./orbitd start

License

Apache 2.0 License - see LICENSE for details

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
config
Package config provides configuration management for the application.
Package config provides configuration management for the application.
updater
Package updater provides container update functionality by monitoring Docker containers and automatically updating them to the latest image versions.
Package updater provides container update functionality by monitoring Docker containers and automatically updating them to the latest image versions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL