Enhance ISO build process and documentation for Archipelago
- Updated BUILD-GUIDE.md to clarify instructions for building the Archipelago Auto-Installer ISO, emphasizing the recommended method of building directly on the target server. - Added auto-installation of missing dependencies (xorriso, podman) when running the build script with sudo. - Enhanced the build-auto-installer-iso.sh script to capture container images from the live server, ensuring the ISO includes the same set of applications as the dev server. - Revised deployment documentation to stress the importance of building the Rust backend on the Linux dev server and included new instructions for capturing system-level changes for ISO builds. - Improved UI components and added new bundled applications (BTCPay Server, Mempool Explorer, Nostr Relay, Strfry Relay, Tailscale) to enhance user experience.
This commit is contained in:
@@ -439,6 +439,13 @@
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### Backend: always build on the dev server (never on macOS)
|
||||
- **CRITICAL**: The Rust backend **must** be built **on the Linux dev server**, not on macOS. Deploy by **rsync then build**:
|
||||
1. **Rsync** source to server: `sshpass -p "archipelago" rsync -avz --exclude target --exclude .git -e "ssh -o StrictHostKeyChecking=no" core/ archipelago@192.168.1.228:~/archy/core/`
|
||||
2. **Build and deploy on server**: `sshpass -p "archipelago" ssh -o StrictHostKeyChecking=no archipelago@192.168.1.228 'source ~/.cargo/env && cd ~/archy/core/archipelago && cargo build --release && sudo systemctl stop archipelago && sudo cp ~/archy/core/target/release/archipelago /usr/local/bin/ && sudo systemctl start archipelago'`
|
||||
- When making backend changes, **action the build**: run the rsync + SSH build/deploy steps above. Do not build the binary locally and copy it (causes Exec format error on Linux).
|
||||
- Dev server: `archipelago@192.168.1.228`, password: `archipelago`.
|
||||
|
||||
### Scripts & Automation
|
||||
- ✅ All scripts in `scripts/` directory
|
||||
- ✅ Use `#!/usr/bin/env bash` for portability
|
||||
@@ -507,21 +514,22 @@
|
||||
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** - 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 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
|
||||
12. **Document code** - Help future contributors
|
||||
13. **Review your own code** - Catch issues early
|
||||
14. **Run CI checks locally** - Before pushing
|
||||
15. **Think production first** - Build it right
|
||||
1. **Build backend on the dev server** - Rsync `core/` to `archipelago@192.168.1.228:~/archy/core/`, then SSH in and run `cargo build --release` and deploy the binary. Never build the Rust binary on macOS for deployment.
|
||||
2. **Use workspace-relative paths** - Portable code
|
||||
3. **Create global Tailwind classes** - Consistent styling
|
||||
4. **Build Archipelago-native solutions** - Clean architecture
|
||||
5. **Include security in all containers** - Security first
|
||||
6. **Use environment variables** - Configurable deployments
|
||||
7. **Add modules to Cargo.toml** - Workspace coherence
|
||||
8. **Create reusable components** - DRY principle
|
||||
9. **Use Docker (dev) or Podman (prod)** - Standard containers
|
||||
10. **Handle all errors gracefully** - User-friendly messages
|
||||
11. **Follow the architecture plan** - Consistency
|
||||
12. **Write tests** - Prevent regressions
|
||||
13. **Document code** - Help future contributors
|
||||
14. **Review your own code** - Catch issues early
|
||||
15. **Run CI checks locally** - Before pushing
|
||||
16. **Think production first** - Build it right
|
||||
|
||||
## Architecture Adherence
|
||||
|
||||
|
||||
Reference in New Issue
Block a user