orbitd

command module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: Apache-2.0 Imports: 11 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

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.

Since v0.1.9, you can also run orbitd in docker swarm:

services:
  orbitd:
    image: ghcr.io/mizuchilabs/orbitd:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.role == manager

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

By default, orbitd monitors all running containers. Use ORBITD_REQUIRE_LABEL=true to switch to opt-in mode, where only containers with orbitd.enable=true are monitored.

You can also override the update policy per container with orbitd.policy:

services:
  # Opt-in to monitoring (required when require-label is enabled)
  app:
    image: myapp:latest
    labels:
      - "orbitd.enable=true"

  # Override policy for this container
  api:
    image: myapi:1.0.0
    labels:
      - "orbitd.enable=true"
      - "orbitd.policy=minor"

  # Not monitored (no label)
  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
policy
Package policy defines update policies and resolves which image tag to pull.
Package policy defines update policies and resolves which image tag to pull.
updater
Package updater monitors and updates containers.
Package updater monitors and updates containers.

Jump to

Keyboard shortcuts

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