cc-libs/just/server.just

24 lines
1.2 KiB
Plaintext

# Serve the trapos-server gateway (port 4444) for remote/in-game attachment using
# repo-local .env secrets. Mirrors `opencode-serve`. Both TRAPOS_SERVER_PASSWORD and
# OPENCODE_SERVER_PASSWORD are required: an empty one would run the gateway
# unauthenticated, so a missing secret is a fatal error (see also the guard in index.ts).
# This serves plain ws:// — front it with TLS/wss in production (see docs/public-ports.md).
[positional-arguments]
serve *args:
#!/usr/bin/env bash
set -euo pipefail
repo='{{justfile_directory()}}'
if [ -f "$repo/.env" ]; then set -a; . "$repo/.env"; set +a; fi
for var in TRAPOS_SERVER_PASSWORD OPENCODE_SERVER_PASSWORD; do
if [ -z "${!var:-}" ]; then
printf '%s\n' "serve: $var is empty or unset in .env — refusing to start (run \`just install\` to generate secrets)" >&2
exit 1
fi
done
export TRAPOS_SERVER_PASSWORD
export OPENCODE_SERVER_PASSWORD
export OPENCODE_URL="${OPENCODE_URL:-http://127.0.0.1:4242}"
export TRAPOS_SERVER_HOST="${TRAPOS_SERVER_HOST:-0.0.0.0}"
export TRAPOS_SERVER_PORT="${TRAPOS_SERVER_PORT:-4444}"
exec npm run dev --prefix tools/trapos-server -- "$@"