Initial commit: AetherForge Linux (forge-mesh) v0.1.0-dev
Some checks failed
Test / test (push) Has been cancelled

This commit is contained in:
drjones
2026-07-04 09:31:23 +00:00
commit 3678b199d0
154 changed files with 21714 additions and 0 deletions

84
scripts/pack-usb.sh Executable file
View File

@@ -0,0 +1,84 @@
#!/usr/bin/env bash
# Build a portable USB tarball: LAUNCH.sh, data template, README, optional binaries.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
OUT_DIR="${1:-$ROOT/dist}"
STAMP="$(date -u +%Y%m%d)"
PKG_NAME="forge-mesh-portable-${STAMP}"
STAGE="$OUT_DIR/$PKG_NAME"
ARCHIVE="$OUT_DIR/${PKG_NAME}.tar.gz"
echo "==> Staging portable deck at $STAGE"
rm -rf "$STAGE"
mkdir -p "$STAGE"/{bin,data,scripts}
cp scripts/LAUNCH.sh "$STAGE/scripts/LAUNCH.sh"
chmod +x "$STAGE/scripts/LAUNCH.sh"
ln -sf scripts/LAUNCH.sh "$STAGE/LAUNCH.sh"
if [[ -f data/config.json ]]; then
cp data/config.json "$STAGE/data/config.json"
else
cat >"$STAGE/data/config.json" <<'EOF'
{
"listen_addr": ":8989",
"data_dir": "./data",
"database_path": "./data/forge-mesh.db",
"auth": {
"basic_username": "admin",
"basic_password": "changeme",
"fleet_secret": "change-me-fleet-secret"
},
"wallet_policy": {
"default_wallet": "",
"currency": "XMR"
},
"stratum": {
"xmr_listen": ":3333",
"rvn_listen": ":3388",
"upstream_xmr": "",
"upstream_rvn": ""
},
"forge": {
"signing_key_path": "./data/signing.key",
"artifacts_dir": "./data/artifacts"
},
"court": {
"ollama_url": "http://127.0.0.1:11434",
"enabled": false
}
}
EOF
fi
# Optional: include cloudflared token placeholder (empty = no tunnel until operator fills in).
touch "$STAGE/data/cloudflared-token.txt.example"
cat >"$STAGE/data/cloudflared-token.txt.example" <<'EOF'
# Paste your Cloudflare Tunnel token on a single line, then rename to cloudflared-token.txt
# Or set AF_TUNNEL_TOKEN in the environment before running LAUNCH.sh
EOF
cp scripts/README-USB.md "$STAGE/README.md"
if [[ -x bin/forge-mesh-server ]]; then
cp bin/forge-mesh-server "$STAGE/bin/forge-mesh-server"
echo " included bin/forge-mesh-server"
else
echo " WARN: bin/forge-mesh-server missing — run 'make server' before packing for a self-contained bundle"
fi
if [[ -x bin/cloudflared ]]; then
cp bin/cloudflared "$STAGE/bin/cloudflared"
echo " included bin/cloudflared"
fi
mkdir -p "$OUT_DIR"
tar -C "$OUT_DIR" -czf "$ARCHIVE" "$PKG_NAME"
rm -rf "$STAGE"
echo "==> Created $ARCHIVE"
echo " Extract anywhere, edit data/config.json, optionally data/cloudflared-token.txt, then:"
echo " ./LAUNCH.sh"