|
| 1 | +#!/usr/bin/env bash |
| 2 | +set -euo pipefail |
| 3 | + |
| 4 | +# Run the server in a production-like way (foreground). |
| 5 | +# Reads variables from ./scripts/prod.env if present, then from environment. |
| 6 | +# Required: |
| 7 | +# BASE (e.g., https://relay.example) |
| 8 | +# CORS (e.g., https://app.example) |
| 9 | +# Optional: |
| 10 | +# ADDR (default :1234) |
| 11 | +# DATA_DIR (default ./data) |
| 12 | +# UPLOAD_MAX_MB (default 128) |
| 13 | +# TURN=1 to enable embedded TURN (dev/test only) |
| 14 | + |
| 15 | +repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" |
| 16 | +cd "$repo_root" |
| 17 | + |
| 18 | +if [[ -f "./scripts/prod.env" ]]; then |
| 19 | + set -a; source "./scripts/prod.env"; set +a |
| 20 | +fi |
| 21 | + |
| 22 | +: "${BASE:?set BASE, e.g. https://relay.example}" |
| 23 | +: "${CORS:?set CORS, e.g. https://app.example}" |
| 24 | + |
| 25 | +BIN_DIR="${BIN_DIR:-./bin}" |
| 26 | +BIN="$BIN_DIR/noisytransferd" |
| 27 | +mkdir -p "$BIN_DIR" |
| 28 | + |
| 29 | +version="${VERSION:-$(git describe --tags --always 2>/dev/null || echo prod-build)}" |
| 30 | +commit="${COMMIT:-$(git rev-parse --short HEAD 2>/dev/null || echo unknown)}" |
| 31 | + |
| 32 | +echo "==> building noisytransferd ($version @ $commit)" |
| 33 | +go build -ldflags "-s -w -X main.version=$version -X main.commit=$commit" -o "$BIN" ./noisytransferd |
| 34 | + |
| 35 | +ADDR="${ADDR:-:1234}" |
| 36 | +DATA_DIR="${DATA_DIR:-./data}" |
| 37 | +UPLOAD_MAX_MB="${UPLOAD_MAX_MB:-128}" |
| 38 | +export NT_DEV="${NT_DEV:-0}" |
| 39 | + |
| 40 | +args=( |
| 41 | + -addr "$ADDR" |
| 42 | + -base "$BASE" |
| 43 | + -cors "$CORS" |
| 44 | + -data "$DATA_DIR" |
| 45 | + -upload_max_mb "$UPLOAD_MAX_MB" |
| 46 | +) |
| 47 | +if [[ "${TURN:-0}" != "0" ]]; then |
| 48 | + args+=(-turn) |
| 49 | +fi |
| 50 | + |
| 51 | +echo "==> running noisytransferd ${args[*]}" |
| 52 | +exec "$BIN" "${args[@]}" |
0 commit comments