Geard is a command-line client and daemon for deploying Docker containers onto systemd-enabled Linux systems, designed to facilitate large-scale container orchestration in production environments. Written in Go and classified as a container engine and application deployment platform, geard bridges Docker's container abstraction with systemd's process management capabilities to provide secure, isolated, and auditable container execution.
The project operates in two modes: as a command-line tool for direct container operations and as a daemon that exposes an HTTP API on port 43273 for remote management. The daemon accepts REST requests to install, start, stop, restart, and monitor containers, while the CLI provides a user-friendly interface for the same operations. Both modes require root access to interface with the Docker daemon via its Unix socket and systemd via DBus. The repository is no longer maintained, with the project having transitioned to OpenShift 3 and Kubernetes as the primary container orchestration platforms.
Geard's core philosophy centers on four production requirements for containerized workloads. First, containers must be securely isolated from the host through clear interfaces, leveraging cGroups and SELinux to prevent privilege escalation while allowing administrators to expose specific system services when necessary. Second, container processes should be independent and resilient to failure, with systemd providing comprehensive process management, restart policies, and failure recovery mechanisms. Third, containers must be portable across hosts, using Docker abstractions like links, port mappings, and environment files to avoid host-specific dependencies. Fourth, containers require auditability, constraint enforcement, and reliable logging, capabilities that systemd provides through standard patterns integrated with Docker.
The platform supports extensive container operations mapped closely to Docker and systemd concepts. Users can install Docker images as systemd units, manage container lifecycle through start, stop, and restart commands, and deploy multi-container applications with defined links between them. Geard implements iptables-based local networking to link containers into logical groups across multiple hosts, enabling stable inter-container communication that persists across host migrations. The system supports shared environment files, SSH access to containers for interactive debugging, and Git repository hosting on geard hosts.
Advanced features include deployment of complex multi-container applications from JSON configuration files, such as MongoDB replica sets with automatic linking. Geard provides container status monitoring through systemd integration, log streaming with configurable duration, and comprehensive container listing across single or multiple servers. The platform supports SSH key management for both container access and Git operations, enabling secure authentication without password management. Additionally, geard includes Source-to-Images (STI) build functionality for creating new container images from source code repositories and base images.
GitGenius activity data shows the repository maintains connections with other projects through overlapping contributors, including cockpit-project/cockpit, pola-rs/polars, and apicurio/apicurio-registry, indicating cross-pollination of container and orchestration expertise. The project's classification spans container engines, application deployment, Linux containerization, PaaS platforms, lightweight isolation, runtime management, and microservices workload orchestration, reflecting its comprehensive approach to container lifecycle management within the systemd ecosystem.