#!/bin/bash # Manual start/stop helper for the dev stack (/docker/dev). # Dev is intentionally NOT started on boot; bring it up explicitly when needed. set -uo pipefail DEV_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Start order matters: redis + supabase first (web/worker depend on them). ORDER=(redis supabase frps stripe-stub bandwidth-worker web) ensure_network() { docker network inspect dev_edge >/dev/null 2>&1 || docker network create dev_edge } cmd="${1:-}" case "$cmd" in up) ensure_network for d in "${ORDER[@]}"; do echo "==> up: $d" if [ -f "$DEV_DIR/$d/Dockerfile" ]; then (cd "$DEV_DIR/$d" && docker compose up -d --build) else (cd "$DEV_DIR/$d" && docker compose up -d) fi done ;; down) for ((i=${#ORDER[@]}-1; i>=0; i--)); do d="${ORDER[$i]}" echo "==> down: $d" (cd "$DEV_DIR/$d" && docker compose down) done ;; ps) docker ps --filter "name=-dev" --format "{{.Names}}\t{{.Status}}" | sort ;; *) echo "usage: $0 {up|down|ps}" >&2 exit 2 ;; esac