google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
cloudflare-tunnel-setup
Sets up a new Cloudflare Tunnel from scratch for secure remote access to home network services. Use when creating a new tunnel, replacing an expired tunnel token, or setting up remote access for a fresh installation. Triggers on "setup cloudflare tunnel", "create tunnel", "new tunnel token", "con...
Full skill instructions
Interactive guide for setting up a new Cloudflare Tunnel from scratch.
Run this skill when you need to:
Minimum requirements: Cloudflare account, domain on Cloudflare, Docker installed.
Explicit Triggers:
Implicit Triggers:
Debugging Triggers:
Step 1: Verify .env file exists
ls -la /home/dawiddutoit/projects/network/.env
If missing, create from example:
cp /home/dawiddutoit/projects/network/.env.example /home/dawiddutoit/projects/network/.env
Step 2: Check if CLOUDFLARE_TUNNEL_TOKEN exists
grep -E "^CLOUDFLARE_TUNNEL_TOKEN" /home/dawiddutoit/projects/network/.env
Possible outcomes:
Step 3: Verify docker-compose has cloudflared service
grep -A 10 "cloudflared:" /home/dawiddutoit/projects/network/docker-compose.yml
If cloudflared service is missing, it needs to be added. See references/reference.md for service definition.
Provide these instructions to the user:
--token)Token format: Base64-encoded JSON containing Account ID, Tunnel ID, and Secret.
Step 1: Check current token status
grep "CLOUDFLARE_TUNNEL_TOKEN" /home/dawiddutoit/projects/network/.env
Step 2: Add or update token
If line exists, update it. If not, add it.
# If line exists, use sed to replace
# If not, append to file
# The token should look like:
# CLOUDFLARE_TUNNEL_TOKEN=eyJhIjoiYWJjZDEyMzQ...
Use the Edit tool to update .env:
CLOUDFLARE_TUNNEL_TOKEN= lineValidate token format:
# Token should be base64 decodable
TUNNEL_TOKEN=$(grep "CLOUDFLARE_TUNNEL_TOKEN=" /home/dawiddutoit/projects/network/.env | cut -d'=' -f2)
echo "$TUNNEL_TOKEN" | base64 -d 2>/dev/null | python3 -c "import sys, json; d=json.load(sys.stdin); print('Valid token for account:', d.get('a', 'unknown'))"
Step 1: Restart the container
cd /home/dawiddutoit/projects/network && docker compose restart cloudflared
Or if container doesn't exist yet:
cd /home/dawiddutoit/projects/network && docker compose up -d cloudflared
Step 2: Check container is running
docker ps | grep cloudflared
Expected output:
CONTAINER ID IMAGE STATUS NAMES
abc123... cloudflare/cloudflared:latest Up X seconds cloudflared
Step 3: Check logs for successful connection
docker logs cloudflared --tail 30
Look for these success indicators:
INF Registered tunnel connection connIndex=0 location=...
INF Registered tunnel connection connIndex=1 location=...
INF Registered tunnel connection connIndex=2 location=...
INF Registered tunnel connection connIndex=3 location=...
4 registered connections = healthy tunnel (2 connections per Cloudflare edge location)
If errors appear:
token is invalid: Token was copied incorrectly or expiredalready registered: Another instance using same token (stop other instances)network error: Check internet connectivityAfter tunnel is connected, configure services in Cloudflare dashboard:
Example hostnames:
| Service | Subdomain | URL |
|---|---|---|
| Pi-hole | pihole | pihole:80 |
| Webhook | webhook | webhook:9000 |
| Jaeger | jaeger | 192.168.68.135:16686 |
URL patterns:
container:port (e.g., pihole:80)host-ip:port (e.g., 192.168.68.135:16686)device-ip:port (e.g., 192.168.68.105:80)Important: Use HTTP (not HTTPS) for backends. Do NOT use host.docker.internal on Linux.
Step 1: Verify tunnel is registered
docker logs cloudflared 2>&1 | grep -E "Registered tunnel|connIndex"
Expected: 4 "Registered tunnel connection" messages
Step 2: Check tunnel status in dashboard
Go to: https://one.dash.cloudflare.com
Navigate to: Access -> Tunnels
Status should show: "HEALTHY" with green indicator
Step 3: Test external access (from mobile data or external network)
# From a device NOT on home network:
curl -I https://pihole.temet.ai
# Expected: HTTP 302 (redirect to Cloudflare Access) or HTTP 200 (if no auth)
Step 4: Run diagnostic script (optional)
./scripts/cf-tunnel-config.sh show
| File | Purpose |
|---|---|
references/reference.md | Docker-compose service definition, token format details |
examples/examples.md | Example configurations for common setups |
Success:
Partial Success:
Failure Indicators:
Environment:
.env file in project rootAccounts/Access:
Tools needed:
host.docker.internal on Linux hosts./scripts/cf-tunnel-config.sh configure to update ingress via APIconfigure-google-oauth skill after tunnel setuptroubleshoot-tunnel-connectivity skill handles issues with running tunnelsProject 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.