[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MPZ914XF5BADK7JXNEHWR9":3,"skill-same:01M6MPZ914XF5BADK7JXNEHWR9":58},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":21,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M6MPZ914XF5BADK7JXNEHWR9","arcane-docker-manager",null,"Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FAPIs与集成\u002Farcane-docker-manager\u002FSKILL.md",[16],{"categoryNo":17,"categoryName":18,"taxonomyType":19,"taxonomyTypeDesc":20},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[22,23,24,25],"docker","docker manager","arcane docker manager","manager","2026-11-10 10:12:30",false,"# OpenClaw - Arcane Docker Management Skill\n\n## Overview\nThis skill enables you to interact with your Arcane Docker Management API to manage Docker containers, compose stacks, templates, networks, volumes, images, and system monitoring. Arcane is a comprehensive Docker management platform with a REST API.\n\n## When to Use This Skill\nUse this skill when the user requests any of the following:\n- Managing Docker containers (list, start, stop, restart, remove, inspect)\n- Managing Docker Compose stacks (deploy, update, remove, view logs)\n- Working with Docker templates (create, deploy, manage)\n- Managing Docker images (list, pull, remove, prune)\n- Managing Docker networks and volumes\n- Monitoring system resources and Docker statistics\n- Managing user accounts and API keys\n- Viewing system logs and events\n\n## API Configuration\n\n### Base URL\nThe API base URL should be configured by the user. Default: `http:\u002F\u002Flocalhost:3552\u002Fapi`\n\n### Authentication\nArcane supports two authentication methods:\n\n1. **Bearer Token (JWT)**: Obtained via login endpoint\n2. **API Key**: Long-lived authentication using `X-API-Key` header\n\n#### Getting a Bearer Token\n```bash\ncurl -X POST \"$BASE_URL\u002Fauth\u002Flogin\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"username\": \"admin\",\n    \"password\": \"your_password\"\n  }'\n```\n\nResponse includes `token`, `refreshToken`, and `expiresAt`.\n\n#### Using API Keys\nAPI keys can be created and managed through the `\u002Fapikeys` endpoints. Use the `X-API-Key` header for authentication.\n\n## Core Functionality\n\n### 1. Container Management\n\n#### List Containers\n```bash\n# Get all containers\ncurl -X GET \"$BASE_URL\u002Fcontainers\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Filter by status\ncurl -X GET \"$BASE_URL\u002Fcontainers?status=running\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Search containers\ncurl -X GET \"$BASE_URL\u002Fcontainers?search=nginx\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Container Operations\n```bash\n# Start container\ncurl -X POST \"$BASE_URL\u002Fcontainers\u002F{id}\u002Fstart\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Stop container\ncurl -X POST \"$BASE_URL\u002Fcontainers\u002F{id}\u002Fstop\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Restart container\ncurl -X POST \"$BASE_URL\u002Fcontainers\u002F{id}\u002Frestart\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Remove container\ncurl -X DELETE \"$BASE_URL\u002Fcontainers\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get container details\ncurl -X GET \"$BASE_URL\u002Fcontainers\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get container logs\ncurl -X GET \"$BASE_URL\u002Fcontainers\u002F{id}\u002Flogs?tail=100\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get container stats\ncurl -X GET \"$BASE_URL\u002Fcontainers\u002F{id}\u002Fstats\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Advanced Container Operations\n```bash\n# Execute command in container\ncurl -X POST \"$BASE_URL\u002Fcontainers\u002F{id}\u002Fexec\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"command\": [\"ls\", \"-la\"],\n    \"workingDir\": \"\u002Fapp\"\n  }'\n\n# Rename container\ncurl -X POST \"$BASE_URL\u002Fcontainers\u002F{id}\u002Frename\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"new-container-name\"\n  }'\n\n# Update container resources\ncurl -X POST \"$BASE_URL\u002Fcontainers\u002F{id}\u002Fupdate\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"cpuShares\": 512,\n    \"memory\": 536870912,\n    \"restartPolicy\": \"unless-stopped\"\n  }'\n```\n\n### 2. Docker Compose Stack Management\n\n#### List Stacks\n```bash\ncurl -X GET \"$BASE_URL\u002Fstacks\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Deploy Stack from Template\n```bash\ncurl -X POST \"$BASE_URL\u002Fstacks\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"my-stack\",\n    \"templateId\": \"template-id\",\n    \"envVars\": {\n      \"PORT\": \"8080\",\n      \"DATABASE_URL\": \"postgres:\u002F\u002F...\"\n    }\n  }'\n```\n\n#### Deploy Stack from Compose File\n```bash\ncurl -X POST \"$BASE_URL\u002Fstacks\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"my-stack\",\n    \"composeContent\": \"version: \\\"3.8\\\"\\nservices:\\n  web:\\n    image: nginx:latest\\n    ports:\\n      - \\\"80:80\\\"\"\n  }'\n```\n\n#### Stack Operations\n```bash\n# Get stack details\ncurl -X GET \"$BASE_URL\u002Fstacks\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update stack\ncurl -X PUT \"$BASE_URL\u002Fstacks\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"envVars\": {\n      \"PORT\": \"9090\"\n    }\n  }'\n\n# Remove stack\ncurl -X DELETE \"$BASE_URL\u002Fstacks\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Start stack\ncurl -X POST \"$BASE_URL\u002Fstacks\u002F{id}\u002Fstart\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Stop stack\ncurl -X POST \"$BASE_URL\u002Fstacks\u002F{id}\u002Fstop\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Restart stack\ncurl -X POST \"$BASE_URL\u002Fstacks\u002F{id}\u002Frestart\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get stack logs\ncurl -X GET \"$BASE_URL\u002Fstacks\u002F{id}\u002Flogs?tail=100\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Pull latest images for stack\ncurl -X POST \"$BASE_URL\u002Fstacks\u002F{id}\u002Fpull\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### 3. Template Management\n\n#### List Templates\n```bash\ncurl -X GET \"$BASE_URL\u002Ftemplates\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Create Template\n```bash\ncurl -X POST \"$BASE_URL\u002Ftemplates\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"nginx-template\",\n    \"description\": \"Basic nginx web server\",\n    \"content\": \"version: \\\"3.8\\\"\\nservices:\\n  web:\\n    image: nginx:{{VERSION}}\\n    ports:\\n      - \\\"{{PORT}}:80\\\"\",\n    \"variables\": [\n      {\n        \"name\": \"VERSION\",\n        \"description\": \"Nginx version\",\n        \"defaultValue\": \"latest\"\n      },\n      {\n        \"name\": \"PORT\",\n        \"description\": \"Host port\",\n        \"defaultValue\": \"80\"\n      }\n    ],\n    \"category\": \"web-servers\",\n    \"tags\": [\"nginx\", \"web\"]\n  }'\n```\n\n#### Template Operations\n```bash\n# Get template\ncurl -X GET \"$BASE_URL\u002Ftemplates\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update template\ncurl -X PUT \"$BASE_URL\u002Ftemplates\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"updated-template-name\",\n    \"description\": \"Updated description\"\n  }'\n\n# Delete template\ncurl -X DELETE \"$BASE_URL\u002Ftemplates\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get template content with parsed variables\ncurl -X GET \"$BASE_URL\u002Ftemplates\u002F{id}\u002Fcontent\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Global Template Variables\n```bash\n# Get global variables\ncurl -X GET \"$BASE_URL\u002Ftemplates\u002Fglobal-variables\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update global variables\ncurl -X PUT \"$BASE_URL\u002Ftemplates\u002Fglobal-variables\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"GLOBAL_DOMAIN\": \"example.com\",\n    \"GLOBAL_NETWORK\": \"traefik-public\"\n  }'\n```\n\n### 4. Image Management\n\n#### List Images\n```bash\ncurl -X GET \"$BASE_URL\u002Fimages\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Pull Image\n```bash\ncurl -X POST \"$BASE_URL\u002Fimages\u002Fpull\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"image\": \"nginx:latest\"\n  }'\n```\n\n#### Image Operations\n```bash\n# Get image details\ncurl -X GET \"$BASE_URL\u002Fimages\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Remove image\ncurl -X DELETE \"$BASE_URL\u002Fimages\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Prune unused images\ncurl -X POST \"$BASE_URL\u002Fimages\u002Fprune\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Search images in registry\ncurl -X GET \"$BASE_URL\u002Fimages\u002Fsearch?term=nginx\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### 5. Network Management\n\n#### List Networks\n```bash\ncurl -X GET \"$BASE_URL\u002Fnetworks\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Create Network\n```bash\ncurl -X POST \"$BASE_URL\u002Fnetworks\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"my-network\",\n    \"driver\": \"bridge\",\n    \"internal\": false,\n    \"attachable\": true\n  }'\n```\n\n#### Network Operations\n```bash\n# Get network details\ncurl -X GET \"$BASE_URL\u002Fnetworks\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Remove network\ncurl -X DELETE \"$BASE_URL\u002Fnetworks\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Connect container to network\ncurl -X POST \"$BASE_URL\u002Fnetworks\u002F{id}\u002Fconnect\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"containerId\": \"container-id\"\n  }'\n\n# Disconnect container from network\ncurl -X POST \"$BASE_URL\u002Fnetworks\u002F{id}\u002Fdisconnect\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"containerId\": \"container-id\"\n  }'\n\n# Prune unused networks\ncurl -X POST \"$BASE_URL\u002Fnetworks\u002Fprune\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### 6. Volume Management\n\n#### List Volumes\n```bash\ncurl -X GET \"$BASE_URL\u002Fvolumes\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Create Volume\n```bash\ncurl -X POST \"$BASE_URL\u002Fvolumes\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"my-volume\",\n    \"driver\": \"local\",\n    \"labels\": {\n      \"project\": \"my-app\"\n    }\n  }'\n```\n\n#### Volume Operations\n```bash\n# Get volume details\ncurl -X GET \"$BASE_URL\u002Fvolumes\u002F{name}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Remove volume\ncurl -X DELETE \"$BASE_URL\u002Fvolumes\u002F{name}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Prune unused volumes\ncurl -X POST \"$BASE_URL\u002Fvolumes\u002Fprune\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### 7. System Monitoring\n\n#### System Information\n```bash\n# Get Docker system info\ncurl -X GET \"$BASE_URL\u002Fsystem\u002Finfo\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get Docker version\ncurl -X GET \"$BASE_URL\u002Fsystem\u002Fversion\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get system stats\ncurl -X GET \"$BASE_URL\u002Fsystem\u002Fstats\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get disk usage\ncurl -X GET \"$BASE_URL\u002Fsystem\u002Fdf\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Events and Logs\n```bash\n# Get system events (streaming)\ncurl -X GET \"$BASE_URL\u002Fsystem\u002Fevents\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get events with filters\ncurl -X GET \"$BASE_URL\u002Fsystem\u002Fevents?since=1609459200&type=container\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### 8. User Management\n\n#### List Users\n```bash\ncurl -X GET \"$BASE_URL\u002Fusers\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Create User\n```bash\ncurl -X POST \"$BASE_URL\u002Fusers\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"username\": \"newuser\",\n    \"email\": \"user@example.com\",\n    \"password\": \"securepassword123\",\n    \"role\": \"user\"\n  }'\n```\n\n#### User Operations\n```bash\n# Get user details\ncurl -X GET \"$BASE_URL\u002Fusers\u002F{userId}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update user\ncurl -X PUT \"$BASE_URL\u002Fusers\u002F{userId}\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"email\": \"newemail@example.com\",\n    \"role\": \"admin\"\n  }'\n\n# Delete user\ncurl -X DELETE \"$BASE_URL\u002Fusers\u002F{userId}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Change password\ncurl -X PUT \"$BASE_URL\u002Fauth\u002Fpassword\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"currentPassword\": \"oldpassword\",\n    \"newPassword\": \"newpassword123\"\n  }'\n```\n\n### 9. API Key Management\n\n#### List API Keys\n```bash\ncurl -X GET \"$BASE_URL\u002Fapikeys\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n#### Create API Key\n```bash\ncurl -X POST \"$BASE_URL\u002Fapikeys\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"CI\u002FCD Pipeline Key\",\n    \"description\": \"API key for automated deployments\",\n    \"expiresAt\": \"2025-12-31T23:59:59Z\"\n  }'\n```\n\n#### API Key Operations\n```bash\n# Get API key details\ncurl -X GET \"$BASE_URL\u002Fapikeys\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update API key\ncurl -X PUT \"$BASE_URL\u002Fapikeys\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"Updated Key Name\",\n    \"description\": \"Updated description\"\n  }'\n\n# Delete API key\ncurl -X DELETE \"$BASE_URL\u002Fapikeys\u002F{id}\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n## Implementation Guidelines\n\n### Error Handling\nAll API responses follow a standard format:\n```json\n{\n  \"success\": true|false,\n  \"data\": {...},\n  \"message\": \"Success or error message\"\n}\n```\n\nError responses use HTTP problem details (RFC 7807):\n```json\n{\n  \"type\": \"about:blank\",\n  \"title\": \"Error title\",\n  \"status\": 400,\n  \"detail\": \"Detailed error message\"\n}\n```\n\n### Pagination\nList endpoints support pagination with these query parameters:\n- `start`: Starting index (default: 0)\n- `limit`: Items per page (default: 20)\n- `sort`: Column to sort by\n- `order`: Sort direction (asc\u002Fdesc, default: asc)\n- `search`: Search query\n\nResponse includes pagination metadata:\n```json\n{\n  \"success\": true,\n  \"data\": [...],\n  \"pagination\": {\n    \"start\": 0,\n    \"limit\": 20,\n    \"total\": 100,\n    \"hasMore\": true\n  }\n}\n```\n\n### Using Python\nWhen implementing Arcane operations in Python, use the `requests` library:\n\n```python\nimport requests\n\nBASE_URL = \"http:\u002F\u002Flocalhost:3552\u002Fapi\"\nTOKEN = \"your-jwt-token\"\n\nheaders = {\n    \"Authorization\": f\"Bearer {TOKEN}\",\n    \"Content-Type\": \"application\u002Fjson\"\n}\n\n# List containers\nresponse = requests.get(f\"{BASE_URL}\u002Fcontainers\", headers=headers)\ncontainers = response.json()\n\n# Deploy stack\nstack_data = {\n    \"name\": \"my-stack\",\n    \"templateId\": \"template-id\",\n    \"envVars\": {\n        \"PORT\": \"8080\"\n    }\n}\nresponse = requests.post(f\"{BASE_URL}\u002Fstacks\", headers=headers, json=stack_data)\nresult = response.json()\n```\n\n### Using Bash\nFor simple operations, use curl with error handling:\n\n```bash\n#!\u002Fbin\u002Fbash\n\nBASE_URL=\"http:\u002F\u002Flocalhost:3552\u002Fapi\"\nTOKEN=\"your-jwt-token\"\n\n# Function to make authenticated requests\napi_call() {\n    local method=$1\n    local endpoint=$2\n    local data=$3\n    \n    if [ -z \"$data\" ]; then\n        curl -s -X \"$method\" \"$BASE_URL\u002F$endpoint\" \\\n            -H \"Authorization: Bearer $TOKEN\"\n    else\n        curl -s -X \"$method\" \"$BASE_URL\u002F$endpoint\" \\\n            -H \"Authorization: Bearer $TOKEN\" \\\n            -H \"Content-Type: application\u002Fjson\" \\\n            -d \"$data\"\n    fi\n}\n\n# Example: List containers\ncontainers=$(api_call GET \"containers\")\necho \"$containers\" | jq '.data[] | {id, name, status}'\n```\n\n## Common Workflows\n\n### 1. Deploy Application Stack\n```python\n# 1. Create or select template\ntemplate_data = {\n    \"name\": \"webapp-template\",\n    \"content\": \"version: '3.8'\\nservices:\\n  web:\\n    image: myapp:{{VERSION}}\\n    ports:\\n      - '{{PORT}}:8080'\",\n    \"variables\": [\n        {\"name\": \"VERSION\", \"defaultValue\": \"latest\"},\n        {\"name\": \"PORT\", \"defaultValue\": \"80\"}\n    ]\n}\ntemplate = requests.post(f\"{BASE_URL}\u002Ftemplates\", headers=headers, json=template_data).json()\n\n# 2. Deploy stack from template\nstack_data = {\n    \"name\": \"production-webapp\",\n    \"templateId\": template[\"data\"][\"id\"],\n    \"envVars\": {\n        \"VERSION\": \"v1.2.3\",\n        \"PORT\": \"8080\"\n    }\n}\nstack = requests.post(f\"{BASE_URL}\u002Fstacks\", headers=headers, json=stack_data).json()\n\n# 3. Monitor deployment\nstack_id = stack[\"data\"][\"id\"]\nlogs = requests.get(f\"{BASE_URL}\u002Fstacks\u002F{stack_id}\u002Flogs?tail=50\", headers=headers).json()\n```\n\n### 2. Scale and Monitor Containers\n```python\n# Get running containers\ncontainers = requests.get(f\"{BASE_URL}\u002Fcontainers?status=running\", headers=headers).json()\n\n# Get stats for each container\nfor container in containers[\"data\"]:\n    stats = requests.get(f\"{BASE_URL}\u002Fcontainers\u002F{container['id']}\u002Fstats\", headers=headers).json()\n    print(f\"{container['name']}: CPU {stats['data']['cpuPercent']:.2f}%, Memory {stats['data']['memoryPercent']:.2f}%\")\n\n# Update container resources if needed\nupdate_data = {\n    \"cpuShares\": 1024,\n    \"memory\": 1073741824  # 1GB\n}\nrequests.post(f\"{BASE_URL}\u002Fcontainers\u002F{container_id}\u002Fupdate\", headers=headers, json=update_data)\n```\n\n### 3. Cleanup and Maintenance\n```python\n# Prune unused resources\nrequests.post(f\"{BASE_URL}\u002Fimages\u002Fprune\", headers=headers)\nrequests.post(f\"{BASE_URL}\u002Fvolumes\u002Fprune\", headers=headers)\nrequests.post(f\"{BASE_URL}\u002Fnetworks\u002Fprune\", headers=headers)\n\n# Get disk usage before and after\ndf_before = requests.get(f\"{BASE_URL}\u002Fsystem\u002Fdf\", headers=headers).json()\n# ... perform cleanup ...\ndf_after = requests.get(f\"{BASE_URL}\u002Fsystem\u002Fdf\", headers=headers).json()\n```\n\n## Best Practices\n\n1. **Authentication**: Always use API keys for automated scripts and services. Use JWT tokens for interactive sessions.\n\n2. **Error Handling**: Check response status codes and handle errors appropriately:\n   - 200: Success\n   - 400: Bad request (validation error)\n   - 401: Unauthorized\n   - 403: Forbidden\n   - 404: Not found\n   - 500: Internal server error\n\n3. **Resource Management**: \n   - Always specify resource limits when creating containers\n   - Use labels to organize resources\n   - Regularly prune unused resources\n\n4. **Security**:\n   - Store API keys and tokens securely (use environment variables)\n   - Use HTTPS in production\n   - Implement proper access controls with user roles\n   - Rotate API keys regularly\n\n5. **Monitoring**:\n   - Monitor container stats regularly\n   - Set up alerts for resource usage\n   - Review system logs periodically\n\n6. **Templates**:\n   - Use variables for configurable values\n   - Document template variables clearly\n   - Version control your templates\n   - Use global variables for shared configuration\n\n## Troubleshooting\n\n### Common Issues\n\n**Authentication Failed**\n- Verify token is not expired (check `expiresAt`)\n- Use refresh token to get new access token\n- Verify API key is correct and not expired\n\n**Container Won't Start**\n- Check container logs: `GET \u002Fcontainers\u002F{id}\u002Flogs`\n- Inspect container: `GET \u002Fcontainers\u002F{id}`\n- Verify port conflicts and resource availability\n\n**Stack Deployment Failed**\n- Validate compose file syntax\n- Check template variables are properly defined\n- Review stack logs: `GET \u002Fstacks\u002F{id}\u002Flogs`\n\n**Resource Not Found**\n- Verify resource ID is correct\n- Check if resource was deleted\n- Ensure proper permissions\n\n## Notes\n\n- All timestamps are in ISO 8601 format (UTC)\n- Container IDs can be full or short (first 12 characters)\n- Image names support full registry paths (registry.example.com\u002Fimage:tag)\n- Network and volume names must be unique\n- Stack names must be unique per user\u002Fproject\n\n## Reference Links\n\nFor complete API documentation and schema definitions, refer to the OpenAPI specification provided in the JSON schema.",{},"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","APIs与集成\u002Farcane-docker-manager",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":7,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill arcane-docker-manager",{"tool":44,"command":45},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill arcane-docker-manager",{"tool":47,"command":48},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill arcane-docker-manager","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FAPIs与集成\u002Farcane-docker-manager\u002FSKILL.md",true,[52],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"_meta.json","REFERENCE","参考文档",295,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002FAPIs与集成\u002Farcane-docker-manager\u002F_meta.json",[59,83,117,128,138,168],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":26},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[61,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],"safe","ethereum","defi","Optimization","user","use","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":99,"publishedAt":26},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[88,91,94],{"categoryNo":89,"categoryName":90,"taxonomyType":19,"taxonomyTypeDesc":20},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":92,"categoryName":93,"taxonomyType":19,"taxonomyTypeDesc":20},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[100,101,102,103,104,105,106,68,107,72,108,109,110,111,112,113,114,115,116],"api","zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":118,"name":119,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":125,"publishedAt":26},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[122,123,124],{"categoryNo":89,"categoryName":90,"taxonomyType":19,"taxonomyTypeDesc":20},{"categoryNo":92,"categoryName":93,"taxonomyType":19,"taxonomyTypeDesc":20},{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},[100,126,127,101,102,103,104,105,106,68,107,72,109,110,111,112,113,114,115,116],"api skill","zerion api skill",{"skillNo":129,"name":130,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":136,"publishedAt":26},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[133,134,135],{"categoryNo":89,"categoryName":90,"taxonomyType":19,"taxonomyTypeDesc":20},{"categoryNo":92,"categoryName":93,"taxonomyType":19,"taxonomyTypeDesc":20},{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},[103,100,137,101,102,104,105,68,107,72,108,109,110,111,112,113,114,115,116],"zerion api mcp",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":147,"publishedAt":26},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[144],{"categoryNo":145,"categoryName":146,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000040","财务",[148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data","for",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":26},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[174],{"categoryNo":145,"categoryName":146,"taxonomyType":97,"taxonomyTypeDesc":98},[148,149,151,176,177,178,179,180,181,159,182,183,184,185,186,187,188,189,116,166],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]