services:
- service:
  - name: caddy
    file:
    - file_type: variable
      text: caddy_ca_file
      source: ca_HTTP.crt
    - file_type: variable
      text: caddy_crt_file
      source: caddy.crt
    - file_type: variable
      text: caddy_key_file
      source: caddy.key
variables:
- family:
  - name: network
    variables:
    - variable:
      - name: incoming_ports
        redefine: true
        value:
        - text: 80
        - text: 443
  - name: caddy
    variables:
    - variable:
      - name: caddy_domain
        type: domainname
        description: Domain name
      - name: caddy_ca_file
        type: filename
        description: Caddy CA filename
        hidden: true
      - name: caddy_key_file
        type: filename
        description: Caddy private key filename
        hidden: true
      - name: caddy_crt_file
        type: filename
        description: Caddy public key filename
        hidden: true
constraints:
- fill:
  - name: calc_value
    param:
      - type: variable
        text: tls_ca_directory
      - text: ca_HTTP.crt
      - name: join
        text: /
    target:
      - text: caddy_ca_file
- fill:
  - name: calc_value
    param:
      - type: variable
        text: tls_cert_directory
      - text: caddy.crt
      - name: join
        text: /
    target:
      - text: caddy_crt_file
- fill:
  - name: calc_value
    param:
      - type: variable
        text: tls_key_directory
      - text: caddy.key
      - name: join
        text: /
    target:
      - text: caddy_key_file