refactor: migrate container registry from 80.71.235.15:3000 to git.tx1138.com/lfg2025

All hardcoded references to the old IP-based registry replaced across
Rust backend, Vue frontend, shell scripts, Dockerfiles, CI, and docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian 2026-04-11 09:33:10 -04:00
parent 68b02359dc
commit a147db9b70
23 changed files with 57 additions and 57 deletions

View File

@ -86,7 +86,7 @@ jobs:
run: | run: |
sudo mkdir -p /etc/containers/registries.conf.d sudo mkdir -p /etc/containers/registries.conf.d
echo '[[registry]] echo '[[registry]]
location = "80.71.235.15:3000" location = "git.tx1138.com"
insecure = true' | sudo tee /etc/containers/registries.conf.d/archipelago.conf insecure = true' | sudo tee /etc/containers/registries.conf.d/archipelago.conf
- name: Build unbundled ISO - name: Build unbundled ISO

View File

@ -4,7 +4,7 @@ use anyhow::{Context, Result};
/// Trusted Docker registries. Only images from these sources are allowed. /// Trusted Docker registries. Only images from these sources are allowed.
#[allow(dead_code)] #[allow(dead_code)]
pub(super) const TRUSTED_REGISTRIES: &[&str] = &["docker.io/", "ghcr.io/", "localhost/", "80.71.235.15:3000/"]; pub(super) const TRUSTED_REGISTRIES: &[&str] = &["docker.io/", "ghcr.io/", "localhost/", "git.tx1138.com/"];
/// Validate Docker image against trusted registry allowlist. /// Validate Docker image against trusted registry allowlist.
pub(super) fn is_valid_docker_image(image: &str) -> bool { pub(super) fn is_valid_docker_image(image: &str) -> bool {
@ -21,7 +21,7 @@ pub(super) fn is_valid_docker_image(image: &str) -> bool {
Some(r) => r, Some(r) => r,
None => return false, None => return false,
}; };
matches!(registry, "docker.io" | "ghcr.io" | "localhost" | "80.71.235.15:3000") matches!(registry, "docker.io" | "ghcr.io" | "localhost" | "git.tx1138.com")
} }
/// Per-app Linux capabilities needed beyond the default cap-drop=ALL. /// Per-app Linux capabilities needed beyond the default cap-drop=ALL.

View File

