google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
cloudflare-tunnel-troubleshoot
Diagnoses and fixes Cloudflare Tunnel connectivity issues including stuck tunnels, failed connections, Error 1033, and tunnel registration problems. Use when remote access not working, tunnel shows disconnected in dashboard, Error 1033 on tunnel connection, or cloudflared container restarting. Tr...
Full skill instructions
Systematic diagnosis and resolution of Cloudflare Tunnel connectivity issues that prevent remote access to services.
Quick diagnostic for tunnel issues:
# Check cloudflared container status
docker ps | grep cloudflared
# Check recent tunnel registrations (should be within 10 minutes)
docker logs cloudflared --tail 100 | grep "Registered tunnel"
# Check for errors
docker logs cloudflared --tail 50 | grep -i error
# Restart if stuck
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml restart cloudflared
Explicit Triggers:
Implicit Triggers:
Debugging Triggers:
docker ps | grep cloudflared
Expected: Container status "Up" with uptime > 1 minute
Check container health:
docker inspect cloudflared --format='{{.State.Status}}: {{.State.Health.Status}}'
If not running or unhealthy:
# Check why it stopped
docker logs cloudflared --tail 100
# Restart
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml up -d cloudflared
If in restart loop:
Check token is set in environment:
docker exec cloudflared env | grep TUNNEL_TOKEN
Expected: Shows long base64-encoded token
If empty or missing:
grep CLOUDFLARE_TUNNEL_TOKEN /home/dawiddutoit/projects/network/.env
grep -A5 "cloudflared:" /home/dawiddutoit/projects/network/docker-compose.yml | grep TUNNEL_TOKEN
Get new token from Cloudflare dashboard:
Update .env and recreate container:
# Edit .env with new token
nano /home/dawiddutoit/projects/network/.env
# Recreate container
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml up -d --force-recreate cloudflared
Healthy tunnel registers connections every few minutes:
# Check recent registrations (last 100 lines)
docker logs cloudflared --tail 100 | grep "Registered tunnel"
# Check timestamp of most recent registration
docker logs cloudflared --tail 100 | grep "Registered tunnel" | tail -1
Expected: Registration within last 10 minutes
If no recent registrations (older than 10 minutes):
Check QUIC connection health:
docker logs cloudflared --tail 100 | grep -i quic
Search for common error patterns:
# Check for Error 1033 (tunnel disconnected)
docker logs cloudflared --tail 100 | grep "1033"
# Check for general errors
docker logs cloudflared --tail 100 | grep -i error
# Check for authentication issues
docker logs cloudflared --tail 100 | grep -i "auth\|unauthorized\|forbidden"
# Check for network issues
docker logs cloudflared --tail 100 | grep -i "connect\|timeout\|dial"
Common error patterns:
| Error | Meaning | Fix |
|---|---|---|
| Error 1033 | Tunnel disconnected/stuck | Restart cloudflared container |
context deadline exceeded | Network timeout | Check internet connectivity |
unauthorized | Invalid tunnel token | Get new token from dashboard |
failed to connect to edge | Can't reach Cloudflare | Check firewall/network |
no such host | DNS resolution failure | Check DNS settings |
Check tunnel status in Cloudflare Zero Trust:
Expected status: "Healthy" with green indicator
If "Down" or "Unhealthy":
Check tunnel routes:
Test accessing a service from internet (not local WiFi):
From mobile (using cellular data, not WiFi):
https://pihole.temet.ai
Expected: Cloudflare Access login page appears (or service if already authenticated)
Alternatively, use external proxy:
# Test from external service
curl -I --connect-timeout 10 https://pihole.temet.ai
If connection fails:
Fix A: Stuck Tunnel (most common)
Restart cloudflared container:
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml restart cloudflared
Wait 30 seconds, then verify:
docker logs cloudflared --tail 20 | grep "Registered tunnel"
Expected: Fresh registrations appearing
Fix B: Invalid Token
Get new token and recreate container:
# 1. Get new token from dashboard:
# https://one.dash.cloudflare.com → Access → Tunnels → Configure
# 2. Update .env
nano /home/dawiddutoit/projects/network/.env
# Add: CLOUDFLARE_TUNNEL_TOKEN="new-token-here"
# 3. Recreate container
docker compose -f /home/dawiddutoit/projects/network/docker-compose.yml up -d --force-recreate cloudflared
# 4. Verify
docker logs cloudflared --tail 20
Fix C: Network Connectivity Issue
Check internet connectivity:
# Test connectivity to Cloudflare
docker exec cloudflared ping -c 3 1.1.1.1
# Test DNS resolution
docker exec cloudflared nslookup cloudflare.com
# Check container network
docker network inspect network_default
If network issues found, may need to recreate Docker network (see Docker network troubleshooting).
Fix D: Complete Tunnel Reset
If all else fails, full reset:
# Stop all services
cd /home/dawiddutoit/projects/network && \
docker compose down
# Recreate network
docker network rm network_default
docker network create network_default
# Start services
docker compose up -d
# Monitor tunnel connection
docker logs cloudflared -f
Watch for "Registered tunnel" messages appearing.
| File | Purpose |
|---|---|
references/reference.md | Cloudflare Tunnel architecture, Error 1033 details, QUIC protocol |
examples/examples.md | Example log outputs, common scenarios |
Success:
Partial Success:
Failure Indicators:
infrastructure-health-check skill for comprehensive diagnosticsProject scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.