diff --git a/docker-compose.yml b/docker-compose.yml index 7a0d155..d02cf5c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,9 +61,6 @@ services: - "4001:4001/udp" - "${IPFS_GATEWAY_BIND:-127.0.0.1}:8080:8080" networks: [mynet] - sysctls: - net.core.rmem_max: "2500000" - net.core.wmem_max: "2500000" ulimits: nofile: { soft: 65536, hard: 65536 } diff --git a/start.sh b/start.sh index abaa6da..0e528cd 100644 --- a/start.sh +++ b/start.sh @@ -36,17 +36,31 @@ fi ask_or_keep() { local key="$1"; shift local prompt="$1"; shift - local def="$1"; shift || true + local def="" + if [[ $# -gt 0 ]]; then + def="$1" + shift + fi + local invalid="" + if [[ $# -gt 0 ]]; then + invalid="$1" + shift + fi local cur cur=$(ini_val "$key") - if [[ -n "$cur" ]]; then + if [[ -n "$cur" && ( -z "$invalid" || "$cur" != "$invalid" ) ]]; then echo "$key is set in .env; keeping existing value" eval "$key=\"$cur\"" - else - read -rp "$prompt [${def}]: " val || true - val=${val:-$def} - eval "$key=\"$val\"" + return fi + local hint="$def" + if [[ -n "$hint" ]]; then + read -rp "$prompt [${hint}]: " val || true + val=${val:-$hint} + else + read -rp "$prompt: " val || true + fi + eval "$key=\"$val\"" } if [[ "$NODE_PRIVACY" == "private" ]]; then @@ -58,10 +72,10 @@ fi ask_or_keep SANIC_PORT "Internal app port (SANIC_PORT)" "$(ini_val SANIC_PORT)" ask_or_keep BACKEND_HTTP_PORT "Published backend port on host (BACKEND_HTTP_PORT)" "$(ini_val BACKEND_HTTP_PORT)" -ask_or_keep BOOTSTRAP_SEEDS "Bootstrap seeds (comma-separated URLs)" "$(ini_val BOOTSTRAP_SEEDS)" +ask_or_keep BOOTSTRAP_SEEDS "Bootstrap seeds (comma-separated URLs)" "" "https://my-bootstrap-1.example.com,https://my-bootstrap-2.example.com" ask_or_keep HANDSHAKE_INTERVAL_SEC "Handshake interval seconds" "$(ini_val HANDSHAKE_INTERVAL_SEC)" -ask_or_keep TELEGRAM_API_KEY "Telegram uploader bot token (TELEGRAM_API_KEY)" "$(ini_val TELEGRAM_API_KEY)" -ask_or_keep CLIENT_TELEGRAM_API_KEY "Telegram client bot token (CLIENT_TELEGRAM_API_KEY)" "$(ini_val CLIENT_TELEGRAM_API_KEY)" +ask_or_keep TELEGRAM_API_KEY "Telegram uploader bot token (TELEGRAM_API_KEY)" "" "YOUR_UPLOADER_BOT_TOKEN" +ask_or_keep CLIENT_TELEGRAM_API_KEY "Telegram client bot token (CLIENT_TELEGRAM_API_KEY)" "" "YOUR_CLIENT_BOT_TOKEN" echo "Applying configuration to $ENV_FILE ..." @@ -83,7 +97,24 @@ fi update_env SANIC_PORT "$SANIC_PORT" update_env BACKEND_HTTP_PORT "$BACKEND_HTTP_PORT" update_env BOOTSTRAP_SEEDS "$BOOTSTRAP_SEEDS" +local local_bootstrap_required=$(ini_val BOOTSTRAP_REQUIRED) +if [[ -z "$BOOTSTRAP_SEEDS" ]]; then + echo "No bootstrap seeds provided; disabling mandatory bootstrap." + update_env BOOTSTRAP_REQUIRED 0 +else + local_bootstrap_required=${local_bootstrap_required:-1} + update_env BOOTSTRAP_REQUIRED "$local_bootstrap_required" +fi update_env HANDSHAKE_INTERVAL_SEC "$HANDSHAKE_INTERVAL_SEC" +if [[ -z "$TELEGRAM_API_KEY" || "$TELEGRAM_API_KEY" == "YOUR_UPLOADER_BOT_TOKEN" ]]; then + echo "TELEGRAM_API_KEY must be provided (create a bot via @BotFather)." >&2 + exit 1 +fi +if [[ -z "$CLIENT_TELEGRAM_API_KEY" || "$CLIENT_TELEGRAM_API_KEY" == "YOUR_CLIENT_BOT_TOKEN" ]]; then + echo "CLIENT_TELEGRAM_API_KEY must be provided (client bot token)." >&2 + exit 1 +fi + update_env TELEGRAM_API_KEY "$TELEGRAM_API_KEY" update_env CLIENT_TELEGRAM_API_KEY "$CLIENT_TELEGRAM_API_KEY"