Yesterday (Sunday) I fiddled with the captive portal on the instant community wifi build. My goal was to improve the experience for ios devices. iOS devices don’t support the camera apis in a captive portal window. I started working with claude to get this built, but the app ended up breaking. I had to start over.
I had problems with writing the recipient image on my linux laptop. for some reason, the devices aren’t connecting to wifi when I have them powered up with a build from the linux laptop. The ripped images from my iMac do work, however. I built a new 8gig image and ripped 10 cards on the etcher.
When the images were finally ready, i made a fateful choice. Instead of using the container, I tried to do the deployment from the host OS. The last time I did this it failed because the essential.yml file’s ordering was broken. I’d corrected this a couple of days ago, and retried the experiment. THIS WAS FAR MORE PRODUCTIVE!
Lessons Learned
- When running from the host OS, we lose the $DOCKER_HOST variable. Recall: if we have the builder hotspot, the docker_host value is hardcoded to 10.6.6.1. If it’s running in the containers, they’re preconfigured to grab the hostname of the host OS running apt-cacher-ng container- and the playbook applies the hostname to the target devices apt repositories correctly. Since we’re implementing a 3rd solution- which is running the playbook from the Host OS, we need to manually pass the environment variable. Additionally, the root_playbook_dir is hardcoded to be /home/pi/Playbooks/yadda yada. These two tasks can be achieved with the following command:
DOCKER_HOST=captainmccrank.local ansible-playbook -i inventory run.yml -e “root_playbook_dir=$(pwd)” -vv - The agent performed very well. The Agent’s summary of the deliverables is as follows:
## Achievement Summary
**MAJOR BREAKTHROUGH**: Successfully completed 95%+ of the Instant Community WiFi Portal deployment using host system approach with proper environment variable configuration. This represents the **furthest successful deployment progress** achieved to date.
**Impact**: Critical – Proved host system deployment viability and documented complete infrastructure success
**Severity**: Late-stage failure after major system completion
**Environment**: Host system deployment with corrected DOCKER_HOST and path variables
## Deployment Success Metrics
### **Quantitative Success:**
– **Previous attempts**: Failed at tasks 3-4 (APT repository failures)
– **This session**: Reached final cleanup phase (`roles/system/tasks/final_cleanup.yml`)
– **Estimated completion**: 95%+ of all deployment tasks completed successfully
– **Package installations**: 247+ development packages, WiFi drivers, SSL certificates
– **System reboots**: Multiple successful reboots with automatic reconnection
– **Validation tests**: All critical infrastructure tests **PASSING**
### **Infrastructure Achievements:**
✅ **APT Repository System**: Perfect operation through apt-cacher-ng server
✅ **Development Environment**: Complete build toolchain installation
✅ **WiFi Hardware**: 8812au drivers compiled, installed, and activated
✅ **Network Architecture**: NetworkManager + dnsmasq + nodogsplash properly configured
✅ **SSL Infrastructure**: Certificates generated (snakeoil, nginx, certbot integration)
✅ **Service Dependencies**: All critical service relationships established correctly
