fix: ElectrumX sync detection + rootless podman infrastructure
- ElectrumX status: detect "Connection reset" as syncing (not error) by using case-insensitive check on connect/reset/refused - Deploy script: auto-configure rootless podman prerequisites (sysctl unprivileged ports >= 80, loginctl linger, podman socket) - Marketplace: sort installed apps to bottom of list Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -174,7 +174,8 @@ pub async fn get_electrs_sync_status() -> ElectrsSyncStatus {
|
||||
Ok(Err(e)) => {
|
||||
// ElectrumX may not be ready on 50001 during initial sync
|
||||
let err_msg = e.to_string();
|
||||
let (status, error) = if err_msg.contains("connect") || err_msg.contains("Connection refused") {
|
||||
let err_lower = err_msg.to_lowercase();
|
||||
let (status, error) = if err_lower.contains("connect") || err_lower.contains("reset") || err_lower.contains("refused") {
|
||||
// Estimate progress from data directory size
|
||||
let _est_pct = if data_bytes > 0 {
|
||||
((data_bytes as f64 / ESTIMATED_FULL_INDEX_BYTES) * 100.0).min(99.0)
|
||||
|
||||
@@ -643,6 +643,21 @@ PYEOF
|
||||
# Create data directories for DWN, content sharing, federation, identities
|
||||
progress "Creating data directories"
|
||||
ssh $SSH_OPTS "$TARGET_HOST" '
|
||||
# Rootless podman: allow binding to ports >= 80 (default is 1024)
|
||||
if ! grep -q "unprivileged_port_start=80" /etc/sysctl.d/99-rootless-podman.conf 2>/dev/null; then
|
||||
echo "net.ipv4.ip_unprivileged_port_start=80" | sudo tee /etc/sysctl.d/99-rootless-podman.conf > /dev/null
|
||||
sudo sysctl -p /etc/sysctl.d/99-rootless-podman.conf 2>/dev/null
|
||||
echo " Rootless port binding enabled (>=80)"
|
||||
fi
|
||||
# Rootless podman: enable lingering for container persistence
|
||||
if [ "$(loginctl show-user archipelago 2>/dev/null | grep Linger)" != "Linger=yes" ]; then
|
||||
sudo loginctl enable-linger archipelago
|
||||
echo " Linger enabled for archipelago user"
|
||||
fi
|
||||
# Rootless podman: enable podman socket
|
||||
systemctl --user enable podman.socket 2>/dev/null || true
|
||||
systemctl --user start podman.socket 2>/dev/null || true
|
||||
|
||||
sudo mkdir -p /var/lib/archipelago/dwn/messages
|
||||
sudo mkdir -p /var/lib/archipelago/dwn/protocols
|
||||
sudo mkdir -p /var/lib/archipelago/content/files
|
||||
|
||||
Reference in New Issue
Block a user