Adds apps/podsteadr (main Fastify+Vue app, container.build from the podsteadr repo), apps/podsteadr-mediamtx (RTMP/WHIP ingest, HLS, recording), and apps/podsteadr-blossom (BUD-02 media blobs), wired together on a dedicated podsteadr-net bridge network per the multi-container pattern documented in docs/app-developer-guide.md (indeedhub's api/relay/minio/redis/postgres siblings). All podsteadr ports are auth: none with a rationale, since it's a public podcast/livestream server whose RSS feeds, HLS playback, and blob reads must stay reachable by third-party clients with no Archipelago session — the app already gates its own sensitive routes with NIP-98 and per-stream secret keys. Also updates apps/PORTS.md, apps/README.md, and bumps the reviewed unauthenticated-port count in core/container/src/manifest.rs's unauthenticated_ports_are_all_accounted_for test (25 -> 31) to acknowledge the six new auth:none ports. Regenerated catalog-derived files (core/archipelago/src/fips/app_ports.rs, neode-ui/src/views/appSession/generatedAppSessionConfig.ts) via scripts/generate-app-catalog.py. All three manifests pass scripts/validate-app-manifest.sh and `cargo test -p archipelago-container manifest`.
36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build the podsteadr container image from the podsteadr repo.
|
|
# Usage: ./build-from-prototype.sh [path-to-podsteadr-repo]
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
DEFAULT_REPO="$HOME/podsteadr"
|
|
REPO_DIR="${1:-$DEFAULT_REPO}"
|
|
IMAGE_TAG="localhost/podsteadr:1.0.0"
|
|
|
|
if [ ! -d "$REPO_DIR" ]; then
|
|
echo "podsteadr repo not found at: $REPO_DIR"
|
|
echo " Set path: $0 /path/to/podsteadr"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$REPO_DIR/server/package.json" ] || [ ! -f "$REPO_DIR/frontend/package.json" ]; then
|
|
echo "No server/package.json or frontend/package.json found in $REPO_DIR — is this the right directory?"
|
|
exit 1
|
|
fi
|
|
|
|
# Determine container runtime
|
|
RUNTIME="podman"
|
|
if ! command -v podman >/dev/null 2>&1; then
|
|
RUNTIME="docker"
|
|
fi
|
|
|
|
echo "Building podsteadr from $REPO_DIR using $SCRIPT_DIR/Dockerfile"
|
|
$RUNTIME build -t "$IMAGE_TAG" -f "$SCRIPT_DIR/Dockerfile" "$REPO_DIR"
|
|
|
|
echo "Built $IMAGE_TAG"
|
|
echo ""
|
|
echo "You can now install podsteadr from the App Store in Archipelago."
|
|
echo "Or run directly: $RUNTIME run -d --name podsteadr-app -p 8095:8095 $IMAGE_TAG"
|