Installation
Prerequisites
Section titled “Prerequisites”| Requirement | Version | Notes |
|---|---|---|
| Docker CLI | any recent | Required for build and sync operations |
| Package Registry | GitLab / Gitea / S3 | Stores build metadata; GitLab is the default |
| Go | ≥ 1.22 | Only needed when building from source |
imglife itself is a single static binary with no runtime dependencies.
Install a pre-built binary
Section titled “Install a pre-built binary”Pre-built binaries are published for each release in the GitLab Generic Package Registry.
curl -LO https://gitlab.com/imglife-project/imglife/-/releases/permalink/latest/downloads/imglife-linux-amd64chmod +x imglife-linux-amd64 mv imglife-linux-amd64 ~/.local/bin/imglifecurl -LO https://gitlab.com/imglife-project/imglife/-/releases/permalink/latest/downloads/imglife-linux-arm64chmod +x imglife-linux-arm64 mv imglife-linux-arm64 ~/.local/bin/imglifecurl -LO https://gitlab.com/imglife-project/imglife/-/releases/permalink/latest/downloads/imglife-darwin-arm64chmod +x imglife-darwin-arm64 mv imglife-darwin-arm64 /usr/local/bin/imglifecurl -LO https://gitlab.com/imglife-project/imglife/-/releases/permalink/latest/downloads/imglife-darwin-amd64chmod +x imglife-darwin-amd64 mv imglife-darwin-amd64 /usr/local/bin/imglifeEnsure the install directory is in your PATH. For ~/.local/bin:
export PATH="$HOME/.local/bin:$PATH"# Add to ~/.bashrc or ~/.zshrc for persistenceBuild from source
Section titled “Build from source”-
Clone the repository
Terminal window git clone https://gitlab.com/imglife-project/imglife.gitcd imglife -
Build the binary
Terminal window make buildThis compiles
./imglifein the project root with the current Git version embedded. -
Install (optional)
Terminal window make install# Installs to $HOME/.local/bin by default# Override: make install INSTALL_DIR=/usr/local/bin
Use the Docker image
Section titled “Use the Docker image”imglife is also distributed as a minimal Alpine-based Docker image (~20 MB):
docker pull registry.gitlab.com/imglife-project/imglife:latest
# Run a commanddocker run --rm \ -v "$PWD/imglife.yaml:/app/imglife.yaml:ro" \ -e GITLAB_TOKEN \ registry.gitlab.com/imglife-project/imglife:latest \ sync --dry-runThis is the image used in GitLab CI jobs. See Base Images — GitLab CI for a complete pipeline example.
Verify installation
Section titled “Verify installation”imglife versionExpected output:
imglife v0.8.0 (commit: abc1234, built: 2026-04-01T10:00:00Z)Validate a config file
Section titled “Validate a config file”imglife --config imglife.yaml --checkThe --check flag parses and validates the configuration without executing any operation. Useful for CI pipelines and local development.
Shell completion
Section titled “Shell completion”imglife completion bash > /etc/bash_completion.d/imglife# Or for a single user:imglife completion bash >> ~/.bash_completionimglife completion zsh > "${fpath[1]}/_imglife"imglife completion fish > ~/.config/fish/completions/imglife.fishNext steps
Section titled “Next steps”- Follow the Quick Start to configure your first pipeline.
- Read about the Three-Tier Model to understand imglife’s architecture.