oar

command module
v0.0.0-...-a6ba8f7 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2025 License: MIT Imports: 1 Imported by: 0

README

Oar Logo


CI  codecov  GitHub release (latest by date)

Oar

GitOps automation for Docker Compose on a single Docker host. Oar watches a Git branch, runs docker compose to apply updates, and records deployment results for review in the CLI or web UI.

Overview

  • Single binary exposing the CLI and web dashboard.
  • Tracks project configuration on disk and can encrypt stored secrets when an encryption key is provided.
  • Automatically reconciles Docker Compose projects without manual intervention.

Quick Start

Prerequisites
  • Docker Engine with the Docker Compose plugin on a Linux host.
  • SQLite 3.25.0 or later.
  • Network access from the host to your Git remote.
Installation, upgrade

[!IMPORTANT] sudo is required

curl -sSL https://github.com/oar-cd/oar/releases/latest/download/install.sh | bash

Access the web UI at http://127.0.0.1:4777

Target Audience & Use Cases

Oar is designed as ArgoCD for Docker Compose - bringing GitOps automation to environments where Kubernetes complexity isn't needed or justified.

Ideal for
  • Home labs and personal projects - Simple single-server deployments without operational overhead
  • Demo environments - Fast setup and teardown for rapid prototyping and demonstrations
  • Development and staging environments - Quick deployment cycles without production-grade complexity
  • Small-scale applications - Projects that don't require multi-node orchestration or enterprise features
  • Learning environments - Educational setups where Docker Compose is more approachable than Kubernetes
  • Side projects and experiments - Personal or small team projects where simplicity trumps scalability
When to choose Oar over alternatives
  • You need GitOps but not the complexity of Kubernetes
  • Downtime during deployments is acceptable (rolling updates not required)
  • You prefer Docker Compose's familiar syntax over Kubernetes manifests
  • You want automated deployments without managing a full cluster
  • You need something that "just works" on a single host

How Oar Compares

Oar ArgoCD Portainer DIY Scripts
Single host deployment
GitOps automation
Built-in secrets encryption
Web dashboard
Docker Compose native
Zero-config setup
Deployment history
Auto drift detection

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package app provides the main application context for Oar, managing the database and services.
Package app provides the main application context for Oar, managing the database and services.
cmd
output
Package output provides functions to print messages with optional color formatting
Package output provides functions to print messages with optional color formatting
project
Package project provides commands for managing Docker Compose projects in Oar.
Package project provides commands for managing Docker Compose projects in Oar.
root
Package root implements the command line interface for Oar.
Package root implements the command line interface for Oar.
server
Package server implements the unified server command for running both web and watcher services.
Package server implements the unified server command for running both web and watcher services.
test
Package test provides utility functions for testing Oar CLI
Package test provides utility functions for testing Oar CLI
version
Package version provides the version command for Oar.
Package version provides the version command for Oar.
Package config provides configuration management for the Oar application.
Package config provides configuration management for the Oar application.
Package db provides functions to initialize and manage the SQLite database for Oar.
Package db provides functions to initialize and manage the SQLite database for Oar.
Package docker provides Docker and Docker Compose operations.
Package docker provides Docker and Docker Compose operations.
Package domain provides core domain types and entities for Oar.
Package domain provides core domain types and entities for Oar.
Package encryption provides encryption and decryption services for sensitive data.
Package encryption provides encryption and decryption services for sensitive data.
Package git provides Git repository operations including clone, pull, and authentication.
Package git provides Git repository operations including clone, pull, and authentication.
Package logging provides logging utilities for Oar.
Package logging provides logging utilities for Oar.
Package project provides project management services for Oar.
Package project provides project management services for Oar.
Package repository provides data access layer for projects and deployments.
Package repository provides data access layer for projects and deployments.
Package watcher provides the watcher service for automatic project deployments.
Package watcher provides the watcher service for automatic project deployments.
web
actions
Package actions provides business action handlers for web operations.
Package actions provides business action handlers for web operations.
components/base
templ: version: v0.3.943
templ: version: v0.3.943
components/forms
templ: version: v0.3.943
templ: version: v0.3.943
components/icons
templ: version: v0.3.943
templ: version: v0.3.943
components/modals
templ: version: v0.3.943
templ: version: v0.3.943
components/project
templ: version: v0.3.943
templ: version: v0.3.943
handlers
Package handlers provides HTTP request handlers and utilities for the web server.
Package handlers provides HTTP request handlers and utilities for the web server.
pages
templ: version: v0.3.943
templ: version: v0.3.943
routes
Package routes provides HTTP route registration for the web server.
Package routes provides HTTP route registration for the web server.

Jump to

Keyboard shortcuts

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