- Revised README.md to clarify the use of Docker alongside Podman for containerization. - Updated API documentation to reflect new RPC endpoints, including `auth.logout`. - Enhanced WebSocket handling in the API for better connection management. - Modified Neode UI to utilize a curated list of Docker-based applications, replacing previous Start9 registry calls. - Improved error handling and logging in the marketplace for better user experience.
136 lines
3.3 KiB
Markdown
136 lines
3.3 KiB
Markdown
# Archipelago Bitcoin Node OS
|
|
|
|
Next-generation Bitcoin Node OS built on Alpine Linux with Docker/Podman containerization.
|
|
|
|
## 🚀 New to Archipelago?
|
|
|
|
**Get started in minutes:** [GETTING_STARTED.md](./GETTING_STARTED.md)
|
|
|
|
**Quick reference:** [QUICK_REFERENCE_DOCKER.md](./QUICK_REFERENCE_DOCKER.md)
|
|
|
|
## Overview
|
|
|
|
Archipelago is a modern Bitcoin Node OS focused on:
|
|
- **Standard Containers**: Docker for dev, Podman for production
|
|
- **Minimal Base**: Alpine Linux (130MB vs 1.5GB+)
|
|
- **Security First**: Rootless containers, hardened kernel
|
|
- **Multi-Architecture**: ARM64 (Raspberry Pi) + x86_64
|
|
|
|
## Quick Start
|
|
|
|
### Installation
|
|
|
|
First, install all required dependencies:
|
|
|
|
```bash
|
|
./INSTALL.sh
|
|
```
|
|
|
|
This will install:
|
|
- Rust (latest stable)
|
|
- Node.js 18+
|
|
- Podman (container runtime)
|
|
- PostgreSQL 15
|
|
- All project dependencies
|
|
|
|
**Manual Installation:** See [SETUP_GUIDE.md](./SETUP_GUIDE.md) for detailed installation instructions.
|
|
|
|
**Verify Installation:**
|
|
```bash
|
|
./verify-install.sh
|
|
```
|
|
|
|
### Development Setup
|
|
|
|
1. **Configure environment (optional):**
|
|
```bash
|
|
cp core/.env.example core/.env
|
|
cp neode-ui/.env.example neode-ui/.env
|
|
```
|
|
|
|
2. **Start development servers:**
|
|
|
|
**Quick start (mock backend for UI development):**
|
|
```bash
|
|
./scripts/dev.sh
|
|
```
|
|
|
|
**Or use the interactive starter:**
|
|
```bash
|
|
./scripts/dev-start.sh
|
|
```
|
|
|
|
**Or manually:**
|
|
```bash
|
|
# Terminal 1: Backend
|
|
cd core
|
|
cargo run --bin archipelago
|
|
|
|
# Terminal 2: Frontend
|
|
cd neode-ui
|
|
npm run dev
|
|
```
|
|
|
|
3. **Open in browser:**
|
|
- Frontend: http://localhost:8100
|
|
- Backend API: http://localhost:5959
|
|
|
|
### Mock Backend (UI Development Only)
|
|
|
|
For frontend-only development:
|
|
|
|
```bash
|
|
cd /Users/tx1138/Code/Archipelago/neode-ui
|
|
npm run dev:mock
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
Archipelago/
|
|
├── core/ # Rust backend
|
|
│ ├── archipelago/ # Main backend binary
|
|
│ ├── container/ # Container orchestration
|
|
│ ├── security/ # Security modules
|
|
│ └── models/ # Shared data models
|
|
├── neode-ui/ # Vue.js frontend (in Code/Archipelago)
|
|
├── apps/ # App manifests (NEW)
|
|
├── image-recipe/ # Alpine Linux build files
|
|
├── scripts/ # Development and build scripts
|
|
└── docs/ # Documentation
|
|
```
|
|
|
|
## Development
|
|
|
|
See [Development Setup Guide](./docs/development-setup.md) for detailed instructions.
|
|
|
|
## Architecture
|
|
|
|
See [Architecture Documentation](./docs/architecture.md) for system design details.
|
|
|
|
## App Manifests
|
|
|
|
See [App Manifest Specification](./docs/app-manifest-spec.md) for creating containerized apps.
|
|
|
|
## Features
|
|
|
|
- 🐧 **Alpine Linux Base** - Minimal 130MB OS
|
|
- 🐳 **Podman Containers** - Rootless, secure containerization
|
|
- 🔒 **Security Hardened** - AppArmor, secrets management, image verification
|
|
- ⚡ **High Performance** - Resource management, optimization
|
|
- 🔌 **Parmanode Compatible** - Run existing Parmanode modules
|
|
- 📱 **Modern UI** - Vue.js 3 with TypeScript
|
|
- 🌐 **Web5 & Nostr** - Decentralized protocols support
|
|
- 📡 **Mesh Networking** - Meshtastic and router support
|
|
|
|
## Requirements
|
|
|
|
- Rust (latest stable)
|
|
- Node.js 18+
|
|
- Podman (for containers)
|
|
- PostgreSQL (for backend)
|
|
|
|
## License
|
|
|
|
MIT
|