# ๐Ÿช CODE CRISPIES Workshop Infrastructure Three deployment environments for Co-op Cloud workshop: ## ๐Ÿš€ Quick Start ```bash # 1. Build & flash USB drives make build-usb make flash-usb USB_DEVICE=/dev/sdX # 2. Deploy cloud infrastructure export HCLOUD_TOKEN=your_token make deploy-cloud # 3. Local development make local-shell make local-deploy make local-ssh ``` ## ๐Ÿ“ Project Structure ``` โ”œโ”€โ”€ flake.nix # USB boot environment โ”œโ”€โ”€ local/flake.nix # Local NixOS containers โ”œโ”€โ”€ terraform/ # Hetzner Cloud infrastructure โ”œโ”€โ”€ scripts/deploy.sh # Cloud setup automation โ”œโ”€โ”€ docs/USB_BOOT_INSTRUCTIONS.md โ””โ”€โ”€ Makefile # Build & deploy commands ``` ## ๐ŸŒ Three Environments ### 1. Cloud (Production) - Hetzner VMs: `hopper.codecrispi.es`, `curie.codecrispi.es`, etc. - Pre-configured with Docker Swarm + abra - SSL certificates via Let's Encrypt ### 2. USB Boot (Workshop) - NixOS live environment - Auto-connects to workshop WiFi - Helper functions: `connect hopper`, `recipes`, `help` - SSH into cloud VMs ### 3. Local (Development) - NixOS containers: `participant1.local` through `participant15.local` - Test abra deployments locally - Isolated Docker Swarm per container ## ๐Ÿ”ง Development Workflow ```bash # Enter development environment make local-shell # Deploy local testing environment make local-deploy # SSH into local participant container make local-ssh # Select participant 1-15 # Test app deployment inside container abra app new wordpress -S --domain=test.participant1.local abra app deploy test.participant1.local ``` ## ๐Ÿ“ฆ Workshop Flow 1. **Participant boots USB** โ†’ NixOS live environment 2. **Connects to WiFi** โ†’ `CODE_CRISPIES_GUEST` 3. **SSH to cloud VM** โ†’ `connect hopper` 4. **Deploy apps** โ†’ `abra app new wordpress -S --domain=mysite.hopper.codecrispi.es` 5. **Access via browser** โ†’ `https://mysite.hopper.codecrispi.es` ## ๐ŸŽฏ Available Apps - **WordPress** - CMS/Blog - **Nextcloud** - File sharing - **HedgeDoc** - Collaborative markdown - **Jitsi** - Video conferencing - **PrestaShop** - E-commerce ## ๐Ÿงน Cleanup ```bash make clean # Clean local artifacts make destroy-cloud # Destroy Hetzner infrastructure ```