#!/usr/bin/env bash set -eu export FREECIV_SERVER_URL="${FREECIV_SERVER_URL:-http://127.0.0.1}" export FREECIV_USERNAME="${FREECIV_USERNAME:-openenvbot}" export FREECIV_CLIENT_PORT="${FREECIV_CLIENT_PORT:-6000}" export FREECIV_TURN_TIMEOUT_S="${FREECIV_TURN_TIMEOUT_S:-120}" export ENABLE_WEB_INTERFACE="${ENABLE_WEB_INTERFACE:-true}" log_file=/tmp/start_space.log : > "$log_file" log() { local line line="[$(date -Iseconds)] $*" echo "$line" | tee -a "$log_file" >&2 } service_status() { local name url name="$1" url="$2" if curl -fsS --max-time 2 "$url" >/dev/null 2>&1; then echo "$name=up" else echo "$name=down" fi } log "start_space.sh boot" ( while true; do log "$(service_status nginx http://127.0.0.1/) $(service_status publite2 http://127.0.0.1/pubstatus) $(service_status tomcat http://127.0.0.1:8080/freeciv-web/)" sleep 2 done ) & log "starting uvicorn immediately" exec python -m uvicorn server.app:app --host 0.0.0.0 --port 8000 --ws-ping-interval 300 --ws-ping-timeout 300