Configuration

Configuration #

This section covers all configuration options for Quad-Ops, from basic setup to advanced repository management.

Global Options #

OptionTypeDefaultDescription
repositoryDirstring/var/lib/quad-opsDirectory where repositories are stored
syncIntervalduration5mInterval between repository synchronization
quadletDirstring/etc/containers/systemdDirectory for quadlet files
dbPathstring/var/lib/quad-ops/quad-ops.dbPath to the database file
userModebooleanfalseWhether to run in user mode
verbosebooleanfalseEnable verbose logging
usePodmanDefaultNamesbooleanfalseWhether to use Podman’s default container naming with systemd- prefix
repositoriesarray-List of repositories to manage

Repository Options #

OptionTypeDefaultDescription
namestring-Unique identifier for the repository
urlstring-Git repository URL to clone/pull from
refstring-Git reference to checkout (branch, tag, or commit hash)
composeDirstring""Subdirectory within repo where Docker Compose files are located
cleanupstring“keep”Cleanup policy: “keep” or “delete”
usePodmanDefaultNamesbooleanfalseWhether to use Podman’s default naming for this repository (overrides global setting)

Cleanup Policy Options #

  • keep (default): Units from this repository remain deployed even when the compose file is removed
  • delete: Units that no longer exist in the repository Docker Compose files will be stopped and removed

Example Configuration #

# Global settings
repositoryDir: /var/lib/quad-ops
syncInterval: 10m
quadletDir: /etc/containers/systemd
dbPath: /var/lib/quad-ops/quad-ops.db
userMode: false
verbose: true
usePodmanDefaultNames: false  # No systemd- prefix in container hostnames

# Repository definitions
repositories:
  - name: app1
    url: https://github.com/example/app1
    ref: main
    composeDir: compose
    cleanup: keep  # Units remain even if removed from Docker Compose files

  - name: app2
    url: https://github.com/example/app2
    ref: dev
    cleanup: delete  # Units are stopped and removed when they're no longer in Docker Compose files
    usePodmanDefaultNames: true  # Use systemd- prefix in container hostnames for this repo only