Compare commits

...

3 Commits

Author SHA1 Message Date
archipelago
92c578d3d9 chore: update release lockfile 2026-05-18 10:17:20 -04:00
archipelago
6240064acf chore: release v1.7.66-alpha 2026-05-18 10:15:56 -04:00
archipelago
19dbf60f03 fix(apps): detect stale npm created containers 2026-05-18 10:04:22 -04:00
8 changed files with 65 additions and 39 deletions

View File

@ -1,5 +1,11 @@
# 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.

2
core/Cargo.lock generated
View File

@ -80,7 +80,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
[[package]]
name = "archipelago"
version = "1.7.65-alpha"
version = "1.7.66-alpha"
dependencies = [
"anyhow",
"archipelago-container",

View File

@ -1,6 +1,6 @@
[package]
name = "archipelago"
version = "1.7.65-alpha"
version = "1.7.66-alpha"
edition = "2021"
description = "Archipelago Bitcoin Node OS - Native backend"
authors = ["Archipelago Team"]

View File

@ -891,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<()> {

View File

@ -1,12 +1,12 @@
{
"name": "neode-ui",
"version": "1.7.65-alpha",
"version": "1.7.66-alpha",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "neode-ui",
"version": "1.7.65-alpha",
"version": "1.7.66-alpha",
"dependencies": {
"@types/dompurify": "^3.0.5",
"@vue-leaflet/vue-leaflet": "^0.10.1",

View File

@ -1,7 +1,7 @@
{
"name": "neode-ui",
"private": true,
"version": "1.7.65-alpha",
"version": "1.7.66-alpha",
"type": "module",
"scripts": {
"start": "./start-dev.sh",

View File

@ -1,26 +1,27 @@
{
"version": "1.7.65-alpha",
"version": "1.7.66-alpha",
"release_date": "2026-05-18",
"changelog": [
"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."
"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.65-alpha",
"new_version": "1.7.65-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.65-alpha/archipelago",
"sha256": "bc4197e99bdea6e63da19915c9cb9e06b84248fb2c627f2b5973e42532ef7b62",
"size_bytes": 42939312
"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.65-alpha.tar.gz",
"current_version": "1.7.65-alpha",
"new_version": "1.7.65-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.65-alpha/archipelago-frontend-1.7.65-alpha.tar.gz",
"sha256": "a76778934b747405410dfc92b1fffc2df4b44c0067f71652e23a86c9b77ab7ba",
"size_bytes": 166470001
"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
}
]
}

View File

@ -1,26 +1,27 @@
{
"version": "1.7.65-alpha",
"version": "1.7.66-alpha",
"release_date": "2026-05-18",
"changelog": [
"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."
"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.65-alpha",
"new_version": "1.7.65-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.65-alpha/archipelago",
"sha256": "bc4197e99bdea6e63da19915c9cb9e06b84248fb2c627f2b5973e42532ef7b62",
"size_bytes": 42939312
"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.65-alpha.tar.gz",
"current_version": "1.7.65-alpha",
"new_version": "1.7.65-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.65-alpha/archipelago-frontend-1.7.65-alpha.tar.gz",
"sha256": "a76778934b747405410dfc92b1fffc2df4b44c0067f71652e23a86c9b77ab7ba",
"size_bytes": 166470001
"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
}
]
}