[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PB3D750DP6FDYCHZD14MVG":3,"skill-same:01M6PB3D750DP6FDYCHZD14MVG":71},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":21,"commitSha":52,"skillDirectory":53,"forksCount":13,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M6PB3D750DP6FDYCHZD14MVG","ollama-stack",null,"Run local LLM workloads with Ollama, Open WebUI, and GPU-aware tuning for private development environments.","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Follama-stack\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"ollama stack","stack","ollama","main","environments","relevant","scripts","critical","os","local","local llm","open webui","security","community","only","access","open","devops-security","tuning","run","2026-11-10 10:12:30",false,"---\nname: ollama-stack\ndescription: Run local LLM workloads with Ollama, Open WebUI, and GPU-aware tuning\n  for private development environments.\ncategory: devops\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\nsource_repo: BagelHole\u002FDevOps-Security-Agent-Skills\nsource_type: community\ndate_added: '2026-09-20'\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\u002Fblob\u002Fmain\u002FLICENSE\ncompatibility: Requires the relevant OS\u002Fplatform tooling and privileged access where\n  noted. Docs-only; helper scripts and templates not bundled.\nmetadata:\n  author: devops-skills\n  version: '1.0'\n---\n\n# Ollama Stack\n\nDeploy a local LLM stack for offline and privacy-first workflows.\n\n## When to Use This Skill\n\nUse this skill when:\n- Setting up private\u002Flocal LLM inference for development\n- Building air-gapped AI environments\n- Running models on personal hardware (Mac, Linux, Windows with GPU)\n- Creating team-shared inference endpoints\n- Prototyping before committing to cloud LLM APIs\n\n## Prerequisites\n\n- 8 GB+ RAM (16 GB+ recommended for 7B+ models)\n- For GPU acceleration: NVIDIA GPU with 6 GB+ VRAM, or Apple Silicon Mac\n- Docker (for containerized deployment)\n- 20 GB+ disk for model storage\n\n## Quick Start\n\n```bash\n# Install Ollama\ncurl -fsSL https:\u002F\u002Follama.com\u002Finstall.sh -o \u002Ftmp\u002Finstall-ollama.sh && sh \u002Ftmp\u002Finstall-ollama.sh && rm \u002Ftmp\u002Finstall-ollama.sh\n\n# Start the server\nollama serve\n\n# Pull and run a model\nollama pull llama3.1:8b\nollama run llama3.1:8b \"Explain Kubernetes pods in one paragraph\"\n\n# List available models\nollama list\n\n# Pull specific quantization\nollama pull llama3.1:8b-instruct-q4_K_M\n```\n\n## Model Selection Guide\n\n| Model | Size | VRAM | Best For |\n|-------|------|------|----------|\n| `llama3.1:8b` | 4.7 GB | 6 GB | General chat, coding |\n| `llama3.1:70b` | 40 GB | 48 GB | Complex reasoning |\n| `codellama:13b` | 7.4 GB | 10 GB | Code generation |\n| `mistral:7b` | 4.1 GB | 6 GB | Fast general tasks |\n| `mixtral:8x7b` | 26 GB | 32 GB | High-quality MoE |\n| `nomic-embed-text` | 274 MB | 1 GB | Embeddings for RAG |\n| `llava:13b` | 8 GB | 10 GB | Vision + text |\n| `deepseek-coder-v2:16b` | 9 GB | 12 GB | Code generation |\n| `qwen2.5:14b` | 9 GB | 12 GB | Multilingual, reasoning |\n\n## Docker Compose — Full Stack\n\n```yaml\n# docker-compose.yml\nservices:\n  ollama:\n    image: ollama\u002Follama:latest\n    container_name: ollama\n    restart: unless-stopped\n    ports:\n      - \"11434:11434\"\n    volumes:\n      - ollama_data:\u002Froot\u002F.ollama\n    environment:\n      - OLLAMA_HOST=0.0.0.0\n      - OLLAMA_NUM_PARALLEL=4\n      - OLLAMA_MAX_LOADED_MODELS=2\n      - OLLAMA_FLASH_ATTENTION=1\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: all\n              capabilities: [gpu]\n    healthcheck:\n      test: [\"CMD\", \"curl\", \"-f\", \"http:\u002F\u002Flocalhost:11434\u002Fapi\u002Ftags\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n\n  open-webui:\n    image: ghcr.io\u002Fopen-webui\u002Fopen-webui:main\n    container_name: open-webui\n    restart: unless-stopped\n    ports:\n      - \"3000:8080\"\n    volumes:\n      - webui_data:\u002Fapp\u002Fbackend\u002Fdata\n    environment:\n      - OLLAMA_BASE_URL=http:\u002F\u002Follama:11434\n      - WEBUI_AUTH=true\n      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:-change-me-in-production}\n      - DEFAULT_MODELS=llama3.1:8b\n    depends_on:\n      ollama:\n        condition: service_healthy\n\n  litellm:\n    image: ghcr.io\u002Fberriai\u002Flitellm:main-latest\n    container_name: litellm\n    restart: unless-stopped\n    ports:\n      - \"4000:4000\"\n    volumes:\n      - .\u002Flitellm-config.yaml:\u002Fapp\u002Fconfig.yaml\n    command: [\"--config\", \"\u002Fapp\u002Fconfig.yaml\"]\n    depends_on:\n      ollama:\n        condition: service_healthy\n\nvolumes:\n  ollama_data:\n  webui_data:\n```\n\n### LiteLLM Proxy Config\n\n```yaml\n# litellm-config.yaml\nmodel_list:\n  - model_name: llama3\n    litellm_params:\n      model: ollama\u002Fllama3.1:8b\n      api_base: http:\u002F\u002Follama:11434\n  - model_name: codellama\n    litellm_params:\n      model: ollama\u002Fcodellama:13b\n      api_base: http:\u002F\u002Follama:11434\n  - model_name: embeddings\n    litellm_params:\n      model: ollama\u002Fnomic-embed-text\n      api_base: http:\u002F\u002Follama:11434\n\ngeneral_settings:\n  master_key: sk-local-dev-key\n  max_budget: 0  # unlimited for local\n```\n\n## API Usage\n\nOllama exposes an OpenAI-compatible API:\n\n```bash\n# Chat completion\ncurl http:\u002F\u002Flocalhost:11434\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"llama3.1:8b\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n    \"stream\": false\n  }'\n\n# Embeddings\ncurl http:\u002F\u002Flocalhost:11434\u002Fv1\u002Fembeddings \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"nomic-embed-text\",\n    \"input\": \"The quick brown fox\"\n  }'\n\n# List models\ncurl http:\u002F\u002Flocalhost:11434\u002Fapi\u002Ftags\n```\n\n### Python Client\n\n```python\n# pip install ollama\nimport ollama\n\n# Chat\nresponse = ollama.chat(\n    model=\"llama3.1:8b\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain Docker in 3 sentences\"}],\n)\nprint(response[\"message\"][\"content\"])\n\n# Streaming\nfor chunk in ollama.chat(\n    model=\"llama3.1:8b\",\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about containers\"}],\n    stream=True,\n):\n    print(chunk[\"message\"][\"content\"], end=\"\", flush=True)\n\n# Embeddings\nresult = ollama.embed(model=\"nomic-embed-text\", input=\"Hello world\")\nprint(f\"Embedding dimensions: {len(result['embeddings'][0])}\")\n```\n\n### OpenAI SDK Compatibility\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(base_url=\"http:\u002F\u002Flocalhost:11434\u002Fv1\", api_key=\"...\" # local endpoint requires no real key)\n\nresponse = client.chat.completions.create(\n    model=\"llama3.1:8b\",\n    messages=[{\"role\": \"user\", \"content\": \"Hello\"}],\n)\nprint(response.choices[0].message.content)\n```\n\n## Custom Modelfiles\n\nCreate specialized models with custom system prompts and parameters:\n\n```dockerfile\n# Modelfile.devops-assistant\nFROM llama3.1:8b\n\nSYSTEM \"\"\"You are a DevOps expert assistant. You provide concise, production-ready\nadvice about infrastructure, CI\u002FCD, containers, and cloud services.\nAlways include relevant commands and config examples.\"\"\"\n\nPARAMETER temperature 0.3\nPARAMETER top_p 0.9\nPARAMETER num_ctx 8192\nPARAMETER repeat_penalty 1.1\n```\n\n```bash\n# Build and use custom model\nollama create devops-assistant -f Modelfile.devops-assistant\nollama run devops-assistant \"Set up a GitHub Actions workflow for Docker builds\"\n```\n\n## GPU Configuration\n\n### NVIDIA\n\n```bash\n# Verify GPU access\nnvidia-smi\nollama run llama3.1:8b --verbose  # Shows GPU layers loaded\n\n# Environment tuning\nexport OLLAMA_NUM_PARALLEL=4          # Concurrent requests\nexport OLLAMA_MAX_LOADED_MODELS=2     # Models in VRAM\nexport OLLAMA_FLASH_ATTENTION=1       # Faster attention\nexport CUDA_VISIBLE_DEVICES=0,1       # Multi-GPU\n```\n\n### Apple Silicon\n\n```bash\n# Metal acceleration is automatic on macOS\n# Verify with:\nollama run llama3.1:8b --verbose\n# Look for: \"metal\" in the output\n\n# Optimize for unified memory\nexport OLLAMA_NUM_PARALLEL=2          # Keep memory headroom\nexport OLLAMA_MAX_LOADED_MODELS=1     # One model at a time on 16GB\n```\n\n## Monitoring\n\n```bash\n# Check running models and memory usage\ncurl http:\u002F\u002Flocalhost:11434\u002Fapi\u002Fps\n\n# Prometheus metrics (if enabled)\ncurl http:\u002F\u002Flocalhost:11434\u002Fmetrics\n\n# Quick health check script\n#!\u002Fbin\u002Fbash\nresponse=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002Flocalhost:11434\u002Fapi\u002Ftags)\nif [ \"$response\" = \"200\" ]; then\n    echo \"Ollama is healthy\"\n    curl -s http:\u002F\u002Flocalhost:11434\u002Fapi\u002Fps | python3 -m json.tool\nelse\n    echo \"Ollama is down (HTTP $response)\"\n    exit 1\nfi\n```\n\n## Systemd Service\n\n```ini\n# \u002Fetc\u002Fsystemd\u002Fsystem\u002Follama.service\n[Unit]\nDescription=Ollama LLM Server\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nExecStart=\u002Fusr\u002Flocal\u002Fbin\u002Follama serve\nUser=ollama\nGroup=ollama\nRestart=always\nRestartSec=3\nEnvironment=\"OLLAMA_HOST=0.0.0.0\"\nEnvironment=\"OLLAMA_NUM_PARALLEL=4\"\nEnvironment=\"OLLAMA_FLASH_ATTENTION=1\"\nLimitNOFILE=65535\n\n[Install]\nWantedBy=default.target\n```\n\n```bash\nsudo useradd -r -s \u002Fbin\u002Ffalse -m -d \u002Fusr\u002Fshare\u002Follama ollama\nsudo systemctl daemon-reload\nsudo systemctl enable --now ollama\nsudo systemctl status ollama\n```\n\n## Security\n\n- Bind to `127.0.0.1` in production (default), use reverse proxy for remote access\n- Set `WEBUI_AUTH=true` on Open WebUI\n- Use nginx with TLS for remote access:\n\n```nginx\nserver {\n    listen 443 ssl;\n    server_name llm.internal.example.com;\n    ssl_certificate \u002Fetc\u002Fssl\u002Fcerts\u002Fllm.pem;\n    ssl_certificate_key \u002Fetc\u002Fssl\u002Fprivate\u002Fllm.key;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:11434;\n        proxy_set_header Host $host;\n        proxy_buffering off;              # Required for streaming\n        proxy_read_timeout 600s;          # Long model responses\n        allow 10.0.0.0\u002F8;\n        deny all;\n    }\n}\n```\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|---------|\n| Model too slow | Use smaller quantization (`q4_K_M`), enable flash attention |\n| Out of memory | Reduce `num_ctx`, use smaller model, set `OLLAMA_MAX_LOADED_MODELS=1` |\n| GPU not detected | Check `nvidia-smi`, reinstall CUDA drivers, verify Docker GPU runtime |\n| Connection refused | Check `OLLAMA_HOST` setting, verify firewall rules |\n| Model download fails | Check disk space, retry with `ollama pull --insecure` for self-signed registries |\n\n## Related Skills\n\n- mac-mini-llm-lab (`mac-mini-llm-lab`) — Apple Silicon optimization\n- docker-compose (`docker-compose`) — Service orchestration\n- vllm-server (`vllm-server`) — High-throughput production inference\n- llm-gateway (`llm-gateway`) — Unified API routing\n\n## Limitations\n\n- Infrastructure commands can disrupt services: confirm target host\u002Fscope and have backups\u002Fsnapshots before mutating state.\n- Docs-only import: upstream scripts and templates not bundled.\n\n","# Ollama Stack\n\nDeploy a local LLM stack for offline and privacy-first workflows.\n\n## When to Use This Skill\n\nUse this skill when:\n- Setting up private\u002Flocal LLM inference for development\n- Building air-gapped AI environments\n- Running models on personal hardware (Mac, Linux, Windows with GPU)\n- Creating team-shared inference endpoints\n- Prototyping before committing to cloud LLM APIs\n\n## Prerequisites\n\n- 8 GB+ RAM (16 GB+ recommended for 7B+ models)\n- For GPU acceleration: NVIDIA GPU with 6 GB+ VRAM, or Apple Silicon Mac\n- Docker (for containerized deployment)\n- 20 GB+ disk for model storage\n\n## Quick Start\n\n```bash\n# Install Ollama\ncurl -fsSL https:\u002F\u002Follama.com\u002Finstall.sh -o \u002Ftmp\u002Finstall-ollama.sh && sh \u002Ftmp\u002Finstall-ollama.sh && rm \u002Ftmp\u002Finstall-ollama.sh\n\n# Start the server\nollama serve\n\n# Pull and run a model\nollama pull llama3.1:8b\nollama run llama3.1:8b \"Explain Kubernetes pods in one paragraph\"\n\n# List available models\nollama list\n\n# Pull specific quantization\nollama pull llama3.1:8b-instruct-q4_K_M\n```\n\n## Model Selection Guide\n\n| Model | Size | VRAM | Best For |\n|-------|------|------|----------|\n| `llama3.1:8b` | 4.7 GB | 6 GB | General chat, coding |\n| `llama3.1:70b` | 40 GB | 48 GB | Complex reasoning |\n| `codellama:13b` | 7.4 GB | 10 GB | Code generation |\n| `mistral:7b` | 4.1 GB | 6 GB | Fast general tasks |\n| `mixtral:8x7b` | 26 GB | 32 GB | High-quality MoE |\n| `nomic-embed-text` | 274 MB | 1 GB | Embeddings for RAG |\n| `llava:13b` | 8 GB | 10 GB | Vision + text |\n| `deepseek-coder-v2:16b` | 9 GB | 12 GB | Code generation |\n| `qwen2.5:14b` | 9 GB | 12 GB | Multilingual, reasoning |\n\n## Docker Compose — Full Stack\n\n```yaml\n# docker-compose.yml\nservices:\n  ollama:\n    image: ollama\u002Follama:latest\n    container_name: ollama\n    restart: unless-stopped\n    ports:\n      - \"11434:11434\"\n    volumes:\n      - ollama_data:\u002Froot\u002F.ollama\n    environment:\n      - OLLAMA_HOST=0.0.0.0\n      - OLLAMA_NUM_PARALLEL=4\n      - OLLAMA_MAX_LOADED_MODELS=2\n      - OLLAMA_FLASH_ATTENTION=1\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: all\n              capabilities: [gpu]\n    healthcheck:\n      test: [\"CMD\", \"curl\", \"-f\", \"http:\u002F\u002Flocalhost:11434\u002Fapi\u002Ftags\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n\n  open-webui:\n    image: ghcr.io\u002Fopen-webui\u002Fopen-webui:main\n    container_name: open-webui\n    restart: unless-stopped\n    ports:\n      - \"3000:8080\"\n    volumes:\n      - webui_data:\u002Fapp\u002Fbackend\u002Fdata\n    environment:\n      - OLLAMA_BASE_URL=http:\u002F\u002Follama:11434\n      - WEBUI_AUTH=true\n      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:-change-me-in-production}\n      - DEFAULT_MODELS=llama3.1:8b\n    depends_on:\n      ollama:\n        condition: service_healthy\n\n  litellm:\n    image: ghcr.io\u002Fberriai\u002Flitellm:main-latest\n    container_name: litellm\n    restart: unless-stopped\n    ports:\n      - \"4000:4000\"\n    volumes:\n      - .\u002Flitellm-config.yaml:\u002Fapp\u002Fconfig.yaml\n    command: [\"--config\", \"\u002Fapp\u002Fconfig.yaml\"]\n    depends_on:\n      ollama:\n        condition: service_healthy\n\nvolumes:\n  ollama_data:\n  webui_data:\n```\n\n### LiteLLM Proxy Config\n\n```yaml\n# litellm-config.yaml\nmodel_list:\n  - model_name: llama3\n    litellm_params:\n      model: ollama\u002Fllama3.1:8b\n      api_base: http:\u002F\u002Follama:11434\n  - model_name: codellama\n    litellm_params:\n      model: ollama\u002Fcodellama:13b\n      api_base: http:\u002F\u002Follama:11434\n  - model_name: embeddings\n    litellm_params:\n      model: ollama\u002Fnomic-embed-text\n      api_base: http:\u002F\u002Follama:11434\n\ngeneral_settings:\n  master_key: sk-local-dev-key\n  max_budget: 0  # unlimited for local\n```\n\n## API Usage\n\nOllama exposes an OpenAI-compatible API:\n\n```bash\n# Chat completion\ncurl http:\u002F\u002Flocalhost:11434\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"llama3.1:8b\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n    \"stream\": false\n  }'\n\n# Embeddings\ncurl http:\u002F\u002Flocalhost:11434\u002Fv1\u002Fembeddings \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"nomic-embed-text\",\n    \"input\": \"The quick brown fox\"\n  }'\n\n# List models\ncurl http:\u002F\u002Flocalhost:11434\u002Fapi\u002Ftags\n```\n\n### Python Client\n\n```python\n# pip install ollama\nimport ollama\n\n# Chat\nresponse = ollama.chat(\n    model=\"llama3.1:8b\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain Docker in 3 sentences\"}],\n)\nprint(response[\"message\"][\"content\"])\n\n# Streaming\nfor chunk in ollama.chat(\n    model=\"llama3.1:8b\",\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about containers\"}],\n    stream=True,\n):\n    print(chunk[\"message\"][\"content\"], end=\"\", flush=True)\n\n# Embeddings\nresult = ollama.embed(model=\"nomic-embed-text\", input=\"Hello world\")\nprint(f\"Embedding dimensions: {len(result['embeddings'][0])}\")\n```\n\n### OpenAI SDK Compatibility\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(base_url=\"http:\u002F\u002Flocalhost:11434\u002Fv1\", api_key=\"...\" # local endpoint requires no real key)\n\nresponse = client.chat.completions.create(\n    model=\"llama3.1:8b\",\n    messages=[{\"role\": \"user\", \"content\": \"Hello\"}],\n)\nprint(response.choices[0].message.content)\n```\n\n## Custom Modelfiles\n\nCreate specialized models with custom system prompts and parameters:\n\n```dockerfile\n# Modelfile.devops-assistant\nFROM llama3.1:8b\n\nSYSTEM \"\"\"You are a DevOps expert assistant. You provide concise, production-ready\nadvice about infrastructure, CI\u002FCD, containers, and cloud services.\nAlways include relevant commands and config examples.\"\"\"\n\nPARAMETER temperature 0.3\nPARAMETER top_p 0.9\nPARAMETER num_ctx 8192\nPARAMETER repeat_penalty 1.1\n```\n\n```bash\n# Build and use custom model\nollama create devops-assistant -f Modelfile.devops-assistant\nollama run devops-assistant \"Set up a GitHub Actions workflow for Docker builds\"\n```\n\n## GPU Configuration\n\n### NVIDIA\n\n```bash\n# Verify GPU access\nnvidia-smi\nollama run llama3.1:8b --verbose  # Shows GPU layers loaded\n\n# Environment tuning\nexport OLLAMA_NUM_PARALLEL=4          # Concurrent requests\nexport OLLAMA_MAX_LOADED_MODELS=2     # Models in VRAM\nexport OLLAMA_FLASH_ATTENTION=1       # Faster attention\nexport CUDA_VISIBLE_DEVICES=0,1       # Multi-GPU\n```\n\n### Apple Silicon\n\n```bash\n# Metal acceleration is automatic on macOS\n# Verify with:\nollama run llama3.1:8b --verbose\n# Look for: \"metal\" in the output\n\n# Optimize for unified memory\nexport OLLAMA_NUM_PARALLEL=2          # Keep memory headroom\nexport OLLAMA_MAX_LOADED_MODELS=1     # One model at a time on 16GB\n```\n\n## Monitoring\n\n```bash\n# Check running models and memory usage\ncurl http:\u002F\u002Flocalhost:11434\u002Fapi\u002Fps\n\n# Prometheus metrics (if enabled)\ncurl http:\u002F\u002Flocalhost:11434\u002Fmetrics\n\n# Quick health check script\n#!\u002Fbin\u002Fbash\nresponse=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002Flocalhost:11434\u002Fapi\u002Ftags)\nif [ \"$response\" = \"200\" ]; then\n    echo \"Ollama is healthy\"\n    curl -s http:\u002F\u002Flocalhost:11434\u002Fapi\u002Fps | python3 -m json.tool\nelse\n    echo \"Ollama is down (HTTP $response)\"\n    exit 1\nfi\n```\n\n## Systemd Service\n\n```ini\n# \u002Fetc\u002Fsystemd\u002Fsystem\u002Follama.service\n[Unit]\nDescription=Ollama LLM Server\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nExecStart=\u002Fusr\u002Flocal\u002Fbin\u002Follama serve\nUser=ollama\nGroup=ollama\nRestart=always\nRestartSec=3\nEnvironment=\"OLLAMA_HOST=0.0.0.0\"\nEnvironment=\"OLLAMA_NUM_PARALLEL=4\"\nEnvironment=\"OLLAMA_FLASH_ATTENTION=1\"\nLimitNOFILE=65535\n\n[Install]\nWantedBy=default.target\n```\n\n```bash\nsudo useradd -r -s \u002Fbin\u002Ffalse -m -d \u002Fusr\u002Fshare\u002Follama ollama\nsudo systemctl daemon-reload\nsudo systemctl enable --now ollama\nsudo systemctl status ollama\n```\n\n## Security\n\n- Bind to `127.0.0.1` in production (default), use reverse proxy for remote access\n- Set `WEBUI_AUTH=true` on Open WebUI\n- Use nginx with TLS for remote access:\n\n```nginx\nserver {\n    listen 443 ssl;\n    server_name llm.internal.example.com;\n    ssl_certificate \u002Fetc\u002Fssl\u002Fcerts\u002Fllm.pem;\n    ssl_certificate_key \u002Fetc\u002Fssl\u002Fprivate\u002Fllm.key;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:11434;\n        proxy_set_header Host $host;\n        proxy_buffering off;              # Required for streaming\n        proxy_read_timeout 600s;          # Long model responses\n        allow 10.0.0.0\u002F8;\n        deny all;\n    }\n}\n```\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|---------|\n| Model too slow | Use smaller quantization (`q4_K_M`), enable flash attention |\n| Out of memory | Reduce `num_ctx`, use smaller model, set `OLLAMA_MAX_LOADED_MODELS=1` |\n| GPU not detected | Check `nvidia-smi`, reinstall CUDA drivers, verify Docker GPU runtime |\n| Connection refused | Check `OLLAMA_HOST` setting, verify firewall rules |\n| Model download fails | Check disk space, retry with `ollama pull --insecure` for self-signed registries |\n\n## Related Skills\n\n- mac-mini-llm-lab (`mac-mini-llm-lab`) — Apple Silicon optimization\n- docker-compose (`docker-compose`) — Service orchestration\n- vllm-server (`vllm-server`) — High-throughput production inference\n- llm-gateway (`llm-gateway`) — Unified API routing\n\n## Limitations\n\n- Infrastructure commands can disrupt services: confirm target host\u002Fscope and have backups\u002Fsnapshots before mutating state.\n- Docs-only import: upstream scripts and templates not bundled.\n\n",{"name":5,"risk":25,"source":43,"license":14,"category":44,"metadata":45,"date_added":48,"description":7,"source_repo":49,"source_type":31,"compatibility":50,"license_source":51},"https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills","devops",{"author":46,"version":47},"devops-skills","1.0","2026-09-20","BagelHole\u002FDevOps-Security-Agent-Skills","Requires the relevant OS\u002Fplatform tooling and privileged access where noted. Docs-only; helper scripts and templates not bundled.","https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Follama-stack","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill ollama-stack",{"tool":63,"command":64},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill ollama-stack",{"tool":66,"command":67},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill ollama-stack","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Follama-stack\u002FSKILL.md",true,[],[72,95,118,142,170,194],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":83,"publishedAt":38},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[84,85,86,87,88,89,74,90,35,33,91,32,31,21,92,25,93,24,23,94],"ZeRO","trust","zero trust","architecture","assessment","verification","segmentation","configure","active","scope","implementing",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":38},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[102,103,104,105,106,107,108,37,109,110,111,112,113,32,114,31,115,116,25,117],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":38},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[125,126,127,128,129,130,131,132,133,134,135,136,137,31,21,27,138,139,140,141],"transcript","youtube transcript","youtube","safe","github","codex","research","license","https","text","fetch","tooling","clean","output","deepapi","youtube transcripts","blob",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":159,"publishedAt":38},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[148,151,154],{"categoryNo":149,"categoryName":150,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":152,"categoryName":153,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":155,"categoryName":156,"taxonomyType":157,"taxonomyTypeDesc":158},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[125,126,127,160,128,161,129,130,132,162,163,164,165,135,166,31,21,167,168,169],"youtube transcript skills","gemini","search","api","Video","browse","api-integration","free","card","channels",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":180,"publishedAt":38},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[176,179],{"categoryNo":177,"categoryName":178,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":152,"categoryName":153,"taxonomyType":81,"taxonomyTypeDesc":82},[127,181,182,106,128,183,184,185,186,132,164,187,188,189,190,21,191,27,192,193],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":201,"publishedAt":38},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[200],{"categoryNo":149,"categoryName":150,"taxonomyType":81,"taxonomyTypeDesc":82},[202,127,203,204,128,161,162,205,206,163,164,165,135,207,166,31,21,167,208,140],"youtube full","full","google","server","dlp","credits","automatic"]