Compare commits

..
8 changed files with 73 additions and 41 deletions
+11
View File
@@ -1,5 +1,16 @@
# Changelog
## v1.7.66-alpha (2026-05-18)
- Nginx Proxy Manager stale-port repair now detects stopped or `Created` Podman records by inspecting `podman ps -a` port metadata, covering records where `podman port nginx-proxy-manager` returns no mapping until start.
- Live recovery on `100.70.96.88` removed only the stale Nginx Proxy Manager container record and recreated it with `8081:81`, `8084:80`, and `8444:443`, preserving `/var/lib/archipelago/nginx-proxy-manager` data.
- Validation confirmed Nginx Proxy Manager recovered as healthy and responds through direct admin port `8081`, host compatibility port `81`, and `/app/nginx-proxy-manager/`.
## v1.7.65-alpha (2026-05-18)
- Orchestrator-backed app starts now run the same pre-start repairs as the legacy Podman path, so Nginx Proxy Manager stale `81:81` container metadata is removed and recreated before the orchestrator tries to start it.
- Live diagnostics on `100.70.96.88` confirmed host nginx is healthy while Nginx Proxy Manager has no listeners on `8081`, `8084`, or `8444`, causing host nginx `502` responses for NPM proxy paths.
## v1.7.64-alpha (2026-05-18)
- Update apply rate limiting is relaxed for authenticated admins from 2 attempts per 10 minutes to 10 attempts per minute, preventing the System Update page from getting stuck behind `429 Too Many Requests` during legitimate OTA retry/troubleshooting flows.
+1 -1
View File
@@ -80,7 +80,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
[[package]]
name = "archipelago"
version = "1.7.64-alpha"
version = "1.7.66-alpha"
dependencies = [
"anyhow",
"archipelago-container",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "archipelago"
version = "1.7.64-alpha"
version = "1.7.66-alpha"
edition = "2021"
description = "Archipelago Bitcoin Node OS - Native backend"
authors = ["Archipelago Team"]
@@ -668,6 +668,7 @@ async fn do_orchestrator_package_start(
if i > 0 {
tokio::time::sleep(std::time::Duration::from_secs(2)).await;
}
repair_before_package_start(name).await;
match orchestrator.start(name).await {
Ok(()) => wait_after_orchestrator_start(name).await,
Err(e) if is_unknown_app_id_error(&e) => {
@@ -890,17 +891,35 @@ async fn repair_nginx_proxy_manager_container() {
}
async fn nginx_proxy_manager_has_legacy_admin_port() -> bool {
let Ok(output) = podman_control(&["port", "nginx-proxy-manager", "81/tcp"]).await else {
if let Ok(output) = podman_control(&["port", "nginx-proxy-manager", "81/tcp"]).await {
if output.status.success()
&& String::from_utf8_lossy(&output.stdout).lines().any(|line| {
line.rsplit(':')
.next()
.is_some_and(|port| port.trim() == "81")
})
{
return true;
}
}
let Ok(output) = podman_control(&[
"ps",
"-a",
"--format",
"{{.Ports}}",
"--filter",
"name=^nginx-proxy-manager$",
])
.await
else {
return false;
};
if !output.status.success() {
return false;
}
String::from_utf8_lossy(&output.stdout).lines().any(|line| {
line.rsplit(':')
.next()
.is_some_and(|port| port.trim() == "81")
})
let ports = String::from_utf8_lossy(&output.stdout);
ports.contains(":81->81/tcp") || ports.contains(":8443->443/tcp")
}
async fn recreate_nginx_proxy_manager_container() -> Result<()> {
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "neode-ui",
"version": "1.7.64-alpha",
"version": "1.7.66-alpha",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "neode-ui",
"version": "1.7.64-alpha",
"version": "1.7.66-alpha",
"dependencies": {
"@types/dompurify": "^3.0.5",
"@vue-leaflet/vue-leaflet": "^0.10.1",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "neode-ui",
"private": true,
"version": "1.7.64-alpha",
"version": "1.7.66-alpha",
"type": "module",
"scripts": {
"start": "./start-dev.sh",
+16 -15
View File
@@ -1,26 +1,27 @@
{
"version": "1.7.64-alpha",
"release_date": "2026-05-17",
"version": "1.7.66-alpha",
"release_date": "2026-05-18",
"changelog": [
"Update apply rate limiting is relaxed for authenticated admins from 2 attempts per 10 minutes to 10 attempts per minute, preventing the System Update page from getting stuck behind `429 Too Many Requests` during legitimate OTA retry/troubleshooting flows.",
"The corrected backend artifact rebuild protection from `v1.7.63-alpha` remains in place, so this release is built from a fresh Rust backend binary before publishing."
"Nginx Proxy Manager stale-port repair now detects stopped or `Created` Podman records by inspecting `podman ps -a` port metadata, covering records where `podman port nginx-proxy-manager` returns no mapping until start.",
"Live recovery on `100.70.96.88` removed only the stale Nginx Proxy Manager container record and recreated it with `8081:81`, `8084:80`, and `8444:443`, preserving `/var/lib/archipelago/nginx-proxy-manager` data.",
"Validation confirmed Nginx Proxy Manager recovered as healthy and responds through direct admin port `8081`, host compatibility port `81`, and `/app/nginx-proxy-manager/`."
],
"components": [
{
"name": "archipelago",
"current_version": "1.7.64-alpha",
"new_version": "1.7.64-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.64-alpha/archipelago",
"sha256": "158a3cb659f82110780b0549382a9ac71320b1cb530e6a31a314959bbabd6c6c",
"size_bytes": 42935024
"current_version": "1.7.66-alpha",
"new_version": "1.7.66-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.66-alpha/archipelago",
"sha256": "d410efd1acb6ae2f5e1270b585da8ff90c9de454fbf8b2648c37ddc4c1136794",
"size_bytes": 42947056
},
{
"name": "archipelago-frontend-1.7.64-alpha.tar.gz",
"current_version": "1.7.64-alpha",
"new_version": "1.7.64-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.64-alpha/archipelago-frontend-1.7.64-alpha.tar.gz",
"sha256": "d9be64980eede352c0b18402c42cff3a98a1ca881514082319d126cf4c91dcc3",
"size_bytes": 166470643
"name": "archipelago-frontend-1.7.66-alpha.tar.gz",
"current_version": "1.7.66-alpha",
"new_version": "1.7.66-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.66-alpha/archipelago-frontend-1.7.66-alpha.tar.gz",
"sha256": "35ca430accfb3b669c288800b59b899585435133d6d7e5da70c5066ae36a0308",
"size_bytes": 166469699
}
]
}
+16 -15
View File
@@ -1,26 +1,27 @@
{
"version": "1.7.64-alpha",
"release_date": "2026-05-17",
"version": "1.7.66-alpha",
"release_date": "2026-05-18",
"changelog": [
"Update apply rate limiting is relaxed for authenticated admins from 2 attempts per 10 minutes to 10 attempts per minute, preventing the System Update page from getting stuck behind `429 Too Many Requests` during legitimate OTA retry/troubleshooting flows.",
"The corrected backend artifact rebuild protection from `v1.7.63-alpha` remains in place, so this release is built from a fresh Rust backend binary before publishing."
"Nginx Proxy Manager stale-port repair now detects stopped or `Created` Podman records by inspecting `podman ps -a` port metadata, covering records where `podman port nginx-proxy-manager` returns no mapping until start.",
"Live recovery on `100.70.96.88` removed only the stale Nginx Proxy Manager container record and recreated it with `8081:81`, `8084:80`, and `8444:443`, preserving `/var/lib/archipelago/nginx-proxy-manager` data.",
"Validation confirmed Nginx Proxy Manager recovered as healthy and responds through direct admin port `8081`, host compatibility port `81`, and `/app/nginx-proxy-manager/`."
],
"components": [
{
"name": "archipelago",
"current_version": "1.7.64-alpha",
"new_version": "1.7.64-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.64-alpha/archipelago",
"sha256": "158a3cb659f82110780b0549382a9ac71320b1cb530e6a31a314959bbabd6c6c",
"size_bytes": 42935024
"current_version": "1.7.66-alpha",
"new_version": "1.7.66-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.66-alpha/archipelago",
"sha256": "d410efd1acb6ae2f5e1270b585da8ff90c9de454fbf8b2648c37ddc4c1136794",
"size_bytes": 42947056
},
{
"name": "archipelago-frontend-1.7.64-alpha.tar.gz",
"current_version": "1.7.64-alpha",
"new_version": "1.7.64-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.64-alpha/archipelago-frontend-1.7.64-alpha.tar.gz",
"sha256": "d9be64980eede352c0b18402c42cff3a98a1ca881514082319d126cf4c91dcc3",
"size_bytes": 166470643
"name": "archipelago-frontend-1.7.66-alpha.tar.gz",
"current_version": "1.7.66-alpha",
"new_version": "1.7.66-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.66-alpha/archipelago-frontend-1.7.66-alpha.tar.gz",
"sha256": "35ca430accfb3b669c288800b59b899585435133d6d7e5da70c5066ae36a0308",
"size_bytes": 166469699
}
]
}