Files
archy/packages/app/src/data/archy-apps.ts
T
DorianandClaude Opus 4.6 20ef35c8e3 feat(archy): extend useArchy with wallet/files context, add ArchyAppsGrid component
- Add wallet (Lightning balance, channels) and files (Nextcloud) context
  categories to useArchy composable with AI prompt injection
- Create archy-apps.ts data file mapping all 18 Archy services
- Build ArchyAppsGrid component with live status from bridge
- Wire ArchyAppsGrid into ContentPanel when embedded in Archy

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:15:33 +00:00

181 lines
5.4 KiB
TypeScript

export interface ArchyAppMeta {
id: string
name: string
description: string
icon: string
category: 'bitcoin' | 'lightning' | 'storage' | 'social' | 'tools' | 'monitoring' | 'ai' | 'identity'
defaultPort?: number
deepLink: string
}
export const ARCHY_APPS: ArchyAppMeta[] = [
// ─── Bitcoin & Lightning ────────────────────────────────────────
{
id: 'bitcoin-core',
name: 'Bitcoin Core',
description: 'Full Bitcoin node — blockchain validation, UTXO set, fee estimates',
icon: '₿',
category: 'bitcoin',
defaultPort: 8332,
deepLink: '/app/bitcoin-core',
},
{
id: 'lnd',
name: 'LND',
description: 'Lightning Network Daemon — channels, payments, invoices',
icon: '⚡',
category: 'lightning',
defaultPort: 8080,
deepLink: '/app/lnd',
},
{
id: 'core-lightning',
name: 'Core Lightning',
description: 'C-Lightning implementation with plugin ecosystem',
icon: '⚡',
category: 'lightning',
defaultPort: 9735,
deepLink: '/app/core-lightning',
},
{
id: 'btcpay-server',
name: 'BTCPay Server',
description: 'Self-hosted payment processor for Bitcoin and Lightning',
icon: '🛒',
category: 'bitcoin',
defaultPort: 23001,
deepLink: '/app/btcpay-server',
},
{
id: 'mempool',
name: 'Mempool',
description: 'Blockchain explorer — visualize transactions, fees, blocks',
icon: '🔍',
category: 'bitcoin',
defaultPort: 3006,
deepLink: '/app/mempool',
},
{
id: 'fedimint',
name: 'Fedimint',
description: 'Federated Chaumian e-cash — community custody',
icon: '🏦',
category: 'bitcoin',
deepLink: '/app/fedimint',
},
// ─── Storage & Files ────────────────────────────────────────────
{
id: 'nextcloud',
name: 'Nextcloud',
description: 'Files, notes, contacts, calendar — self-hosted cloud',
icon: '☁️',
category: 'storage',
defaultPort: 8443,
deepLink: '/app/nextcloud',
},
{
id: 'immich',
name: 'Immich',
description: 'Photo & video management with ML tagging',
icon: '📸',
category: 'storage',
defaultPort: 2283,
deepLink: '/app/immich',
},
// ─── Social & Nostr ─────────────────────────────────────────────
{
id: 'nostr-rs-relay',
name: 'nostr-rs-relay',
description: 'High-performance Nostr relay in Rust',
icon: '🟣',
category: 'social',
defaultPort: 7000,
deepLink: '/app/nostr-rs-relay',
},
{
id: 'strfry',
name: 'strfry',
description: 'C++ Nostr relay — fast event processing',
icon: '🟣',
category: 'social',
deepLink: '/app/strfry',
},
// ─── Tools ──────────────────────────────────────────────────────
{
id: 'home-assistant',
name: 'Home Assistant',
description: 'Smart home automation and control',
icon: '🏠',
category: 'tools',
defaultPort: 8123,
deepLink: '/app/home-assistant',
},
{
id: 'searxng',
name: 'SearXNG',
description: 'Privacy-respecting metasearch engine',
icon: '🔎',
category: 'tools',
defaultPort: 8888,
deepLink: '/app/searxng',
},
{
id: 'penpot',
name: 'Penpot',
description: 'Open-source design tool — prototyping and collaboration',
icon: '🎨',
category: 'tools',
deepLink: '/app/penpot',
},
{
id: 'onlyoffice',
name: 'OnlyOffice',
description: 'Document editing — docs, spreadsheets, presentations',
icon: '📝',
category: 'tools',
deepLink: '/app/onlyoffice',
},
{
id: 'meshtastic',
name: 'Meshtastic',
description: 'Off-grid mesh networking over LoRa radios',
icon: '📡',
category: 'tools',
deepLink: '/app/meshtastic',
},
// ─── Monitoring ─────────────────────────────────────────────────
{
id: 'grafana',
name: 'Grafana',
description: 'Monitoring dashboards — system metrics and alerts',
icon: '📊',
category: 'monitoring',
defaultPort: 3000,
deepLink: '/app/grafana',
},
// ─── AI ─────────────────────────────────────────────────────────
{
id: 'ollama',
name: 'Ollama',
description: 'Run LLMs locally — Llama, Mistral, Gemma',
icon: '🧠',
category: 'ai',
defaultPort: 11434,
deepLink: '/app/ollama',
},
// ─── Identity ───────────────────────────────────────────────────
{
id: 'did-wallet',
name: 'DID Wallet',
description: 'Decentralized identity — Web5 verifiable credentials',
icon: '🪪',
category: 'identity',
deepLink: '/app/did-wallet',
},
]
/** Look up an Archy app by its ID */
export function getArchyApp(id: string): ArchyAppMeta | undefined {
return ARCHY_APPS.find((a) => a.id === id)
}