Quick Start

Quick Start with Quad-Ops #

Get Quad-Ops running in under 5 minutes using our automated installer script.

Prerequisites #

  • Podman 4.0+
  • Git
  • systemd-based Linux distribution
  • curl, tar, sha256sum (usually pre-installed)

One-Line Installation #

Install quad-ops system-wide with root privileges:

curl -fsSL https://raw.githubusercontent.com/trly/quad-ops/main/install.sh | bash

This installs:

  • Binary: /usr/local/bin/quad-ops
  • Config: /etc/quad-ops/config.yaml.example
  • Services: /etc/systemd/system/quad-ops.service and /etc/systemd/system/quad-ops@.service

User Installation #

Install quad-ops for the current user only (rootless containers):

curl -fsSL https://raw.githubusercontent.com/trly/quad-ops/main/install.sh | bash -s -- --user

This installs:

  • Binary: $HOME/.local/bin/quad-ops
  • Config: $HOME/.config/quad-ops/config.yaml.example
  • Service: $HOME/.config/systemd/user/quad-ops.service

Installation Options #

Specific Version #

curl -fsSL https://raw.githubusercontent.com/trly/quad-ops/main/install.sh | bash -s -- --version v1.2.3

Custom Install Path #

curl -fsSL https://raw.githubusercontent.com/trly/quad-ops/main/install.sh | bash -s -- --install-path /usr/local/bin

Help and Options #

curl -fsSL https://raw.githubusercontent.com/trly/quad-ops/main/install.sh | bash -s -- --help

Post-Installation Setup #

1. Add to PATH (if needed) #

The installer will warn you if the install location isn’t in your PATH:

User install:

echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
source ~/.bashrc

Note: /usr/local/bin is already in PATH by default for system installations.

2. Configure Quad-Ops #

Copy and customize the example configuration:

System install:

sudo cp /etc/quad-ops/config.yaml.example /etc/quad-ops/config.yaml
sudo nano /etc/quad-ops/config.yaml

User install:

cp $HOME/.config/quad-ops/config.yaml.example $HOME/.config/quad-ops/config.yaml
nano $HOME/.config/quad-ops/config.yaml

3. Your First Sync #

Test with Example Repository #

Edit your config file to include the example repository:

# Global settings
syncInterval: 5m

# Example repository
repositories:
  - name: quad-ops-examples
    url: "https://github.com/trly/quad-ops.git"
    ref: "main"
    composeDir: "examples/multi-service"

Run the Sync #

System mode:

sudo quad-ops sync

User mode:

quad-ops --user sync

Verify Installation #

# List managed units
quad-ops unit list

# Check running containers
podman ps

Enable Automatic Syncing #

System Service #

sudo systemctl enable --now quad-ops

User Service #

systemctl --user enable --now quad-ops

Template Service (for specific users) #

System administrators can run quad-ops for specific users:

sudo systemctl enable --now quad-ops@username

Next Steps #

🎉 Congratulations! Quad-Ops is now installed and running.

  • Visit your application: If using the example, check http://localhost:8080
  • Create your own projects: See Container Management for information on setting up a new repository to deploy from

Troubleshooting #

Permission Denied #

If you get permission errors, ensure you have the necessary privileges:

  • System install: requires sudo for installation
  • User install: runs without sudo but containers run rootless

Path Issues #

If quad-ops command isn’t found:

  1. Check the installer output for PATH warnings
  2. Add the install directory to your PATH
  3. Restart your shell or run source ~/.bashrc

Service Issues #

If systemd services fail to start:

# Check service status
systemctl status quad-ops

# View logs
journalctl -u quad-ops

Alternative Installation #

For users who prefer manual installation or need more control, see the Installation guide for step-by-step manual instructions.