Skip to content

proxy - Caddy Proxy Management

The proxy command controls the Caddy reverse proxy server that handles HTTP routing, SSL termination, and load balancing for Nixopus services. Manage proxy configuration, monitor status, and control the proxy lifecycle.

Quick Start

bash
# Load proxy configuration
nixopus proxy load

# Check proxy status
nixopus proxy status

# Stop proxy server
nixopus proxy stop

Overview

The proxy command manages Caddy as the reverse proxy for Nixopus:

  • HTTP/HTTPS routing to API and view services
  • Configuration loading and management
  • Proxy status monitoring
  • Graceful proxy shutdown

Subcommands

load - Load Proxy Configuration

Load and apply Caddy proxy configuration from file with validation support.

bash
nixopus proxy load [OPTIONS]
OptionShortDescriptionDefault
--proxy-port-pCaddy admin API port2019
--verbose-vShow detailed loggingfalse
--output-oOutput format (text, json)text
--dry-runValidate configuration without applyingfalse
--config-file-cPath to Caddy configuration fileNone
--timeout-tOperation timeout in seconds10

Examples:

bash
# Load default proxy configuration
nixopus proxy load

# Load custom configuration file
nixopus proxy load --config-file /path/to/caddy.json

# Validate configuration without applying
nixopus proxy load --config-file caddy.json --dry-run

# Load with custom admin port
nixopus proxy load --proxy-port 2019 --verbose

status - Check Proxy Status

Display status information about the Caddy proxy server.

bash
nixopus proxy status [OPTIONS]
OptionShortDescriptionDefault
--proxy-port-pCaddy admin API port2019
--verbose-vShow detailed status informationfalse
--output-oOutput format (text, json)text
--dry-runPreview operation without executingfalse
--timeout-tOperation timeout in seconds10

Examples:

bash
# Basic proxy status
nixopus proxy status

# Detailed status information
nixopus proxy status --verbose

# JSON output for monitoring
nixopus proxy status --output json

# Check with custom admin port
nixopus proxy status --proxy-port 2019

stop - Stop Proxy Server

Gracefully stop the Caddy proxy server.

bash
nixopus proxy stop [OPTIONS]
OptionShortDescriptionDefault
--proxy-port-pCaddy admin API port2019
--verbose-vShow detailed loggingfalse
--output-oOutput format (text, json)text
--dry-runPreview stop operationfalse
--timeout-tOperation timeout in seconds10

Examples:

bash
# Graceful proxy shutdown
nixopus proxy stop

# Stop with detailed logging
nixopus proxy stop --verbose

# Preview stop operation
nixopus proxy stop --dry-run

# Stop with custom admin port
nixopus proxy stop --proxy-port 2019

Configuration

The proxy command reads configuration values from the built-in config.prod.yaml file to determine the default Caddy admin port.

Default Configuration Values

SettingDefault ValueConfiguration PathDescription
Proxy Port2019services.caddy.env.PROXY_PORTCaddy admin API port
Timeout10 secondsN/AOperation timeout (hardcoded default)

Configuration Source

Configuration is loaded from the built-in config.prod.yaml:

yaml
# Built-in configuration
services:
  caddy:
    env:
      PROXY_PORT: ${PROXY_PORT:-2019}

Overriding Configuration

You can override defaults using command-line options:

bash
# Use custom admin port
nixopus proxy status --proxy-port 8080

# Use custom config file
nixopus proxy load --config-file /custom/caddy.json

# Combine both
nixopus proxy load --proxy-port 8080 --config-file /custom/caddy.json

Error Handling

Common error scenarios and solutions:

ErrorCauseSolution
Connection refusedCaddy admin API not runningStart Caddy or check admin port
Configuration file not foundInvalid config file pathCheck file path and permissions
Invalid configurationMalformed Caddy configValidate JSON/config syntax
Permission deniedInsufficient network permissionsUse sudo or check port availability
Operation timeoutNetwork or server issuesIncrease timeout with --timeout option

Made with love
Released under the Functional Source License (FSL)