chore(ops,docs): first-boot containers, image versions, design docs, android remote-input
- first-boot-containers + image-versions for fmcd/fedimint - dual-ecash, meshroller-integration, and remaining-issues design docs - Android remote-input two-finger scroll + external-open handling Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
87769cbfbf
commit
705e2436ba
@@ -172,6 +172,31 @@ FBEOF
|
||||
chown -R 1000:1000 /var/lib/archipelago/secrets
|
||||
fi
|
||||
|
||||
# Create Fedimint Client (fmcd) alongside FileBrowser so ecash / networking
|
||||
# sats work out of the box even on unbundled images. Image is pulled (not
|
||||
# pre-loaded). Resilient entrypoint retries on join failure → never crash-loops.
|
||||
if ! $DOCKER ps -a --format '{{.Names}}' 2>/dev/null | grep -q '^fedimint-clientd$'; then
|
||||
log "Creating Fedimint Client (fmcd)..."
|
||||
mkdir -p /var/lib/archipelago/fmcd
|
||||
FMCD_PW_FILE=/var/lib/archipelago/fmcd/password
|
||||
[ -s "$FMCD_PW_FILE" ] || head -c 24 /dev/urandom | base64 | tr -dc 'A-Za-z0-9' > "$FMCD_PW_FILE"
|
||||
FMCD_PW="$(cat "$FMCD_PW_FILE")"
|
||||
FMCD_DEFAULT_INVITE="fed11qgqyj3mfwfhksw309uuxywtxxfjrjc35xuexverpxdsnxcnrxucxvenzveskgc3kvvun2c34xp3k2ep38yunzdpexcekxe3hvd3rvvmx8pnrvdenx5mnzvtzqqqjqt0t6pc3s5z0ynqjw9s4njf6svwgu59kweawc0vvrddcjeemw6yyn4pcdp"
|
||||
pull_with_fallback "${FMCD_IMAGE}"
|
||||
$DOCKER run -d --name fedimint-clientd --restart unless-stopped \
|
||||
--network archy-net \
|
||||
--cap-drop ALL --cap-add CHOWN --cap-add SETUID --cap-add SETGID --cap-add DAC_OVERRIDE \
|
||||
--security-opt no-new-privileges:true \
|
||||
--health-cmd='curl -sf http://localhost:8080/health || exit 1' \
|
||||
--health-interval=120s --health-timeout=10s --health-retries=3 \
|
||||
--memory=256m \
|
||||
-p 8178:8080 \
|
||||
-v /var/lib/archipelago/fmcd:/data \
|
||||
-e FMCD_ADDR=0.0.0.0:8080 -e FMCD_MODE=rest -e FMCD_DATA_DIR=/data \
|
||||
-e FMCD_PASSWORD="$FMCD_PW" -e FMCD_INVITE_CODE="$FMCD_DEFAULT_INVITE" \
|
||||
${FMCD_IMAGE} 2>>"$LOG" && log " fmcd created" || log " WARNING: fmcd creation failed"
|
||||
fi
|
||||
|
||||
# Generate WireGuard keys for standalone VPN (archipelago-wg service)
|
||||
WG_DIR="/var/lib/archipelago/wireguard"
|
||||
if [ ! -f "$WG_DIR/private.key" ]; then
|
||||
@@ -532,6 +557,7 @@ mem_limit() {
|
||||
homeassistant) echo "512m";;
|
||||
fedimint) echo "512m";;
|
||||
fedimint-gateway) echo "512m";;
|
||||
fedimint-clientd) echo "256m";;
|
||||
photoprism) $LOW_MEM && echo "512m" || echo "1g";;
|
||||
mempool-api) echo "512m";;
|
||||
jellyfin) echo "1g";;
|
||||
@@ -560,7 +586,7 @@ MISSING_IMAGES=""
|
||||
for img_var in BITCOIN_KNOTS_IMAGE MARIADB_IMAGE ELECTRUMX_IMAGE \
|
||||
MEMPOOL_BACKEND_IMAGE MEMPOOL_WEB_IMAGE BTCPAY_POSTGRES_IMAGE \
|
||||
NBXPLORER_IMAGE BTCPAY_IMAGE LND_IMAGE FEDIMINT_IMAGE \
|
||||
FEDIMINT_GATEWAY_IMAGE HOMEASSISTANT_IMAGE GRAFANA_IMAGE \
|
||||
FEDIMINT_GATEWAY_IMAGE FMCD_IMAGE HOMEASSISTANT_IMAGE GRAFANA_IMAGE \
|
||||
UPTIME_KUMA_IMAGE JELLYFIN_IMAGE VAULTWARDEN_IMAGE \
|
||||
NEXTCLOUD_IMAGE SEARXNG_IMAGE FILEBROWSER_IMAGE; do
|
||||
img="${!img_var}"
|
||||
@@ -1019,6 +1045,31 @@ if ! $DOCKER ps --format '{{.Names}}' 2>/dev/null | grep -q fedimint-gateway; th
|
||||
fi
|
||||
track_container "fedimint-gateway"
|
||||
|
||||
# 5c. Fedimint Client (fmcd) — ecash client daemon; auto-joins the default
|
||||
# federation. The image's resilient entrypoint retries on join failure (fmcd
|
||||
# needs >=1 federation to boot), so an unreachable default never crash-loops the
|
||||
# node. The archipelago wallet bridge reads the password from
|
||||
# /var/lib/archipelago/fmcd/password and talks to it on host port 8178.
|
||||
if ! $DOCKER ps --format '{{.Names}}' 2>/dev/null | grep -q '^fedimint-clientd$'; then
|
||||
log "Creating Fedimint Client (fmcd)..."
|
||||
mkdir -p /var/lib/archipelago/fmcd
|
||||
FMCD_PW_FILE=/var/lib/archipelago/fmcd/password
|
||||
[ -s "$FMCD_PW_FILE" ] || head -c 24 /dev/urandom | base64 | tr -dc 'A-Za-z0-9' > "$FMCD_PW_FILE"
|
||||
FMCD_PW="$(cat "$FMCD_PW_FILE")"
|
||||
FMCD_DEFAULT_INVITE="fed11qgqyj3mfwfhksw309uuxywtxxfjrjc35xuexverpxdsnxcnrxucxvenzveskgc3kvvun2c34xp3k2ep38yunzdpexcekxe3hvd3rvvmx8pnrvdenx5mnzvtzqqqjqt0t6pc3s5z0ynqjw9s4njf6svwgu59kweawc0vvrddcjeemw6yyn4pcdp"
|
||||
$DOCKER run -d --name fedimint-clientd --restart unless-stopped \
|
||||
--health-cmd="curl -sf http://localhost:8080/health || exit 1" --health-interval=120s --health-timeout=10s --health-retries=3 \
|
||||
--memory=$(mem_limit fedimint-clientd) --network archy-net --network-alias fedimint-clientd \
|
||||
--cap-drop ALL --cap-add CHOWN --cap-add SETUID --cap-add SETGID --cap-add DAC_OVERRIDE \
|
||||
--security-opt no-new-privileges:true \
|
||||
-p 8178:8080 \
|
||||
-v /var/lib/archipelago/fmcd:/data \
|
||||
-e FMCD_ADDR=0.0.0.0:8080 -e FMCD_MODE=rest -e FMCD_DATA_DIR=/data \
|
||||
-e FMCD_PASSWORD="$FMCD_PW" -e FMCD_INVITE_CODE="$FMCD_DEFAULT_INVITE" \
|
||||
"$FMCD_IMAGE" 2>>"$LOG" || true
|
||||
fi
|
||||
track_container "fedimint-clientd"
|
||||
|
||||
# (Bitcoin-dependent containers created above regardless of BITCOIN_READY)
|
||||
|
||||
# ── Tier 3: Applications (independent — always attempt) ───────────────────
|
||||
|
||||
Reference in New Issue
Block a user