| #!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
| set -e
|
|
|
| echo "=================================="
|
| echo "Atom Host Filesystem Mount Setup"
|
| echo "OpenClaw Integration"
|
| echo "=================================="
|
| echo ""
|
|
|
|
|
| echo "⚠️ SECURITY WARNING ⚠️"
|
| echo ""
|
| echo "This configuration gives Atom containers WRITE access to host directories."
|
| echo ""
|
| echo "Governance protections in place:"
|
| echo " ✓ AUTONOMOUS maturity gate required"
|
| echo " ✓ Command whitelist (ls, cat, grep, git, npm, etc.)"
|
| echo " ✓ Blocked commands (rm, mv, chmod, kill, sudo, etc.)"
|
| echo " ✓ 5-minute timeout enforcement"
|
| echo " ✓ Full audit trail to ShellSession table"
|
| echo ""
|
| echo "However, this STILL carries risk:"
|
| echo " - Bugs in governance code could bypass protections"
|
| echo " - Compromised AUTONOMOUS agent has shell access"
|
| echo " - Docker escape vulnerabilities could be exploited"
|
| echo ""
|
|
|
| read -p "Do you understand the risks and want to continue? (yes/no): " confirm
|
|
|
| if [ "$confirm" != "yes" ]; then
|
| echo "Setup cancelled."
|
| exit 1
|
| fi
|
|
|
| echo ""
|
| echo "Configuring host mounts..."
|
| echo ""
|
|
|
|
|
| CURRENT_USER=${USER:-$(whoami)}
|
| echo "Detected user: $CURRENT_USER"
|
|
|
|
|
| cat > backend/.env.host-mount <<EOF
|
| # Host filesystem mount configuration
|
| # Generated by host-mount-setup.sh
|
|
|
| ATOM_HOST_MOUNT_ENABLED=true
|
| ATOM_HOST_MOUNT_DIRS=/tmp:/Users/$CURRENT_USER/projects:/Users/$CURRENT_USER/Desktop:/Users/$CURRENT_USER/Documents
|
|
|
| # Security
|
| ATOM_HOST_MOUNT_GATES=autonomous_only,command_whitelist,timeout_enforcement,audit_trail
|
| EOF
|
|
|
| echo "Created backend/.env.host-mount"
|
| echo ""
|
|
|
|
|
| echo "Testing Docker volume access..."
|
| if docker run --rm -v /Users/$CURRENT_USER/Desktop:/host/desktop:ro alpine ls /host/desktop > /dev/null 2>&1; then
|
| echo "✓ Docker volume access working"
|
| else
|
| echo "✗ Docker volume access failed"
|
| echo ""
|
| echo "Troubleshooting:"
|
| echo " 1. Check Docker Desktop: Settings > Resources > File Sharing"
|
| echo " 2. Add /Users/$CURRENT_USER to shared directories"
|
| echo " 3. Restart Docker"
|
| exit 1
|
| fi
|
|
|
| echo ""
|
| echo "=================================="
|
| echo "Setup Complete!"
|
| echo "=================================="
|
| echo ""
|
| echo "To start Atom with host mount:"
|
| echo ""
|
| echo " docker-compose -f docker-compose.yml -f docker-compose.host-mount.yml up"
|
| echo ""
|
| echo "To verify mount is active:"
|
| echo ""
|
| echo " docker exec \$(docker ps -q -f 'name=atom') ls /host/projects"
|
| echo ""
|
| echo "To disable host mount:"
|
| echo ""
|
| echo " docker-compose -f docker-compose.yml up # (omit host-mount file)"
|
| echo ""
|
|
|