@ -987,7 +987,7 @@ autopilot.active=false\n",
.find(|d| std::path::Path::new(d).join("Dockerfile").exists()) .find(|d| std::path::Path::new(d).join("Dockerfile").exists())
.unwrap_or_else(|| ui_dir.to_string()); .unwrap_or_else(|| ui_dir.to_string());
let image_base = image_base.to_string(); let image_base = image_base.to_string();
let registry = "80.71.235.15:3000/archipelago"; let registry = "git.tx1138.com/lfg2025";
let registry_image = format!("{}/{}:latest", registry, image_base); let registry_image = format!("{}/{}:latest", registry, image_base);
let local_image = format!("localhost/{}:latest", image_base); let local_image = format!("localhost/{}:latest", image_base);
tokio::spawn(async move { tokio::spawn(async move {

View File

@ -49,7 +49,7 @@ async fn adopt_stack_if_exists(
}))) })))
} }
const REGISTRY: &str = "80.71.235.15:3000/archipelago"; const REGISTRY: &str = "git.tx1138.com/lfg2025";
/// Pull an image with retry and exponential backoff (3 attempts). /// Pull an image with retry and exponential backoff (3 attempts).
async fn pull_image_with_retry(image: &str) -> Result<()> { async fn pull_image_with_retry(image: &str) -> Result<()> {
@ -116,9 +116,9 @@ impl RpcHandler {
} }
let images = [ let images = [
"80.71.235.15:3000/archipelago/immich-postgres:14-vectorchord0.4.3-pgvectors0.2.0", "git.tx1138.com/lfg2025/immich-postgres:14-vectorchord0.4.3-pgvectors0.2.0",
"80.71.235.15:3000/archipelago/valkey:7-alpine", "git.tx1138.com/lfg2025/valkey:7-alpine",
"80.71.235.15:3000/archipelago/immich-server:release", "git.tx1138.com/lfg2025/immich-server:release",
]; ];
for img in &images { for img in &images {
pull_image_with_retry(img).await?; pull_image_with_retry(img).await?;
@ -156,7 +156,7 @@ impl RpcHandler {
"POSTGRES_USER=postgres", "POSTGRES_USER=postgres",
"-e", "-e",
"POSTGRES_DB=immich", "POSTGRES_DB=immich",
"80.71.235.15:3000/archipelago/immich-postgres:14-vectorchord0.4.3-pgvectors0.2.0", "git.tx1138.com/lfg2025/immich-postgres:14-vectorchord0.4.3-pgvectors0.2.0",
]) ])
.output() .output()
.await; .await;
@ -172,7 +172,7 @@ impl RpcHandler {
"unless-stopped", "unless-stopped",
"--network", "--network",
"immich-net", "immich-net",
"80.71.235.15:3000/archipelago/valkey:7-alpine", "git.tx1138.com/lfg2025/valkey:7-alpine",
]) ])
.output() .output()
.await; .await;
@ -204,7 +204,7 @@ impl RpcHandler {
"REDIS_HOSTNAME=immich_redis", "REDIS_HOSTNAME=immich_redis",
"-e", "-e",
"UPLOAD_LOCATION=/usr/src/app/upload", "UPLOAD_LOCATION=/usr/src/app/upload",
"80.71.235.15:3000/archipelago/immich-server:release", "git.tx1138.com/lfg2025/immich-server:release",
]) ])
.output() .output()
.await .await
@ -237,11 +237,11 @@ impl RpcHandler {
} }
let images = [ let images = [
"80.71.235.15:3000/archipelago/postgres:15", "git.tx1138.com/lfg2025/postgres:15",
"80.71.235.15:3000/archipelago/valkey:8.1", "git.tx1138.com/lfg2025/valkey:8.1",
"80.71.235.15:3000/archipelago/penpot-backend:2.4", "git.tx1138.com/lfg2025/penpot-backend:2.4",
"80.71.235.15:3000/archipelago/penpot-exporter:2.4", "git.tx1138.com/lfg2025/penpot-exporter:2.4",
"80.71.235.15:3000/archipelago/penpot-frontend:2.4", "git.tx1138.com/lfg2025/penpot-frontend:2.4",
]; ];
for img in &images { for img in &images {
pull_image_with_retry(img).await?; pull_image_with_retry(img).await?;
@ -284,7 +284,7 @@ impl RpcHandler {
"POSTGRES_USER=penpot", "POSTGRES_USER=penpot",
"-e", "-e",
"POSTGRES_PASSWORD=penpot", "POSTGRES_PASSWORD=penpot",
"80.71.235.15:3000/archipelago/postgres:15", "git.tx1138.com/lfg2025/postgres:15",
]) ])
.output() .output()
.await; .await;
@ -302,7 +302,7 @@ impl RpcHandler {
"penpot-net", "penpot-net",
"-e", "-e",
"VALKEY_EXTRA_FLAGS=--maxmemory 128mb --maxmemory-policy volatile-lfu", "VALKEY_EXTRA_FLAGS=--maxmemory 128mb --maxmemory-policy volatile-lfu",
"80.71.235.15:3000/archipelago/valkey:8.1", "git.tx1138.com/lfg2025/valkey:8.1",
]) ])
.output() .output()
.await; .await;
@ -338,7 +338,7 @@ impl RpcHandler {
"PENPOT_OBJECTS_STORAGE_FS_DIRECTORY=/opt/data/assets", "PENPOT_OBJECTS_STORAGE_FS_DIRECTORY=/opt/data/assets",
"-e", "-e",
"PENPOT_FLAGS=disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies", "PENPOT_FLAGS=disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies",
"80.71.235.15:3000/archipelago/penpot-backend:2.4", "git.tx1138.com/lfg2025/penpot-backend:2.4",
]) ])
.output() .output()
.await; .await;
@ -360,7 +360,7 @@ impl RpcHandler {
"PENPOT_PUBLIC_URI=http://penpot-frontend:8080", "PENPOT_PUBLIC_URI=http://penpot-frontend:8080",
"-e", "-e",
"PENPOT_REDIS_URI=redis://penpot-valkey/0", "PENPOT_REDIS_URI=redis://penpot-valkey/0",
"80.71.235.15:3000/archipelago/penpot-exporter:2.4", "git.tx1138.com/lfg2025/penpot-exporter:2.4",
]) ])
.output() .output()
.await; .await;
@ -384,7 +384,7 @@ impl RpcHandler {
&format!("PENPOT_PUBLIC_URI=http://{}:9001", host_ip), &format!("PENPOT_PUBLIC_URI=http://{}:9001", host_ip),
"-e", "-e",
"PENPOT_FLAGS=disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies", "PENPOT_FLAGS=disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies",
"80.71.235.15:3000/archipelago/penpot-frontend:2.4", "git.tx1138.com/lfg2025/penpot-frontend:2.4",
]) ])
.output() .output()
.await .await

