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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user