Update README and configuration for macOS support
- Revamped README.md to enhance clarity and detail on features, installation, and system requirements for Archipelago. - Added macOS-specific configuration in `config.rs` to detect when running from a macOS app bundle, adjusting data directory paths accordingly. - Introduced a new production build script in `package.json` for optimized deployment of the Neode UI.
This commit is contained in:
@@ -1,135 +1,272 @@
|
||||
# Archipelago Bitcoin Node OS
|
||||
# 🏝️ Archipelago
|
||||
|
||||
Next-generation Bitcoin Node OS built on Alpine Linux with Docker/Podman containerization.
|
||||
> Your Sovereign Personal Server
|
||||
|
||||
## 🚀 New to Archipelago?
|
||||
**Archipelago** is a next-generation Bitcoin Node OS for macOS that combines the power of Bitcoin Core, Lightning Network, and modern self-hosted applications in a beautiful, easy-to-use interface.
|
||||
|
||||
**Get started in minutes:** [GETTING_STARTED.md](./GETTING_STARTED.md)
|
||||
[](https://www.apple.com/macos/)
|
||||
[](LICENSE)
|
||||
[](https://www.docker.com/)
|
||||
[](https://www.rust-lang.org/)
|
||||
[](https://vuejs.org/)
|
||||
|
||||
**Quick reference:** [QUICK_REFERENCE_DOCKER.md](./QUICK_REFERENCE_DOCKER.md)
|
||||
## ✨ Features
|
||||
|
||||
## Overview
|
||||
### 🟠 Bitcoin & Lightning
|
||||
- **Bitcoin Core** - Full node with custom UI (regtest/testnet/mainnet)
|
||||
- **LND** - Lightning Network Daemon for instant payments
|
||||
- **BTCPay Server** - Self-hosted payment processing
|
||||
- **Mempool** - Beautiful blockchain explorer
|
||||
|
||||
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
|
||||
### 🚀 Self-Hosted Apps
|
||||
- **Nextcloud** - Cloud storage and file management
|
||||
- **Penpot** - Open-source design and prototyping
|
||||
- **Endurain** - Fitness tracking platform
|
||||
- **Home Assistant** - Home automation hub
|
||||
- **Grafana** - Metrics and monitoring
|
||||
- **OnlyOffice** - Document editing suite
|
||||
- **SearXNG** - Privacy-respecting search
|
||||
- **Morphos** - File conversion utility
|
||||
|
||||
## Quick Start
|
||||
### 🎨 Modern UI
|
||||
- **Glassmorphism Design** - Beautiful, modern interface
|
||||
- **Real-time Updates** - WebSocket-powered live data
|
||||
- **Responsive Layout** - Works on desktop and mobile
|
||||
- **Dark Theme** - Easy on the eyes
|
||||
- **Progressive Web App** - Install as native app
|
||||
|
||||
### 🔧 Technical
|
||||
- **Native Rust Backend** - Fast, secure, efficient
|
||||
- **Vue.js Frontend** - Modern reactive UI
|
||||
- **Docker Integration** - Seamless container management
|
||||
- **One-Click Launch** - Start apps with a single click
|
||||
- **Auto-Discovery** - Automatically detects running containers
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
- macOS 10.15 (Catalina) or later
|
||||
- 8GB RAM minimum (16GB recommended)
|
||||
- 20GB free disk space
|
||||
- [Docker Desktop](https://www.docker.com/products/docker-desktop)
|
||||
|
||||
### Installation
|
||||
|
||||
First, install all required dependencies:
|
||||
1. **Download the latest release**
|
||||
```bash
|
||||
# Download from GitHub Releases
|
||||
https://github.com/[your-repo]/archipelago/releases/latest
|
||||
```
|
||||
|
||||
```bash
|
||||
./INSTALL.sh
|
||||
```
|
||||
2. **Install Docker Desktop**
|
||||
- Download from https://www.docker.com/products/docker-desktop
|
||||
- Install and start Docker Desktop
|
||||
|
||||
This will install:
|
||||
- Rust (latest stable)
|
||||
- Node.js 18+
|
||||
- Podman (container runtime)
|
||||
- PostgreSQL 15
|
||||
- All project dependencies
|
||||
3. **Install Archipelago**
|
||||
- Open the DMG file
|
||||
- Drag Archipelago to Applications
|
||||
- Launch from Applications folder
|
||||
|
||||
**Manual Installation:** See [SETUP_GUIDE.md](./SETUP_GUIDE.md) for detailed installation instructions.
|
||||
4. **Access the Dashboard**
|
||||
- Open http://localhost:8100 in your browser
|
||||
- Login with default credentials (change immediately!)
|
||||
|
||||
**Verify Installation:**
|
||||
```bash
|
||||
./verify-install.sh
|
||||
```
|
||||
See [QUICKSTART.md](QUICKSTART.md) for detailed instructions.
|
||||
|
||||
## 🏗️ Building from Source
|
||||
|
||||
### Development Setup
|
||||
|
||||
1. **Configure environment (optional):**
|
||||
```bash
|
||||
cp core/.env.example core/.env
|
||||
cp neode-ui/.env.example neode-ui/.env
|
||||
```
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/[your-repo]/archipelago.git
|
||||
cd archipelago
|
||||
|
||||
2. **Start development servers:**
|
||||
# Install Rust
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
**Quick start (mock backend for UI development):**
|
||||
```bash
|
||||
./scripts/dev.sh
|
||||
```
|
||||
|
||||
**Or use the interactive starter:**
|
||||
```bash
|
||||
./scripts/dev-start.sh
|
||||
```
|
||||
# Install Node.js (using Homebrew)
|
||||
brew install node
|
||||
|
||||
**Or manually:**
|
||||
```bash
|
||||
# Terminal 1: Backend
|
||||
cd core
|
||||
cargo run --bin archipelago
|
||||
|
||||
# Terminal 2: Frontend
|
||||
cd neode-ui
|
||||
npm run dev
|
||||
```
|
||||
# Build and run in development mode
|
||||
./start-docker-apps.sh
|
||||
```
|
||||
|
||||
3. **Open in browser:**
|
||||
- Frontend: http://localhost:8100
|
||||
- Backend API: http://localhost:5959
|
||||
|
||||
### Mock Backend (UI Development Only)
|
||||
|
||||
For frontend-only development:
|
||||
### Production Build
|
||||
|
||||
```bash
|
||||
cd /Users/tx1138/Code/Archipelago/neode-ui
|
||||
npm run dev:mock
|
||||
# Build macOS app bundle and DMG
|
||||
export ARCHIPELAGO_VERSION="0.1.0"
|
||||
./build-macos-production.sh
|
||||
|
||||
# Output will be in build/macos/
|
||||
# - Archipelago.app
|
||||
# - Archipelago-0.1.0-macOS.dmg
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
See [BUILD_MACOS.md](BUILD_MACOS.md) for detailed build instructions.
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
- **[Quick Start Guide](QUICKSTART.md)** - Get started in minutes
|
||||
- **[Build Instructions](BUILD_MACOS.md)** - Build from source
|
||||
- **[Deployment Checklist](DEPLOYMENT_CHECKLIST.md)** - Release process
|
||||
- **[Architecture](docs/architecture.md)** - System design
|
||||
- **[Changelog](CHANGELOG.md)** - Version history
|
||||
|
||||
## 🗺️ 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
|
||||
archipelago/
|
||||
├── core/ # Rust backend
|
||||
│ ├── archipelago/ # Main backend binary
|
||||
│ ├── container/ # Docker integration
|
||||
│ ├── security/ # Security modules
|
||||
│ └── performance/ # Performance optimization
|
||||
├── neode-ui/ # Vue.js frontend
|
||||
│ ├── src/
|
||||
│ │ ├── views/ # Page components
|
||||
│ │ ├── components/ # UI components
|
||||
│ │ └── stores/ # State management
|
||||
│ └── public/ # Static assets
|
||||
├── docker/ # Docker UI assets
|
||||
│ ├── bitcoin-ui/ # Bitcoin Core UI
|
||||
│ └── lnd-ui/ # LND UI
|
||||
├── docker-compose.yml # Container orchestration
|
||||
└── build-macos-production.sh # Production build script
|
||||
```
|
||||
|
||||
## Development
|
||||
## 🐳 Docker Apps
|
||||
|
||||
See [Development Setup Guide](./docs/development-setup.md) for detailed instructions.
|
||||
All apps run in isolated Docker containers with automatic health monitoring:
|
||||
|
||||
## Architecture
|
||||
| App | Port | Description |
|
||||
|-----|------|-------------|
|
||||
| Dashboard | 8100 | Main Archipelago UI |
|
||||
| Bitcoin Core | 18443-18444 | Bitcoin RPC |
|
||||
| Bitcoin UI | 18445 | Custom Bitcoin interface |
|
||||
| LND | 10009 | Lightning gRPC |
|
||||
| LND UI | 8085 | Custom LND interface |
|
||||
| BTCPay Server | 8082 | Payment processing |
|
||||
| Mempool | 8080 | Blockchain explorer |
|
||||
| Penpot | 9001 | Design platform |
|
||||
| Endurain | 8084 | Fitness tracking |
|
||||
| Morphos | 8081 | File converter |
|
||||
| Nextcloud | 8086 | Cloud storage |
|
||||
| Grafana | 8083 | Monitoring |
|
||||
| Home Assistant | 8123 | Home automation |
|
||||
|
||||
See [Architecture Documentation](./docs/architecture.md) for system design details.
|
||||
## 🔐 Security
|
||||
|
||||
## App Manifests
|
||||
### Default Security Measures
|
||||
- ✅ Localhost-only by default (127.0.0.1)
|
||||
- ✅ Container isolation (Docker networks)
|
||||
- ✅ No root privileges required
|
||||
- ✅ Encrypted data storage
|
||||
- ✅ Session-based authentication
|
||||
|
||||
See [App Manifest Specification](./docs/app-manifest-spec.md) for creating containerized apps.
|
||||
### Recommended Practices
|
||||
- 🔑 Change default passwords immediately
|
||||
- 🔥 Enable macOS firewall
|
||||
- 🔄 Keep Docker and Archipelago updated
|
||||
- 💾 Backup data regularly
|
||||
- 🚫 Don't expose ports without VPN
|
||||
|
||||
## Features
|
||||
## 🤝 Contributing
|
||||
|
||||
- 🐧 **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
|
||||
We welcome contributions! Here's how:
|
||||
|
||||
## Requirements
|
||||
1. **Fork the repository**
|
||||
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
|
||||
3. **Commit your changes**: `git commit -m 'Add amazing feature'`
|
||||
4. **Push to the branch**: `git push origin feature/amazing-feature`
|
||||
5. **Open a Pull Request**
|
||||
|
||||
- Rust (latest stable)
|
||||
- Node.js 18+
|
||||
- Podman (for containers)
|
||||
- PostgreSQL (for backend)
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
|
||||
|
||||
## License
|
||||
## 🐛 Bug Reports
|
||||
|
||||
MIT
|
||||
Found a bug? Please open an issue with:
|
||||
- macOS version
|
||||
- Docker version
|
||||
- Archipelago version
|
||||
- Steps to reproduce
|
||||
- Error logs
|
||||
|
||||
## 💬 Community
|
||||
|
||||
- **GitHub Discussions**: Ask questions and share ideas
|
||||
- **Discord**: [Join our server] (coming soon)
|
||||
- **Twitter**: [@archipelago_os] (coming soon)
|
||||
|
||||
## 🗺️ Roadmap
|
||||
|
||||
### v0.2.0 (Q2 2026)
|
||||
- [ ] Auto-update system
|
||||
- [ ] Multi-user support
|
||||
- [ ] Enhanced Bitcoin Core controls
|
||||
- [ ] Lightning Network autopilot
|
||||
- [ ] Backup/restore functionality
|
||||
|
||||
### v0.3.0 (Q3 2026)
|
||||
- [ ] Native container runtime (no Docker Desktop)
|
||||
- [ ] iOS companion app
|
||||
- [ ] Hardware wallet integration
|
||||
- [ ] Tor integration
|
||||
- [ ] VPN/Tailscale support
|
||||
|
||||
### v1.0.0 (Q4 2026)
|
||||
- [ ] Mac App Store release
|
||||
- [ ] Windows support
|
||||
- [ ] Linux support
|
||||
- [ ] Plugin system
|
||||
- [ ] Decentralized app marketplace
|
||||
|
||||
## 📊 System Requirements
|
||||
|
||||
### Minimum
|
||||
- macOS 10.15 (Catalina)
|
||||
- 8GB RAM
|
||||
- 20GB disk space
|
||||
- Intel or Apple Silicon CPU
|
||||
|
||||
### Recommended
|
||||
- macOS 12.0 (Monterey) or later
|
||||
- 16GB RAM
|
||||
- 50GB+ disk space (for blockchain)
|
||||
- SSD storage
|
||||
- Fast internet
|
||||
|
||||
## 📜 License
|
||||
|
||||
This project is licensed under the [MIT License](LICENSE).
|
||||
|
||||
## 🙏 Acknowledgments
|
||||
|
||||
Built with amazing open-source projects:
|
||||
- [Rust](https://www.rust-lang.org/) - Systems programming language
|
||||
- [Vue.js](https://vuejs.org/) - Frontend framework
|
||||
- [Docker](https://www.docker.com/) - Container runtime
|
||||
- [Bitcoin Core](https://bitcoin.org/) - Bitcoin full node
|
||||
- [LND](https://lightning.engineering/) - Lightning Network
|
||||
- [Alpine Linux](https://alpinelinux.org/) - Minimal Linux (inspiration)
|
||||
- And many more...
|
||||
|
||||
## 💖 Support the Project
|
||||
|
||||
If you find Archipelago useful:
|
||||
- ⭐ Star the repository
|
||||
- 🐦 Share on social media
|
||||
- 🐛 Report bugs and request features
|
||||
- 💻 Contribute code
|
||||
- ☕ [Buy us a coffee] (coming soon)
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Built with ❤️ by the Archipelago team**
|
||||
|
||||
[Website](https://archipelago.os) • [Documentation](./docs) • [Twitter](https://twitter.com/archipelago_os)
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user