View File

@ -194,11 +194,11 @@ pub fn pinned_image_for_app(app_id: &str) -> Option<String> {
} }
/// Extract version tag from a full image reference. /// Extract version tag from a full image reference.
/// e.g. "80.71.235.15:3000/archipelago/lnd:v0.18.4-beta" → "v0.18.4-beta" /// e.g. "git.tx1138.com/lfg2025/lnd:v0.18.4-beta" → "v0.18.4-beta"
/// Returns "latest" if no tag or tag is empty. /// Returns "latest" if no tag or tag is empty.
pub fn extract_version_from_image(image: &str) -> String { pub fn extract_version_from_image(image: &str) -> String {
// Split off the tag after the last colon, but only if it comes after the last slash // Split off the tag after the last colon, but only if it comes after the last slash
// (to avoid splitting on registry port like "80.71.235.15:3000") // (to avoid splitting on registry port like "registry.example.com:3000")
if let Some(slash_pos) = image.rfind('/') { if let Some(slash_pos) = image.rfind('/') {
let after_slash = &image[slash_pos..]; let after_slash = &image[slash_pos..];
if let Some(colon_pos) = after_slash.rfind(':') { if let Some(colon_pos) = after_slash.rfind(':') {
@ -259,11 +259,11 @@ mod tests {
#[test] #[test]
fn test_extract_version() { fn test_extract_version() {
assert_eq!( assert_eq!(
extract_version_from_image("80.71.235.15:3000/archipelago/lnd:v0.18.4-beta"), extract_version_from_image("git.tx1138.com/lfg2025/lnd:v0.18.4-beta"),
"v0.18.4-beta" "v0.18.4-beta"
); );
assert_eq!( assert_eq!(
extract_version_from_image("80.71.235.15:3000/archipelago/grafana:10.2.0"), extract_version_from_image("git.tx1138.com/lfg2025/grafana:10.2.0"),
"10.2.0" "10.2.0"
); );
assert_eq!( assert_eq!(
@ -271,7 +271,7 @@ mod tests {
"latest" "latest"
); );
assert_eq!( assert_eq!(
extract_version_from_image("80.71.235.15:3000/archipelago/bitcoin-knots:latest"), extract_version_from_image("git.tx1138.com/lfg2025/bitcoin-knots:latest"),
"latest" "latest"
); );
} }
@ -279,7 +279,7 @@ mod tests {
#[test] #[test]
fn test_parse_image_versions() { fn test_parse_image_versions() {
let content = r#" let content = r#"
ARCHY_REGISTRY="80.71.235.15:3000/archipelago" ARCHY_REGISTRY="git.tx1138.com/lfg2025"
LND_IMAGE="$ARCHY_REGISTRY/lnd:v0.18.4-beta" LND_IMAGE="$ARCHY_REGISTRY/lnd:v0.18.4-beta"
GRAFANA_IMAGE="$ARCHY_REGISTRY/grafana:10.2.0" GRAFANA_IMAGE="$ARCHY_REGISTRY/grafana:10.2.0"
# comment # comment
@ -288,11 +288,11 @@ NOT_AN_IMAGE="something"
let parsed = parse_image_versions(content); let parsed = parse_image_versions(content);
assert_eq!( assert_eq!(
parsed.get("LND_IMAGE"), parsed.get("LND_IMAGE"),
Some(&"80.71.235.15:3000/archipelago/lnd:v0.18.4-beta".to_string()) Some(&"git.tx1138.com/lfg2025/lnd:v0.18.4-beta".to_string())
); );
assert_eq!( assert_eq!(
parsed.get("GRAFANA_IMAGE"), parsed.get("GRAFANA_IMAGE"),
Some(&"80.71.235.15:3000/archipelago/grafana:10.2.0".to_string()) Some(&"git.tx1138.com/lfg2025/grafana:10.2.0".to_string())
); );
assert!(!parsed.contains_key("NOT_AN_IMAGE")); assert!(!parsed.contains_key("NOT_AN_IMAGE"));
assert!(!parsed.contains_key("ARCHY_REGISTRY")); assert!(!parsed.contains_key("ARCHY_REGISTRY"));

View File

@ -1,4 +1,4 @@
FROM 80.71.235.15:3000/archipelago/nginx:1.27.4-alpine FROM git.tx1138.com/lfg2025/nginx:1.27.4-alpine
COPY index.html /usr/share/nginx/html/ COPY index.html /usr/share/nginx/html/
COPY 50x.html /usr/share/nginx/html/ COPY 50x.html /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf

View File

@ -1,4 +1,4 @@
FROM 80.71.235.15:3000/archipelago/nginx:1.27.4-alpine FROM git.tx1138.com/lfg2025/nginx:1.27.4-alpine
COPY index.html /usr/share/nginx/html/ COPY index.html /usr/share/nginx/html/
COPY 50x.html /usr/share/nginx/html/ COPY 50x.html /usr/share/nginx/html/
COPY qrcode.js /usr/share/nginx/html/ COPY qrcode.js /usr/share/nginx/html/

View File

@ -1,4 +1,4 @@
FROM 80.71.235.15:3000/archipelago/nginx:1.27.4-alpine FROM git.tx1138.com/lfg2025/nginx:1.27.4-alpine
COPY index.html /usr/share/nginx/html/ COPY index.html /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf
RUN sed -i 's/^user nginx;/user root;/' /etc/nginx/nginx.conf && \ RUN sed -i 's/^user nginx;/user root;/' /etc/nginx/nginx.conf && \

View File

@ -1,4 +1,4 @@
FROM 80.71.235.15:3000/archipelago/nginx:1.27.4-alpine FROM git.tx1138.com/lfg2025/nginx:1.27.4-alpine
# Copy the HTML file # Copy the HTML file
COPY index.html /usr/share/nginx/html/ COPY index.html /usr/share/nginx/html/

View File

@ -1,4 +1,4 @@
FROM 80.71.235.15:3000/archipelago/nginx:1.27.4-alpine FROM git.tx1138.com/lfg2025/nginx:1.27.4-alpine
COPY index.html /usr/share/nginx/html/ COPY index.html /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf
RUN sed -i 's/^user nginx;/user root;/' /etc/nginx/nginx.conf && \ RUN sed -i 's/^user nginx;/user root;/' /etc/nginx/nginx.conf && \

View File

@ -842,8 +842,8 @@
</ul> </ul>
<h4>Registry</h4> <h4>Registry</h4>
<ul> <ul>
<li>Private registry at <code>80.71.235.15:3000/archipelago/</code></li> <li>Private registry at <code>git.tx1138.com/lfg2025/</code></li>
<li>HTTP only (insecure, self-hosted Gitea)</li> <li>HTTPS (self-hosted Gitea)</li>
<li>All images pre-pulled into registry; nodes pull on first boot</li> <li>All images pre-pulled into registry; nodes pull on first boot</li>
</ul> </ul>
</div> </div>

View File

@ -216,7 +216,7 @@ check_tools() {
mkdir -p /etc/containers/registries.conf.d mkdir -p /etc/containers/registries.conf.d
cat > /etc/containers/registries.conf.d/archipelago.conf <<'REGCONF' cat > /etc/containers/registries.conf.d/archipelago.conf <<'REGCONF'
[[registry]] [[registry]]
location = "80.71.235.15:3000" location = "git.tx1138.com"
insecure = true insecure = true
REGCONF REGCONF
fi fi
@ -986,7 +986,7 @@ fi
# If built against a newer GLIBC, the binary will fail at runtime. # If built against a newer GLIBC, the binary will fail at runtime.
# Rebuild with: FROM debian:13 AS builder # Rebuild with: FROM debian:13 AS builder
echo " Extracting NostrVPN binary..." echo " Extracting NostrVPN binary..."
_NVPN_IMG="${NOSTR_VPN_IMAGE:-80.71.235.15:3000/archipelago/nostr-vpn:v0.3.7}" _NVPN_IMG="${NOSTR_VPN_IMAGE:-git.tx1138.com/lfg2025/nostr-vpn:v0.3.7}"
NVPN_IMAGE_ID="$($CONTAINER_CMD images -q "$_NVPN_IMG" 2>/dev/null)" NVPN_IMAGE_ID="$($CONTAINER_CMD images -q "$_NVPN_IMG" 2>/dev/null)"
if [ -z "$NVPN_IMAGE_ID" ]; then if [ -z "$NVPN_IMAGE_ID" ]; then
$CONTAINER_CMD pull "$_NVPN_IMG" 2>/dev/null || true $CONTAINER_CMD pull "$_NVPN_IMG" 2>/dev/null || true
@ -1017,11 +1017,11 @@ fi
# Extract nostr-rs-relay binary from container image (native system service for VPN signaling) # Extract nostr-rs-relay binary from container image (native system service for VPN signaling)
echo " Extracting nostr-rs-relay binary..." echo " Extracting nostr-rs-relay binary..."
RELAY_IMAGE="$($CONTAINER_CMD images -q 80.71.235.15:3000/archipelago/nostr-rs-relay:0.9.0 2>/dev/null)" RELAY_IMAGE="$($CONTAINER_CMD images -q git.tx1138.com/lfg2025/nostr-rs-relay:0.9.0 2>/dev/null)"
if [ -z "$RELAY_IMAGE" ]; then if [ -z "$RELAY_IMAGE" ]; then
$CONTAINER_CMD pull 80.71.235.15:3000/archipelago/nostr-rs-relay:0.9.0 2>/dev/null || true $CONTAINER_CMD pull git.tx1138.com/lfg2025/nostr-rs-relay:0.9.0 2>/dev/null || true
fi fi
RELAY_CONTAINER=$($CONTAINER_CMD create 80.71.235.15:3000/archipelago/nostr-rs-relay:0.9.0 2>/dev/null) || true RELAY_CONTAINER=$($CONTAINER_CMD create git.tx1138.com/lfg2025/nostr-rs-relay:0.9.0 2>/dev/null) || true
if [ -n "$RELAY_CONTAINER" ]; then if [ -n "$RELAY_CONTAINER" ]; then
$CONTAINER_CMD cp "$RELAY_CONTAINER:/usr/local/bin/nostr-rs-relay" "$ARCH_DIR/bin/nostr-rs-relay" 2>/dev/null && \ $CONTAINER_CMD cp "$RELAY_CONTAINER:/usr/local/bin/nostr-rs-relay" "$ARCH_DIR/bin/nostr-rs-relay" 2>/dev/null && \
chmod +x "$ARCH_DIR/bin/nostr-rs-relay" && \ chmod +x "$ARCH_DIR/bin/nostr-rs-relay" && \
@ -2112,7 +2112,7 @@ ln -sf /var/lib/archipelago/containers/storage /mnt/target/home/archipelago/.loc
# Configure Archipelago app registry (HTTP, insecure) # Configure Archipelago app registry (HTTP, insecure)
cat > /mnt/target/home/archipelago/.config/containers/registries.conf <<'REGCONF' cat > /mnt/target/home/archipelago/.config/containers/registries.conf <<'REGCONF'
[[registry]] [[registry]]
location = "80.71.235.15:3000" location = "git.tx1138.com"
insecure = true insecure = true
REGCONF REGCONF
chown -R 1000:1000 /mnt/target/home/archipelago/.config chown -R 1000:1000 /mnt/target/home/archipelago/.config

View File

@ -28,10 +28,10 @@ EOF
mkdir -p /home/archipelago/.config/containers/registries.conf.d mkdir -p /home/archipelago/.config/containers/registries.conf.d
cat > /home/archipelago/.config/containers/registries.conf.d/000-shortnames.conf <<EOF cat > /home/archipelago/.config/containers/registries.conf.d/000-shortnames.conf <<EOF
[registries.search] [registries.search]
registries = ['80.71.235.15:3000', 'docker.io', 'quay.io', 'ghcr.io'] registries = ['git.tx1138.com', 'docker.io', 'quay.io', 'ghcr.io']
[registries.insecure] [registries.insecure]
registries = ['80.71.235.15:3000'] registries = ['git.tx1138.com']
[registries.block] [registries.block]
registries = [] registries = []

View File

@ -31,7 +31,7 @@ export const BUNDLED_APPS: BundledApp[] = [
{ {
id: 'bitcoin-knots', id: 'bitcoin-knots',
name: 'Bitcoin Knots', name: 'Bitcoin Knots',
image: '80.71.235.15:3000/archipelago/bitcoin-knots:latest', image: 'git.tx1138.com/lfg2025/bitcoin-knots:latest',
description: 'Full Bitcoin node with additional features', description: 'Full Bitcoin node with additional features',
icon: '₿', icon: '₿',
ports: [{ host: 8334, container: 80 }], ports: [{ host: 8334, container: 80 }],

View File

@ -444,7 +444,7 @@ const features = computed(() => {
}) })
/** App dependency definitions */ /** App dependency definitions */
const R = '80.71.235.15:3000/archipelago' const R = 'git.tx1138.com/lfg2025'
const APP_DEPENDENCIES: Record<string, { id: string; title: string; dockerImage: string }[]> = { const APP_DEPENDENCIES: Record<string, { id: string; title: string; dockerImage: string }[]> = {
'electrumx': [{ id: 'bitcoin-knots', title: 'Bitcoin Knots', dockerImage: `${R}/bitcoin-knots:latest` }], 'electrumx': [{ id: 'bitcoin-knots', title: 'Bitcoin Knots', dockerImage: `${R}/bitcoin-knots:latest` }],
'lnd': [{ id: 'bitcoin-knots', title: 'Bitcoin Knots', dockerImage: `${R}/bitcoin-knots:latest` }], 'lnd': [{ id: 'bitcoin-knots', title: 'Bitcoin Knots', dockerImage: `${R}/bitcoin-knots:latest` }],

View File

@ -1,6 +1,6 @@
import type { MarketplaceApp } from './types' import type { MarketplaceApp } from './types'
const R = '80.71.235.15:3000/archipelago' const R = 'git.tx1138.com/lfg2025'
export function getCuratedAppList(): MarketplaceApp[] { export function getCuratedAppList(): MarketplaceApp[] {
return [ return [

View File

@ -33,7 +33,7 @@ export interface InstallProgress {
} }
/** Archipelago app registry — all app images are mirrored here */ /** Archipelago app registry — all app images are mirrored here */
const REGISTRY = '80.71.235.15:3000/archipelago' const REGISTRY = 'git.tx1138.com/lfg2025'
/** Marketplace app ID -> backend package keys (for "Already Installed" when first-boot/deploy created them) */ /** Marketplace app ID -> backend package keys (for "Already Installed" when first-boot/deploy created them) */
export const INSTALLED_ALIASES: Record<string, string[]> = { export const INSTALLED_ALIASES: Record<string, string[]> = {

View File

@ -78,7 +78,7 @@ if $DOCKER ps -a --format '{{.Names}}' 2>/dev/null | grep -q '^electrumx$'; then
-e "DAEMON_URL=http://${RPC_USER}:${RPC_PASS}@bitcoin-knots:8332/" \ -e "DAEMON_URL=http://${RPC_USER}:${RPC_PASS}@bitcoin-knots:8332/" \
-e COIN=Bitcoin -e DB_DIRECTORY=/data \ -e COIN=Bitcoin -e DB_DIRECTORY=/data \
-e "SERVICES=tcp://:50001,rpc://0.0.0.0:8000" \ -e "SERVICES=tcp://:50001,rpc://0.0.0.0:8000" \
"${ELECTRUMX_IMAGE:-80.71.235.15:3000/archipelago/electrumx:v1.18.0}" "${ELECTRUMX_IMAGE:-git.tx1138.com/lfg2025/electrumx:v1.18.0}"
fi fi
# Mempool API # Mempool API
@ -98,7 +98,7 @@ if $DOCKER ps -a --format '{{.Names}}' 2>/dev/null | grep -q '^mempool-api$'; th
-e "DATABASE_ENABLED=true" -e "DATABASE_HOST=archy-mempool-db" \ -e "DATABASE_ENABLED=true" -e "DATABASE_HOST=archy-mempool-db" \
-e "DATABASE_DATABASE=mempool" -e "DATABASE_USERNAME=mempool" \ -e "DATABASE_DATABASE=mempool" -e "DATABASE_USERNAME=mempool" \
-e "DATABASE_PASSWORD=$(cat "$SECRETS_DIR/mempool-db-password" 2>/dev/null || echo mempoolpass)" \ -e "DATABASE_PASSWORD=$(cat "$SECRETS_DIR/mempool-db-password" 2>/dev/null || echo mempoolpass)" \
"${MEMPOOL_API_IMAGE:-80.71.235.15:3000/archipelago/mempool-api:v3.2.0}" "${MEMPOOL_API_IMAGE:-git.tx1138.com/lfg2025/mempool-api:v3.2.0}"
fi fi
# Stop Tor tunnel if it was active # Stop Tor tunnel if it was active

View File

@ -74,7 +74,7 @@ mkdir -p "$BUILD_DIR"
# Create Dockerfile # Create Dockerfile
cat > "$BUILD_DIR/Dockerfile" << 'EOF' cat > "$BUILD_DIR/Dockerfile" << 'EOF'
FROM ${NGINX_ALPINE_IMAGE:-80.71.235.15:3000/archipelago/nginx:1.29.6-alpine} FROM ${NGINX_ALPINE_IMAGE:-git.tx1138.com/lfg2025/nginx:1.29.6-alpine}
# Copy the static UI # Copy the static UI
COPY index.html /usr/share/nginx/html/ COPY index.html /usr/share/nginx/html/

View File

@ -146,7 +146,7 @@ run_smoke_tests() {
# Test 3: Install a lightweight container (filebrowser — small, fast, no deps) # Test 3: Install a lightweight container (filebrowser — small, fast, no deps)
TESTS=$((TESTS + 1)) TESTS=$((TESTS + 1))
local install_img="80.71.235.15:3000/archipelago/filebrowser:v2.27.0" local install_img="git.tx1138.com/lfg2025/filebrowser:v2.27.0"
# Check if already installed # Check if already installed
local fb_state local fb_state
fb_state=$(ssh $SSH_OPTS "$SSH_HOST" "podman inspect filebrowser --format '{{.State.Status}}' 2>/dev/null || echo 'none'") fb_state=$(ssh $SSH_OPTS "$SSH_HOST" "podman inspect filebrowser --format '{{.State.Status}}' 2>/dev/null || echo 'none'")

View File

@ -9,7 +9,7 @@
# #
# Image versions: sourced from /opt/archipelago/image-versions.sh (single source of truth). # Image versions: sourced from /opt/archipelago/image-versions.sh (single source of truth).
# All container image references use the $*_IMAGE variables defined there. # All container image references use the $*_IMAGE variables defined there.
# Images pull from the Archipelago app registry (80.71.235.15:3000/archipelago/). # Images pull from the Archipelago app registry (git.tx1138.com/lfg2025/).
# #
# --- PLANNED REFACTOR (post-beta) --- # --- PLANNED REFACTOR (post-beta) ---
# This script is ~995 lines and should be split into a modular library. # This script is ~995 lines and should be split into a modular library.

View File

@ -5,12 +5,12 @@
# Usage: source /opt/archipelago/image-versions.sh 2>/dev/null || true # Usage: source /opt/archipelago/image-versions.sh 2>/dev/null || true
# source "$(dirname "$0")/image-versions.sh" 2>/dev/null || true # source "$(dirname "$0")/image-versions.sh" 2>/dev/null || true
# #
# Tags MUST match what's actually in the registry at 80.71.235.15:3000/archipelago/ # Tags MUST match what's actually in the registry at git.tx1138.com/lfg2025/
# Run: podman images --format '{{.Repository}}:{{.Tag}}' | grep '80.71' | sort # Run: podman images --format '{{.Repository}}:{{.Tag}}' | grep 'git.tx1138' | sort
# to verify against the registry. # to verify against the registry.
# Archipelago app registry # Archipelago app registry
ARCHY_REGISTRY="80.71.235.15:3000/archipelago" ARCHY_REGISTRY="git.tx1138.com/lfg2025"
# Bitcoin stack # Bitcoin stack
BITCOIN_KNOTS_IMAGE="$ARCHY_REGISTRY/bitcoin-knots:latest" BITCOIN_KNOTS_IMAGE="$ARCHY_REGISTRY/bitcoin-knots:latest"

View File

@ -86,7 +86,7 @@ else
# Check trusted registry # Check trusted registry
TRUSTED=false TRUSTED=false
for reg in "docker.io" "ghcr.io" "quay.io" "registry.hub.docker.com" "80.71.235.15:3000"; do for reg in "docker.io" "ghcr.io" "quay.io" "registry.hub.docker.com" "git.tx1138.com"; do
if echo "$IMAGE" | grep -q "$reg"; then if echo "$IMAGE" | grep -q "$reg"; then
TRUSTED=true TRUSTED=true
break break