bug fixing and deploy and build diagnostics
This commit is contained in:
+58
-124
@@ -1,151 +1,85 @@
|
||||
# Archipelago Apps - Development Guide
|
||||
|
||||
This directory contains all prepackaged containerized applications for Archipelago NodeOS.
|
||||
# Archipelago Apps — Development Guide
|
||||
|
||||
## App Overview
|
||||
|
||||
### Bitcoin & Lightning
|
||||
- **bitcoin-core**: Full Bitcoin node (ports: 8332, 8333) - v24.0.0
|
||||
- **lnd**: Lightning Network Daemon (ports: 9735, 10009, 8080)
|
||||
- **core-lightning**: Core Lightning implementation (ports: 9736, 9835)
|
||||
- **lightning-stack**: Complete Lightning implementation (ports: 9737, 10010, 8087) - v0.12.0
|
||||
- **btcpay-server**: Bitcoin payment processor (ports: 80, 443) - v1.12.0
|
||||
- **mempool**: Blockchain explorer (port: 4080) - v2.5.0
|
||||
- **fedimint**: Federated Bitcoin minting (ports: 8173, 8174) - v0.3.0
|
||||
| App | Ports | Version |
|
||||
|-----|-------|---------|
|
||||
| bitcoin-knots | 8332 (RPC), 8333 (P2P) | v28.1 |
|
||||
| lnd | 9735 (P2P), 10009 (gRPC), 8080 (REST) | v0.17.4-beta |
|
||||
| btcpay-server | 23000 (HTTP) | v1.13.5 |
|
||||
| thunderhub | 3010 (HTTP) | v0.13.31 |
|
||||
| mempool | 4080 (HTTP) | v2.5.0 |
|
||||
| electrumx | 50001 (TCP), 50002 (SSL) | latest |
|
||||
| fedimint | 8173 (API), 8174 (Web) | v0.10.0 |
|
||||
|
||||
### Nostr Relays
|
||||
- **nostr-rs-relay**: High-performance Rust relay (port: 8081)
|
||||
- **strfry**: Lightweight C++ relay (port: 8082)
|
||||
### Nostr
|
||||
| App | Ports | Version |
|
||||
|-----|-------|---------|
|
||||
| nostr-rs-relay | 8081 (WebSocket) | v0.9.0 |
|
||||
| nostrudel | 8082 (HTTP) | v0.40.0 |
|
||||
|
||||
### Web5 & Decentralized Protocols
|
||||
- **web5-dwn**: Decentralized Web Node (port: 3000)
|
||||
- **did-wallet**: Web5 DID Wallet (port: 8083)
|
||||
|
||||
### Self-Hosted Services
|
||||
- **home-assistant**: Home automation (port: 8123) - v2024.1.0
|
||||
- **grafana**: Monitoring and dashboards (port: 3001) - v10.2.0
|
||||
- **ollama**: Local AI models (port: 11434) - v0.1.0
|
||||
- **searxng**: Privacy search engine (port: 8888) - v2024.1.0
|
||||
- **onlyoffice**: Office suite (port: 8088) - v7.5.0
|
||||
- **penpot**: Design platform (port: 8089) - v2.0.0
|
||||
|
||||
### Custom Applications
|
||||
- **endurain**: Application platform (port: 8085) - v1.0.0
|
||||
- **morphos-server**: MorphOS server (port: 8086) - v1.0.0
|
||||
|
||||
### Mesh Networking
|
||||
- **router**: Mesh routing and network management (ports: 8084, 5353, 1900)
|
||||
- **meshtastic**: LoRa mesh networking (ports: 4403, 1883)
|
||||
|
||||
## Port Assignments
|
||||
|
||||
All apps use unique base ports. In development mode, ports are offset by 10000 (configurable).
|
||||
|
||||
See [PORTS.md](./PORTS.md) for complete port mapping.
|
||||
|
||||
Key apps:
|
||||
- **bitcoin-core**: 8332, 8333 → 18332, 18333
|
||||
- **btcpay-server**: 80, 443 → 10080, 10443
|
||||
- **home-assistant**: 8123 → 18123
|
||||
- **grafana**: 3001 → 13001
|
||||
- **mempool**: 4080 → 14080
|
||||
- **ollama**: 11434 → 21434
|
||||
- **lightning-stack**: 9737, 10010, 8087 → 19737, 20010, 18087
|
||||
### Self-Hosted
|
||||
| App | Port | Version |
|
||||
|-----|------|---------|
|
||||
| nextcloud | 8084 | v28 |
|
||||
| jellyfin | 8096 | v10.8.13 |
|
||||
| immich | 2283 | release |
|
||||
| photoprism | 2342 | v240915 |
|
||||
| vaultwarden | 8222 | v1.30.0-alpine |
|
||||
| homeassistant | 8123 | v2024.1 |
|
||||
| filebrowser | 8083 | v2.27.0 |
|
||||
| searxng | 8888 | 2024.11.17 |
|
||||
| ollama | 11434 | v0.5.4 |
|
||||
| grafana | 3001 | v10.2.0 |
|
||||
| portainer | 9000 | v2.19.4 |
|
||||
| onlyoffice | 8088 | v7.5.1 |
|
||||
| penpot | 8089 | v2.4 |
|
||||
|
||||
## Building Apps
|
||||
|
||||
### Build All Apps
|
||||
|
||||
```bash
|
||||
./build.sh
|
||||
cd apps
|
||||
./build.sh # Build all custom apps
|
||||
./build.sh <app-id> # Build specific app
|
||||
```
|
||||
|
||||
### Build Specific App
|
||||
|
||||
```bash
|
||||
./build.sh <app-id>
|
||||
```
|
||||
|
||||
### Build for Development
|
||||
|
||||
```bash
|
||||
./build.sh <app-id> --dev
|
||||
```
|
||||
Custom apps with local source: `router`, `did-wallet`, `web5-dwn`. All other apps use official container images.
|
||||
|
||||
## App Structure
|
||||
|
||||
Each app directory contains:
|
||||
|
||||
- `manifest.yml` - App manifest defining container configuration
|
||||
- `Dockerfile` - Container image definition
|
||||
- `README.md` - App-specific documentation (for custom apps)
|
||||
- Source code (for custom apps: router, did-wallet, web5-dwn)
|
||||
|
||||
## Custom Apps
|
||||
|
||||
The following apps have custom implementations:
|
||||
|
||||
1. **router** - TypeScript/Node.js mesh router
|
||||
2. **did-wallet** - TypeScript/Node.js Web5 wallet
|
||||
3. **web5-dwn** - TypeScript/Node.js DWN server
|
||||
|
||||
These apps can be developed locally:
|
||||
|
||||
```bash
|
||||
cd apps/<app-id>
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Standard Apps
|
||||
|
||||
The following apps use official Docker images:
|
||||
|
||||
- bitcoin-core (bitcoin/bitcoin:26.0)
|
||||
- lnd (lightninglabs/lnd:v0.18.0)
|
||||
- core-lightning (elementsproject/lightningd:v23.08.2)
|
||||
- btcpay-server (btcpayserver/btcpayserver:1.12.0)
|
||||
- nostr-rs-relay (scsibug/nostr-rs-relay:latest)
|
||||
- strfry (strfry/strfry:latest)
|
||||
- meshtastic (meshtastic/meshtastic:latest)
|
||||
- `manifest.yml` — Container configuration
|
||||
- `Dockerfile` — Image definition (custom apps only)
|
||||
- `README.md` — App-specific docs (custom apps only)
|
||||
- `src/` — Source code (custom apps only)
|
||||
|
||||
## Running in Development
|
||||
|
||||
### Using Archipelago Backend
|
||||
|
||||
The Archipelago backend will automatically:
|
||||
1. Build local images if they don't exist
|
||||
2. Apply port offsets in dev mode
|
||||
3. Map volumes to `/tmp/archipelago-dev/<app-id>`
|
||||
4. Start containers with proper networking
|
||||
|
||||
### Manual Testing
|
||||
|
||||
You can test apps manually:
|
||||
The Archipelago backend manages containers via rootless Podman. Install and start apps through the web UI Marketplace or via RPC:
|
||||
|
||||
```bash
|
||||
# Build the app
|
||||
./build.sh <app-id>
|
||||
|
||||
# Run with Docker/Podman
|
||||
docker run -p <host-port>:<container-port> \
|
||||
-v /tmp/archipelago-dev/<app-id>:/data \
|
||||
archipelago/<app-id>:latest
|
||||
curl -X POST http://localhost:5959/rpc/v1 \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"method": "container-install", "params": {"manifest_path": "apps/router/manifest.yml"}}'
|
||||
```
|
||||
|
||||
## Integration with Archipelago
|
||||
### Manual Testing (Podman)
|
||||
|
||||
Apps are integrated via:
|
||||
```bash
|
||||
# Build
|
||||
./build.sh router
|
||||
|
||||
1. **Manifest files** - Define app configuration
|
||||
2. **Container runtime** - Podman/Docker for execution
|
||||
3. **Port manager** - Handles port allocation and offsets
|
||||
4. **Dev orchestrator** - Manages containers in development
|
||||
# Run directly with Podman
|
||||
podman run -p 18084:8080 \
|
||||
-v /tmp/archipelago-dev/router:/app/data \
|
||||
localhost/archipelago/router:latest
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
## Integration Checklist
|
||||
|
||||
When building the OS image, these apps will be:
|
||||
1. Built into container images
|
||||
2. Included in the OS image
|
||||
3. Available for installation via the UI
|
||||
4. Pre-configured with proper networking and security
|
||||
Adding a new app requires updates in multiple places. See the full checklist in [CLAUDE.md](../CLAUDE.md) under "App Integration Checklist".
|
||||
|
||||
## Port Assignments
|
||||
|
||||
See [PORTS.md](./PORTS.md) for complete mapping. Dev ports are offset by +10000.
|
||||
|
||||
+30
-54
@@ -1,70 +1,46 @@
|
||||
# Archipelago App Manifests
|
||||
|
||||
This directory contains app manifest definitions for containerized applications in the Archipelago Bitcoin Node OS.
|
||||
Containerized applications for the Archipelago Bitcoin Node OS. All apps run in rootless Podman with security hardening (cap-drop ALL, readonly root, non-root user, memory limits).
|
||||
|
||||
## App Categories
|
||||
|
||||
### Bitcoin & Lightning
|
||||
- `bitcoin-core/` - Bitcoin Core full node (v24.0.0)
|
||||
- `lnd/` - Lightning Network Daemon
|
||||
- `core-lightning/` - Core Lightning (CLN)
|
||||
- `lightning-stack/` - Complete Lightning implementation (v0.12.0)
|
||||
- `btcpay-server/` - BTCPay Server payment processor (v1.12.0)
|
||||
- `mempool/` - Mempool blockchain explorer (v2.5.0)
|
||||
- `fedimint/` - Federated Bitcoin minting (v0.3.0)
|
||||
- **bitcoin-knots** — Full Bitcoin node (v28.1)
|
||||
- **lnd** — Lightning Network Daemon (v0.17.4-beta)
|
||||
- **btcpay-server** — Payment processor (v1.13.5)
|
||||
- **thunderhub** — Lightning management UI (v0.13.31)
|
||||
- **mempool** — Block explorer and fee estimator (v2.5.0)
|
||||
- **electrumx** — Electrum server
|
||||
- **fedimint** — Federated Bitcoin minting (v0.10.0)
|
||||
|
||||
### Web5 & Decentralized Protocols
|
||||
- `nostr-rs-relay/` - High-performance Nostr relay (Rust)
|
||||
- `strfry/` - Nostr relay (C++)
|
||||
- `web5-dwn/` - Decentralized Web Node
|
||||
- `did-wallet/` - Web5 wallet with DID support
|
||||
### Nostr
|
||||
- **nostr-rs-relay** — High-performance Rust relay (v0.9.0)
|
||||
- **nostrudel** — Nostr web client (v0.40.0)
|
||||
|
||||
### Web5 & Identity
|
||||
- **web5-dwn** — Decentralized Web Node (v0.4.0)
|
||||
- **did-wallet** — Web5 DID Wallet
|
||||
|
||||
### Self-Hosted Services
|
||||
- `home-assistant/` - Home automation (v2024.1.0)
|
||||
- `grafana/` - Monitoring and dashboards (v10.2.0)
|
||||
- `ollama/` - Local AI models (v0.1.0)
|
||||
- `searxng/` - Privacy-respecting search engine (v2024.1.0)
|
||||
- `onlyoffice/` - Office suite (v7.5.0)
|
||||
- `penpot/` - Design platform (v2.0.0)
|
||||
- **nextcloud** (v28), **jellyfin** (v10.8.13), **immich** (release), **photoprism** (v240915)
|
||||
- **vaultwarden** (v1.30.0-alpine), **onlyoffice** (v7.5.1), **penpot** (v2.4)
|
||||
- **homeassistant** (v2024.1), **filebrowser** (v2.27.0), **searxng** (2024.11.17)
|
||||
- **ollama** (v0.5.4), **grafana** (v10.2.0), **portainer** (v2.19.4)
|
||||
|
||||
### Custom Applications
|
||||
- `endurain/` - Endurain application platform (v1.0.0)
|
||||
- `morphos-server/` - MorphOS server (v1.0.0)
|
||||
### Networking
|
||||
- **tailscale** (stable), **nginx-proxy-manager** (v2.12.1)
|
||||
|
||||
### Mesh Networking & Routing
|
||||
- `meshtastic/` - Meshtastic LoRa mesh networking
|
||||
- `router/` - Mesh routing and local network management
|
||||
### Custom & External
|
||||
- **indeedhub** — Bitcoin documentary streaming (custom build)
|
||||
- **router** — Mesh routing and network management
|
||||
- **botfights**, **nwnn**, **484-kitchen**, **call-the-operator**, **arch-presentation**, **syntropy-institute**, **t-zero** — External web apps
|
||||
|
||||
## Manifest Format
|
||||
|
||||
Each app has a `manifest.yml` file defining:
|
||||
- Container image and version
|
||||
- Resource requirements
|
||||
- Dependencies
|
||||
- Security policies
|
||||
- Health checks
|
||||
- Network configuration
|
||||
Each app has a `manifest.yml` defining container image, resources, dependencies, security policies, health checks, and network config. See [`docs/app-manifest-spec.md`](../docs/app-manifest-spec.md) for the spec.
|
||||
|
||||
See `docs/app-manifest-spec.md` for the complete specification.
|
||||
## Quick Reference
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Build All Apps
|
||||
|
||||
```bash
|
||||
./build.sh
|
||||
```
|
||||
|
||||
### Build Specific App
|
||||
|
||||
```bash
|
||||
./build.sh <app-id>
|
||||
```
|
||||
|
||||
### Development
|
||||
|
||||
See [DEVELOPMENT.md](./DEVELOPMENT.md) for development guide and [QUICKSTART.md](./QUICKSTART.md) for quick start instructions.
|
||||
|
||||
## Port Assignments
|
||||
|
||||
See [PORTS.md](./PORTS.md) for complete port mapping. All apps use unique ports and are automatically offset in development mode.
|
||||
- [PORTS.md](./PORTS.md) — Complete port mapping
|
||||
- [QUICKSTART.md](./QUICKSTART.md) — Build and run apps
|
||||
- [DEVELOPMENT.md](./DEVELOPMENT.md) — Development workflow
|
||||
|
||||
Reference in New Issue
Block a user