eaf7667728fce10226d494c6724bf6275d6743c8
- Update workshop name from 'CODE CRISPIES' to 'SCIENCE IN THE CITY' - Remove all Hetzner cloud deployment references and commands - Focus documentation on local USB/VM workshop environment - Remove cloud server connection functionality - Update WiFi credentials for workshop network - Clean up AGENTS.md to reflect local-only development workflow - Remove misleading cloud infrastructure references - Update help commands and learning flow for local practice only This commit prepares the workshop materials for the Science in the City event, focusing exclusively on local Co-op Cloud deployment practice without cloud infrastructure dependencies.
🚀 SCIENCE IN THE CITY Workshop Infrastructure
Single-participant learning environments for hands-on Co-op Cloud deployment practice.
🚀 Quick Start
# 1. Start local VM for development/testing
make vm
# 2. Build USB drives for participants
make usb-build
make usb-flash USB_DEVICE=/dev/sdX
# 3. Test your USB build
make usb-test
🎯 Learning Flow
Local Practice (USB/VM)
setup # REQUIRED: Setup local proxy first!
recipes # Show available apps
deploy wordpress # Deploy locally
browser wordpress # Open directly in Firefox
Local Practice Only
# Focus on local development and testing
# All deployment happens locally on your USB/VM
🗃️ Architecture
Single Participant Model: Each environment (USB/VM) is complete and self-contained.
- USB Boot: Bootable NixOS with Docker + abra for hands-on learning
- Local VM: Identical environment for development/testing
- Local Environment: Self-contained workshop environment
- Wildcard DNS:
*.workshop.localresolves to127.0.0.1via dnsmasq
💾 USB Environment
Pre-configured with:
- Docker Swarm + abra installation
- SSH client for cloud access
- Wildcard DNS resolution (dnsmasq)
- Terminal-first interface (
desktopcommand for GUI) - Helper commands:
recipes,deploy,connect,browser,help - Tab completion for all commands
Build and flash:
make usb-build
make usb-flash USB_DEVICE=/dev/sdb
🧪 Testing & Validation
Test your workshop environment:
make usb-test # Test ISO in QEMU
make status-local # Check local services
🖥️ Local Development
make vm # Start VM (simulates USB environment)
make usb-build # Build ISO to ./build/iso/
make usb-test # Test ISO in QEMU
The VM simulates the USB experience with identical configuration and commands.
Build Locations:
- USB ISOs:
./build/iso/result/iso/*.iso - VM builds:
./result/(Nix default)
📚 Complete Recipe Catalog
Based on Co-op Cloud with quality scoring:
⭐ Tier 1 - Production Ready (Score 5)
- gitea - Self-hosted Git service
- nextcloud - Personal cloud storage & collaboration
- mealie - Recipe manager and meal planner
🔧 Tier 2 - Stable (Score 4)
- gotosocial - Lightweight Fediverse server
- wordpress - Website & blog platform
🧪 Tier 3 - Community (Score 3)
- collabora - Online office suite
- croc - File transfer tool
- custom-php - Custom PHP applications
- dokuwiki - Simple wiki software
- engelsystem - Event coordination
- fab-manager - FabLab management
- ghost - Professional publishing platform
- karrot - Grassroots initiatives platform
- lauti - Calendar software for events
- loomio - Collaborative decision-making
- mattermost / mattermost-lts - Team collaboration
- mrbs - Meeting room booking system
- onlyoffice - Document editing suite
- open-inventory - Inventory management
- outline - Team knowledge base
- owncast - Self-hosted live streaming
- rallly - Group meeting scheduler
🌐 Extended Catalog
- Content: hedgedoc, mediawiki, seafile
- Communication: jitsi-meet, matrix-synapse, rocketchat
- Business: prestashop, invoiceninja, kimai, pretix
- Development: drone, n8n, gitlab, jupyter-lab
- Analytics: plausible, matomo, uptime-kuma, grafana
- Media & Social: peertube, funkwhale, mastodon, pixelfed, jellyfin
📚 Enhanced Commands
In USB/VM environments:
setup- REQUIRED FIRST: Setup local DNS proxyrecipes- Show complete Co-op Cloud catalogdeploy <app>- Deploy locally with tab completionbrowser [app]- Launch Firefox [to specific app]connect <server>- SSH connection helper (local use only)desktop- Start GUI sessionhelp- Show all commands and debug info
Examples:
# Deploy and open WordPress
deploy wordpress
browser wordpress # Opens http://wordpress.workshop.local in Firefox
# Just open browser
browser # Opens Firefox with blank page
# Use tab completion
deploy <TAB> # Shows all available recipes
browser <TAB> # Shows deployed applications
🔧 Prerequisites
- Nix with flakes enabled
- SSH key at
~/.ssh/id_ed25519.pub - 2GB+ RAM for VM testing
- USB drive (8GB+) for workshop distribution
🛠️ Development Tools
# Format Nix files
make format # Format Nix files
# Start development environment
make opencode # Start opencode in dev shell
🧹 Cleanup
make clean # Clean build artifacts (./build/ and ./result/)
🔍 Troubleshooting
# Check DNS resolution
dig @127.0.0.1 test.workshop.local
# Check running services
docker service ls
# Check DNS service
systemctl status dnsmasq
# Restart if needed
sudo systemctl restart dnsmasq
Description
Science in the City Festival (Malta) – Digital Independence Day Workshop
https://dailysh.it/malta
Readme
316 KiB
Languages
Nix
85.9%
Makefile
7%
HCL
4.5%
Shell
2.6%