feat: switch marketplace to Archipelago app registry
All app images now pull from 80.71.235.15:3000/archipelago/ instead of Docker Hub / ghcr.io. Insecure registry config baked into ISO for fresh installs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1296,6 +1296,15 @@ cat > /mnt/target/etc/hosts <<EOF
|
||||
::1 localhost ip6-localhost ip6-loopback
|
||||
EOF
|
||||
|
||||
# Configure Archipelago app registry (HTTP, insecure)
|
||||
mkdir -p /mnt/target/home/archipelago/.config/containers
|
||||
cat > /mnt/target/home/archipelago/.config/containers/registries.conf <<'REGCONF'
|
||||
[[registry]]
|
||||
location = "80.71.235.15:3000"
|
||||
insecure = true
|
||||
REGCONF
|
||||
chown -R 1000:1000 /mnt/target/home/archipelago/.config
|
||||
|
||||
# Copy Archipelago binaries and files
|
||||
if [ -d "$BOOT_MEDIA/archipelago/bin" ]; then
|
||||
cp -r "$BOOT_MEDIA/archipelago/bin/"* /mnt/target/usr/local/bin/ 2>/dev/null || true
|
||||
|
||||
@@ -32,6 +32,9 @@ export interface InstallProgress {
|
||||
attempt: number
|
||||
}
|
||||
|
||||
/** Archipelago app registry — all app images are mirrored here */
|
||||
const REGISTRY = '80.71.235.15:3000/archipelago'
|
||||
|
||||
/** Marketplace app ID -> backend package keys (for "Already Installed" when first-boot/deploy created them) */
|
||||
export const INSTALLED_ALIASES: Record<string, string[]> = {
|
||||
mempool: ['mempool-web', 'mempool-api', 'archy-mempool-web', 'archy-mempool-db'],
|
||||
@@ -131,7 +134,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Run a full Bitcoin node. Validate and relay blocks and transactions on the Bitcoin network.',
|
||||
icon: '/assets/img/app-icons/bitcoin-knots.webp',
|
||||
author: 'Bitcoin Knots',
|
||||
dockerImage: 'docker.io/bitcoinknots/bitcoin:v28.1',
|
||||
dockerImage: `${REGISTRY}/bitcoin-knots:latest`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/bitcoinknots/bitcoin'
|
||||
},
|
||||
@@ -142,7 +145,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Self-hosted Bitcoin payment processor. Accept Bitcoin payments without intermediaries or fees.',
|
||||
icon: '/assets/img/app-icons/btcpay-server.png',
|
||||
author: 'BTCPay Server Foundation',
|
||||
dockerImage: 'docker.io/btcpayserver/btcpayserver:1.13.5',
|
||||
dockerImage: `${REGISTRY}/btcpayserver:1.13.5`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/btcpayserver/btcpayserver'
|
||||
},
|
||||
@@ -153,7 +156,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Lightning Network Daemon. Fast and cheap Bitcoin payments through the Lightning Network.',
|
||||
icon: '/assets/img/app-icons/lnd.svg',
|
||||
author: 'Lightning Labs',
|
||||
dockerImage: 'docker.io/lightninglabs/lnd:v0.17.4-beta',
|
||||
dockerImage: `${REGISTRY}/lnd:v0.18.4-beta`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/lightningnetwork/lnd'
|
||||
},
|
||||
@@ -175,7 +178,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Self-hosted Bitcoin blockchain and mempool visualizer with beautiful explorer interface.',
|
||||
icon: '/assets/img/app-icons/mempool.webp',
|
||||
author: 'Mempool',
|
||||
dockerImage: 'docker.io/mempool/frontend:v2.5.0',
|
||||
dockerImage: `${REGISTRY}/mempool-frontend:v2.5.0`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/mempool/mempool'
|
||||
},
|
||||
@@ -186,7 +189,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Open-source home automation platform. Control and automate your smart home devices privately.',
|
||||
icon: '/assets/img/app-icons/homeassistant.png',
|
||||
author: 'Home Assistant',
|
||||
dockerImage: 'docker.io/homeassistant/home-assistant:2024.1',
|
||||
dockerImage: `${REGISTRY}/home-assistant:2024.1`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/home-assistant/core'
|
||||
},
|
||||
@@ -197,7 +200,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Analytics and monitoring platform. Create dashboards and visualize data from multiple sources.',
|
||||
icon: '/assets/img/app-icons/grafana.png',
|
||||
author: 'Grafana Labs',
|
||||
dockerImage: 'docker.io/grafana/grafana:10.2.0',
|
||||
dockerImage: `${REGISTRY}/grafana:10.2.0`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/grafana/grafana'
|
||||
},
|
||||
@@ -208,7 +211,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Privacy-respecting metasearch engine. Search without tracking or ads.',
|
||||
icon: '/assets/img/app-icons/searxng.png',
|
||||
author: 'SearXNG',
|
||||
dockerImage: 'docker.io/searxng/searxng:2024.11.17-e2554de75',
|
||||
dockerImage: `${REGISTRY}/searxng:latest`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/searxng/searxng'
|
||||
},
|
||||
@@ -219,7 +222,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Run large language models locally. Download and run AI models like Llama, Mistral on your own hardware.',
|
||||
icon: '/assets/img/app-icons/ollama.png',
|
||||
author: 'Ollama',
|
||||
dockerImage: 'docker.io/ollama/ollama:0.5.4',
|
||||
dockerImage: `${REGISTRY}/ollama:latest`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/ollama/ollama'
|
||||
},
|
||||
@@ -230,7 +233,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Office suite for document collaboration. Edit docs, spreadsheets, and presentations.',
|
||||
icon: '/assets/img/app-icons/onlyoffice.webp',
|
||||
author: 'Ascensio System SIA',
|
||||
dockerImage: 'docker.io/onlyoffice/documentserver:7.5.1',
|
||||
dockerImage: `${REGISTRY}/onlyoffice:latest`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/ONLYOFFICE/DocumentServer'
|
||||
},
|
||||
@@ -252,7 +255,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Self-hosted cloud storage and collaboration platform. Your own private cloud.',
|
||||
icon: '/assets/img/app-icons/nextcloud.webp',
|
||||
author: 'Nextcloud',
|
||||
dockerImage: 'docker.io/library/nextcloud:28',
|
||||
dockerImage: `${REGISTRY}/nextcloud:28`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/nextcloud/server'
|
||||
},
|
||||
@@ -263,7 +266,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Self-hosted password manager (Bitwarden-compatible). Secure vault for passwords and secrets.',
|
||||
icon: '/assets/img/app-icons/vaultwarden.webp',
|
||||
author: 'Vaultwarden',
|
||||
dockerImage: 'docker.io/vaultwarden/server:1.30.0-alpine',
|
||||
dockerImage: `${REGISTRY}/vaultwarden:1.30.0-alpine`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/dani-garcia/vaultwarden'
|
||||
},
|
||||
@@ -274,7 +277,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Free media server system. Stream your movies, music, and photos to any device.',
|
||||
icon: '/assets/img/app-icons/jellyfin.webp',
|
||||
author: 'Jellyfin',
|
||||
dockerImage: 'docker.io/jellyfin/jellyfin:10.8.13',
|
||||
dockerImage: `${REGISTRY}/jellyfin:10.8.13`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/jellyfin/jellyfin'
|
||||
},
|
||||
@@ -285,7 +288,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'AI-powered photo management. Organize and browse photos with facial recognition.',
|
||||
icon: '/assets/img/app-icons/photoprism.svg',
|
||||
author: 'PhotoPrism',
|
||||
dockerImage: 'docker.io/photoprism/photoprism:240915',
|
||||
dockerImage: `${REGISTRY}/photoprism:240915`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/photoprism/photoprism'
|
||||
},
|
||||
@@ -296,7 +299,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'High-performance self-hosted photo and video backup. Mobile-first with ML features.',
|
||||
icon: '/assets/img/app-icons/immich.png',
|
||||
author: 'Immich',
|
||||
dockerImage: 'ghcr.io/immich-app/immich-server:release',
|
||||
dockerImage: `${REGISTRY}/immich:release`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/immich-app/immich'
|
||||
},
|
||||
@@ -307,7 +310,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Web-based file manager. Browse, upload, and manage files through a web interface.',
|
||||
icon: '/assets/img/app-icons/file-browser.webp',
|
||||
author: 'File Browser',
|
||||
dockerImage: 'docker.io/filebrowser/filebrowser:v2.27.0',
|
||||
dockerImage: `${REGISTRY}/filebrowser:v2.27.0`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/filebrowser/filebrowser'
|
||||
},
|
||||
@@ -318,7 +321,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Easy proxy management with SSL. Beautiful web interface for managing reverse proxies.',
|
||||
icon: '/assets/img/app-icons/nginx.svg',
|
||||
author: 'Nginx Proxy Manager',
|
||||
dockerImage: 'docker.io/jc21/nginx-proxy-manager:2.12.1',
|
||||
dockerImage: `${REGISTRY}/nginx-proxy-manager:latest`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/NginxProxyManager/nginx-proxy-manager'
|
||||
},
|
||||
@@ -329,7 +332,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Container management UI. Manage Docker containers through a beautiful web interface.',
|
||||
icon: '/assets/img/app-icons/portainer.webp',
|
||||
author: 'Portainer',
|
||||
dockerImage: 'docker.io/portainer/portainer-ce:2.19.4',
|
||||
dockerImage: `${REGISTRY}/portainer:latest`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/portainer/portainer'
|
||||
},
|
||||
@@ -340,7 +343,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Self-hosted monitoring tool. Monitor uptime for HTTP(s), TCP, DNS, and more.',
|
||||
icon: '/assets/img/app-icons/uptime-kuma.webp',
|
||||
author: 'Uptime Kuma',
|
||||
dockerImage: 'docker.io/louislam/uptime-kuma:1',
|
||||
dockerImage: `${REGISTRY}/uptime-kuma:1`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/louislam/uptime-kuma'
|
||||
},
|
||||
@@ -351,7 +354,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Zero-config VPN for secure remote access. Connect all your devices with WireGuard mesh network.',
|
||||
icon: '/assets/img/app-icons/tailscale.webp',
|
||||
author: 'Tailscale',
|
||||
dockerImage: 'docker.io/tailscale/tailscale:stable',
|
||||
dockerImage: `${REGISTRY}/tailscale:stable`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/tailscale/tailscale'
|
||||
},
|
||||
@@ -362,7 +365,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Federated Bitcoin mint with built-in Guardian UI. Private, scalable Bitcoin through federated guardians.',
|
||||
icon: '/assets/img/app-icons/fedimint.png',
|
||||
author: 'Fedimint',
|
||||
dockerImage: 'docker.io/fedimint/fedimintd:v0.10.0',
|
||||
dockerImage: `${REGISTRY}/fedimintd:v0.10.0`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/fedimint/fedimint'
|
||||
},
|
||||
@@ -384,7 +387,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Store and sync your personal data across devices using decentralized web node protocols. Own your data with DID-based access control.',
|
||||
icon: '/assets/img/app-icons/dwn.svg',
|
||||
author: 'TBD',
|
||||
dockerImage: 'ghcr.io/tbd54566975/dwn-server:main',
|
||||
dockerImage: `${REGISTRY}/dwn-server:main`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://github.com/TBD54566975/dwn-server'
|
||||
},
|
||||
@@ -409,7 +412,7 @@ export function getCuratedAppList(): MarketplaceApp[] {
|
||||
description: 'Run your own Nostr relay. Store your events locally, relay for friends, and publish over Tor. A sovereign relay for your sovereign node.',
|
||||
icon: '/assets/img/app-icons/nostr-rs-relay.svg',
|
||||
author: 'scsiblade',
|
||||
dockerImage: 'docker.io/scsiblade/nostr-rs-relay:0.9.0',
|
||||
dockerImage: `${REGISTRY}/nostr-rs-relay:0.9.0`,
|
||||
manifestUrl: undefined,
|
||||
repoUrl: 'https://sr.ht/~gheartsfield/nostr-rs-relay/'
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user