Update README and API for Docker integration and app management

- 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.
This commit is contained in:
Dorian
2026-01-27 22:55:20 +00:00
parent 10fa19df66
commit 7afefafec1
14 changed files with 1406 additions and 179 deletions

View File

@@ -51,7 +51,7 @@ Archipelago is a next-generation Bitcoin Node OS built on Alpine Linux with Podm
### 1. Alpine Linux Base
- **Size**: ~130MB (vs 1.5GB+ for Umbrel/StartOS)
- **Size**: ~130MB (vs 1.5GB+ for Umbrel)
- **Security**: Hardened kernel, minimal attack surface
- **Multi-arch**: ARM64 (Raspberry Pi) and x86_64 support
@@ -65,8 +65,8 @@ Located in `core/container/`:
### 3. Backend API Extensions
New RPC endpoints in `core/startos/src/container/`:
- `container-install`: Install app from manifest
New RPC endpoints in `core/archipelago/src/container/`:
- `container-install`: Install app from Docker image
- `container-start/stop/remove`: Container lifecycle
- `container-status/logs`: Status and debugging
- `container-list`: List all containers

View File

@@ -151,22 +151,20 @@
## Architecture & System Design
### StartOS Independence
- **NEVER** import or reference StartOS-specific code
- **NEVER** copy StartOS patterns without refactoring
- ✅ **ALWAYS** create Archipelago-native implementations
### Docker & Podman Architecture
- **Development**: Use Docker Compose with official Docker images
- **Production**: Use Podman with same Docker images on Alpine Linux
- ✅ **ALWAYS** use standard Docker Hub images (never proprietary formats)
- ✅ Use our own container orchestration (`core/container/`)
- ✅ Use our own security modules (`core/security/`)
- ✅ Use our own performance modules (`core/performance/`)
### Backend Architecture
- ✅ Use `archipelago-container` crate, not StartOS container code
- ✅ Use `archipelago-container` crate for container management
- ✅ Use our RPC endpoints in `core/archipelago/src/`
- ⚠️ **TEMPORARY**: Using StartOS backend as base during Phase 1
- 🎯 **GOAL**: Build our own Archipelago backend binary that uses ONLY our modules
- ✅ Mark all StartOS-derived code with `// TODO: Refactor to Archipelago-native`
- ✅ For development: Use mock backend for UI work when possible
- ✅ All new features must use our modules (`archipelago-*` crates)
- ✅ Build Archipelago-native implementations, not wrappers
### System Architecture Principles
- ✅ **Alpine Linux Base**: 130MB minimal, secure, multi-arch
@@ -494,29 +492,29 @@
### ❌ NEVER DO:
1. **Hardcode absolute paths** - Use workspace-relative paths
2. **Use inline Tailwind classes** - Create global utility classes
3. **Import StartOS code directly** - Build Archipelago-native
4. **Skip security policies** - Security is mandatory
5. **Hardcode secrets/URLs** - Use environment variables
6. **Use `unwrap()` in production** - Handle errors properly
7. **Use Docker** - Use Podman via our client
8. **Skip tests** - Test coverage is required
9. **Commit secrets** - Use `.env` files (not committed)
10. **Leave TODOs** - Fix now or create issues
11. **Use `any` in TypeScript** - Use proper types
12. **Ignore compiler warnings** - Fix all warnings
13. **Use `latest` tag** - Pin specific versions
14. **Run as root** - Use non-root users
15. **Forget documentation** - Document as you code
3. **Skip security policies** - Security is mandatory
4. **Hardcode secrets/URLs** - Use environment variables
5. **Use `unwrap()` in production** - Handle errors properly
6. **Skip tests** - Test coverage is required
7. **Commit secrets** - Use `.env` files (not committed)
8. **Leave TODOs** - Fix now or create issues
9. **Use `any` in TypeScript** - Use proper types
10. **Ignore compiler warnings** - Fix all warnings
11. **Use `latest` tag** - Pin specific versions
12. **Run as root** - Use non-root users
13. **Forget documentation** - Document as you code
14. **Use proprietary package formats** - Use standard Docker images
15. **Depend on external registries** - Host our own or use Docker Hub
### ✅ ALWAYS DO:
1. **Use workspace-relative paths** - Portable code
2. **Create global Tailwind classes** - Consistent styling
3. **Build Archipelago-native solutions** - No external dependencies
3. **Build Archipelago-native solutions** - Clean architecture
4. **Include security in all containers** - Security first
5. **Use environment variables** - Configurable deployments
6. **Add modules to Cargo.toml** - Workspace coherence
7. **Create reusable components** - DRY principle
8. **Use Podman via our client** - Consistent interface
8. **Use Docker (dev) or Podman (prod)** - Standard containers
9. **Handle all errors gracefully** - User-friendly messages
10. **Follow the architecture plan** - Consistency
11. **Write tests** - Prevent regressions
@@ -740,6 +738,6 @@
---
**Remember**: This is Archipelago, not StartOS. Build it right, build it secure, build it our way.
**Remember**: This is Archipelago - a clean, modern Bitcoin Node OS built with standard Docker containers, Alpine Linux, and Podman.
**Mission**: A production-ready, open-source Bitcoin Node OS that anyone can trust, deploy, and contribute to.