quad-ops doctor #
Check system health and configuration for quad-ops.
The doctor command performs comprehensive checks of:
- System requirements (systemd, podman)
- Configuration file validity
- Directory permissions and accessibility
- Repository connectivity
- File system requirements
This helps diagnose common setup and configuration issues.
Synopsis #
quad-ops doctor [flags]
Options #
-h, --help help for doctor
Global Options #
--config string Path to the configuration file
-o, --output string Output format (text, json, yaml) (default "text")
--quadlet-dir string Path to the quadlet directory
--repository-dir string Path to the repository directory
-u, --user Run in user mode
-v, --verbose Enable verbose logging
Check Categories #
System Requirements #
- systemd availability - Verifies systemd is available and functional
- Podman installation - Checks for proper Podman installation
- User mode compatibility - Validates rootless container support (when using
--user)
Configuration Validation #
- Config file syntax - Validates YAML/TOML configuration format
- Repository definitions - Checks repository URLs and credentials
- Directory paths - Verifies configured directories exist and are accessible
Permissions and Access #
- Directory permissions - Ensures quad-ops can read/write to required directories
- Git repository access - Tests connectivity to configured Git repositories
- systemd user access - Validates systemd user service permissions (user mode)
File System Requirements #
- Disk space - Checks available disk space for quadlet units and repositories
- Path accessibility - Verifies all configured paths are accessible
- Lock file creation - Tests ability to create synchronization lock files
Examples #
Basic health check #
quad-ops doctor
Check with verbose output #
quad-ops doctor --verbose
Check user mode configuration #
quad-ops doctor --user
Check with custom configuration #
quad-ops doctor --config /path/to/config.yaml
Output Formats #
The doctor command supports different output formats for integration with monitoring systems:
Text Output (default) #
quad-ops doctor
# ✓ systemd is available
# ✓ Podman is installed (version 4.9.0)
# ✓ Configuration file is valid
# ✗ Repository 'my-app' is not accessible
JSON Output #
quad-ops doctor --output json
# {"checks": [{"name": "systemd", "status": "pass"}, ...]}
YAML Output #
quad-ops doctor --output yaml
# checks:
# - name: systemd
# status: pass
Troubleshooting #
Common issues identified by the doctor command:
systemd Not Available #
- Install systemd or use a systemd-compatible system
- For user mode: enable lingering with
loginctl enable-linger
Podman Not Found #
- Install podman package for your distribution
- Ensure podman is in your PATH
Permission Denied #
- Check directory ownership and permissions
- For user mode: ensure directories are owned by the current user
- For system mode: ensure directories are accessible by root
Repository Access Issues #
- Verify Git repository URLs are correct
- Check network connectivity to repository hosts
- Ensure proper authentication (SSH keys, tokens) is configured