[variables]
main_domain = "${domain}"
username = "${username}"
password = "${password:32}"

[[config.domains]]
serviceName = "registry"
port = 5_000
host = "${main_domain}"

[config.env]
USERNAME = "${username}"
PASSWORD = "${password}"

[[config.mounts]]
filePath = "./config.yml"
content = """
version: 0.1

log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
"""

[[config.mounts]]
filePath = "./entrypoint.sh"
content = """
#!/usr/bin/env sh

set -e 

if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
    echo "Error: USERNAME and PASSWORD environment variables must be set"
    exit 1
fi

apk add --no-cache apache2-utils
mkdir -p "$(dirname "$REGISTRY_AUTH_HTPASSWD_PATH")"
chmod 755 "$(dirname "$REGISTRY_AUTH_HTPASSWD_PATH")"
htpasswd -Bbc "$REGISTRY_AUTH_HTPASSWD_PATH" "$USERNAME" "$PASSWORD"
registry serve /etc/docker/registry/config.yml
"""
