#!/usr/bin/env bash set -euo pipefail GITEA_DOMAIN="${GITEA_DOMAIN:-gitea.abyssinfo.com}" GITEA_WEB_UPSTREAM="${GITEA_WEB_UPSTREAM:-100.88.0.1:3001}" GITEA_OIDC_UPSTREAM="${GITEA_OIDC_UPSTREAM:-100.88.0.1:3080}" NETMAKER_DIR="${NETMAKER_DIR:-/root/netmaker}" CADDYFILE="${CADDYFILE:-${NETMAKER_DIR}/Caddyfile}" echo "[AbyssInfo] Configuring public Gitea reverse proxy" echo "[AbyssInfo] Domain: ${GITEA_DOMAIN}" echo "[AbyssInfo] Web upstream: http://${GITEA_WEB_UPSTREAM}" echo "[AbyssInfo] OIDC upstream: http://${GITEA_OIDC_UPSTREAM}" if [[ "$(id -u)" != "0" ]]; then echo "[AbyssInfo] Please run as root." >&2 exit 1 fi if [[ ! -f "${CADDYFILE}" ]]; then echo "[AbyssInfo] Missing ${CADDYFILE}" >&2 exit 1 fi echo "[AbyssInfo] Checking upstreams from server ..." curl -fsS --connect-timeout 3 --max-time 8 "http://${GITEA_OIDC_UPSTREAM}/oidc/.well-known/openid-configuration" >/dev/null \ && echo "[AbyssInfo] OIDC upstream OK" \ || echo "[AbyssInfo] WARN: OIDC upstream is not reachable from server" curl -fsSI --connect-timeout 3 --max-time 8 "http://${GITEA_WEB_UPSTREAM}/user/login" >/dev/null \ && echo "[AbyssInfo] Gitea web upstream OK" \ || echo "[AbyssInfo] WARN: Gitea web upstream is not reachable from server" python3 - </dev/null \ && echo "[AbyssInfo] Public OIDC endpoint OK" \ || echo "[AbyssInfo] WARN: Public OIDC endpoint is not ready. Check DNS and upstream reachability." curl -kfsSI --connect-timeout 5 --max-time 12 "https://${GITEA_DOMAIN}/user/login" >/dev/null \ && echo "[AbyssInfo] Public Gitea login endpoint OK" \ || echo "[AbyssInfo] WARN: Public Gitea login endpoint is not ready. Check DNS and upstream reachability." echo "[AbyssInfo] Gitea public access configured:" echo " https://${GITEA_DOMAIN}/oidc/.well-known/openid-configuration -> http://${GITEA_OIDC_UPSTREAM}" echo " https://${GITEA_DOMAIN}/user/login -> http://${GITEA_WEB_UPSTREAM}"