0.27.2 — seed-secrets runs on host, not container
This commit is contained in:
@@ -58,7 +58,9 @@ done
|
|||||||
|
|
||||||
# 7. Seed secrets into Infisical (idempotent)
|
# 7. Seed secrets into Infisical (idempotent)
|
||||||
echo "[7/7] seed secrets"
|
echo "[7/7] seed secrets"
|
||||||
docker compose exec -T api oikos secret list > /dev/null 2>&1 && \
|
if [ -f "$REPO_DIR/scripts/seed-secrets.sh" ]; then
|
||||||
docker compose cp scripts/seed-secrets.sh api:/opt/oikos/scripts/seed-secrets.sh 2>/dev/null && \
|
REPO_DIR="$REPO_DIR" sh "$REPO_DIR/scripts/seed-secrets.sh" || \
|
||||||
docker compose exec -T api /opt/oikos/scripts/seed-secrets.sh || \
|
echo "WARNING: secret seeding failed"
|
||||||
echo "WARNING: secret seeding skipped (infisical not reachable)"
|
else
|
||||||
|
echo "SKIP: seed-secrets.sh not found"
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,44 +1,57 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# One-shot: populate Infisical with oikos secrets from env vars.
|
# One-shot: populate Infisical with oikos secrets from host .env.
|
||||||
# Designed to run inside the oikos-api container where Infisical is reachable.
|
# Runs on the deploy host (mac-mini) where docker-compose reads .env.
|
||||||
|
# Uses the oikos binary from the repo to talk to Infisical on localhost:8080.
|
||||||
|
#
|
||||||
|
# Usage: ./scripts/seed-secrets.sh
|
||||||
|
#
|
||||||
# Safe to re-run (set is idempotent).
|
# Safe to re-run (set is idempotent).
|
||||||
#
|
|
||||||
# Usage: docker exec oikos-api-1 /opt/oikos/scripts/seed-secrets.sh
|
|
||||||
#
|
|
||||||
# Secrets are read from the container environment (set via docker-compose).
|
|
||||||
# If a secret is already in Infisical, it is updated in place.
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
REPO_DIR="${REPO_DIR:-$SCRIPT_DIR/..}"
|
||||||
|
OIKOS_BIN="${OIKOS_BIN:-$REPO_DIR/bin/oikos}"
|
||||||
|
|
||||||
|
export OIKOS_INFISICAL_SITE_URL="${OIKOS_INFISICAL_SITE_URL:-http://localhost:8080}"
|
||||||
|
export OIKOS_INFISICAL_ENV="${OIKOS_INFISICAL_ENV:-dev}"
|
||||||
|
|
||||||
echo "=== seed-secrets: $(date) ==="
|
echo "=== seed-secrets: $(date) ==="
|
||||||
|
|
||||||
KEYS="
|
if [ ! -x "$OIKOS_BIN" ]; then
|
||||||
matrix_token:${OIKOS_MATRIX_TOKEN:-}
|
echo "Building oikos binary..."
|
||||||
approval_hmac-secret:${OIKOS_APPROVAL_HMAC_SECRET:-}
|
(cd "$REPO_DIR" && go build -o "$OIKOS_BIN" ./cmd/oikos/)
|
||||||
mcp_bearer-token:${OIKOS_MCP_BEARER_TOKEN:-}
|
fi
|
||||||
api_token:${OIKOS_API_TOKEN:-}
|
|
||||||
oidc_client-secret:${OIKOS_OIDC_CLIENT_SECRET:-}
|
|
||||||
openrouter_api-key:${OPENROUTER_API_KEY:-}
|
|
||||||
webhook_hmac-secret:${WEBHOOK_HMAC_SECRET:-}
|
|
||||||
"
|
|
||||||
|
|
||||||
set_count=0
|
set_count=0
|
||||||
skip_count=0
|
skip_count=0
|
||||||
|
fail_count=0
|
||||||
|
|
||||||
echo "$KEYS" | while IFS=: read -r key value; do
|
seed_key() {
|
||||||
[ -z "$key" ] && continue
|
key="$1"
|
||||||
|
env_var="$2"
|
||||||
|
value="$(eval echo \"\${$env_var:-}\")"
|
||||||
if [ -z "$value" ]; then
|
if [ -z "$value" ]; then
|
||||||
echo "SKIP: $key (env var empty/missing)"
|
echo "SKIP: $key ($env_var empty/missing)"
|
||||||
skip_count=$((skip_count + 1))
|
skip_count=$((skip_count + 1))
|
||||||
continue
|
return
|
||||||
fi
|
fi
|
||||||
if oikos secret set "$key" "$value" 2>/dev/null; then
|
if "$OIKOS_BIN" secret set "$key" "$value" 2>/dev/null; then
|
||||||
echo "SET: $key"
|
echo "SET: $key"
|
||||||
set_count=$((set_count + 1))
|
set_count=$((set_count + 1))
|
||||||
else
|
else
|
||||||
echo "FAIL: $key"
|
echo "FAIL: $key"
|
||||||
|
fail_count=$((fail_count + 1))
|
||||||
fi
|
fi
|
||||||
done
|
}
|
||||||
|
|
||||||
|
seed_key "matrix_token" "OIKOS_MATRIX_TOKEN"
|
||||||
|
seed_key "approval_hmac-secret" "OIKOS_APPROVAL_HMAC_SECRET"
|
||||||
|
seed_key "mcp_bearer-token" "OIKOS_MCP_BEARER_TOKEN"
|
||||||
|
seed_key "api_token" "OIKOS_API_TOKEN"
|
||||||
|
seed_key "oidc_client-secret" "OIKOS_OIDC_CLIENT_SECRET"
|
||||||
|
seed_key "openrouter_api-key" "OPENROUTER_API_KEY"
|
||||||
|
seed_key "webhook_hmac-secret" "WEBHOOK_HMAC_SECRET"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "seed-secrets complete: $set_count set, $skip_count skipped"
|
echo "seed-secrets complete: $set_count set, $skip_count skipped, $fail_count failed"
|
||||||
|
|||||||
Reference in New Issue
Block a user