#!/usr/bin/env sh # Map ND_* environment variables to netdesk_server.py CLI flags, so secrets stay # out of the image and the compose file (they come from the .env file / the # environment). Only non-empty vars are passed, so every flag is optional. set -eu set -- --port "${ND_PORT:-8443}" --bind "${ND_BIND:-0.0.0.0}" [ -n "${ND_STATUS_KEY:-}" ] && set -- "$@" --status-key "$ND_STATUS_KEY" [ -n "${ND_REG_KEY:-}" ] && set -- "$@" --reg-key "$ND_REG_KEY" [ -n "${ND_PORTAL_PASSWORD:-}" ] && set -- "$@" --portal-password "$ND_PORTAL_PASSWORD" [ -n "${ND_ACCESS_PATH:-}" ] && set -- "$@" --access-path "$ND_ACCESS_PATH" [ -n "${ND_OWNER_EMAIL:-}" ] && set -- "$@" --owner-email "$ND_OWNER_EMAIL" [ -n "${ND_PUBLIC_URL:-}" ] && set -- "$@" --public-url "$ND_PUBLIC_URL" [ -n "${ND_MAIL_FROM:-}" ] && set -- "$@" --mail-from "$ND_MAIL_FROM" [ -n "${ND_SMTP_HOST:-}" ] && set -- "$@" --smtp-host "$ND_SMTP_HOST" [ -n "${ND_TURN_HOST:-}" ] && set -- "$@" --turn-host "$ND_TURN_HOST" [ -n "${ND_TURN_SECRET:-}" ] && set -- "$@" --turn-secret "$ND_TURN_SECRET" [ "${ND_ALWAYS_USE_RELAY:-0}" = "1" ] && set -- "$@" --always-use-relay [ -n "${ND_CERT:-}" ] && set -- "$@" --cert "$ND_CERT" [ -n "${ND_KEY:-}" ] && set -- "$@" --key "$ND_KEY" [ "${ND_VERBOSE:-0}" = "1" ] && set -- "$@" --verbose # ND_TURN_* for Cloudflare TURN are read from the environment by the server # itself (argparse defaults to os.environ), so they need no mapping here. echo "[entrypoint] exec python netdesk_server.py $*" exec python /app/server/netdesk_server.py "$@"