{"id":"64f5f314-35e7-486c-a7de-55f047e42201","shortId":"d7Rnh3","kind":"skill","title":"skill-base-web-deploy","tagline":">-","description":"# Skill Base Web Server Deployment\n\nThis skill guides you through setting up and operating the Skill Base platform server. Requires Node.js >= 18.\n\n## When to Use This Skill\n- When users request private deployment, hosting, or running the Skill Base server (`npx skill-base` or Docker).\n- When users ask about Skill Base server host/port configuration (`-h`, `-p`), data directory (`-d`), or how to back up the database.\n\n## When NOT to Use This Skill\n- When users want to use the `skb` command to search, install, or publish specific skills (refer to `skill-base-cli` instead).\n- When users ask about Docker, ports, or database configuration for non-Skill Base projects (avoid misuse).\n\n## Quick Start (npm package)\n\n```bash\n# Recommended: fix the data directory for easy backup and migration\nnpx skill-base -d ./skill-data -p 8000\n```\n\nDefault port is **8000**; if `-d` is not specified, data will be stored in npm cache-related paths. In production, always use **`-d`** to point to a specific directory.\n\n## Startup Options (`npx skill-base`)\n\n| Option | Description |\n|--------|-------------|\n| `-p`, `--port` | Listening port, default 8000 |\n| `-h`, `--host` | Listening address, default `0.0.0.0` (listens on all local network cards/IPv4 addresses, accessible from both internal and external networks; set to `127.0.0.1` for local-only access) |\n| `-d`, `--data-dir` | Data root directory; sets `DATA_DIR` and `DATABASE_PATH=<dir>/skills.db` |\n| `--base-path` | Deployment base path prefix, default `/` (e.g., `/skills/` for subpath deployment) |\n| `--no-cappy` | Disable Cappy the capybara mascot |\n| `-v`, `--verbose` | Enable debug logging |\n| `--help` | Show help information |\n| `--version` | Show version number |\n\nIntranet or local hardening example: `npx skill-base --host 127.0.0.1 -p 8000 -d ./data`\n\nSubpath deployment example: `npx skill-base --base-path /skills/ -p 8000`\n\nDebug mode example: `npx skill-base -v -d ./data`\n\n## First Access\n\nWhen no administrator exists, opening the site in a browser will launch the **initialization wizard**: create a system administrator account and password. Afterward, team members need to be added by the administrator, and users log in via Web and CLI.\n\n## Development/Production Run from Source Directory\n\n```bash\npnpm install\npnpm start\n# Or for development: `pnpm dev`\n```\n\n## Docker (Recommended for Production)\n\nBuild in the **repository root directory containing the Dockerfile**:\n\n```bash\ndocker build -t skill-base .\n```\n\nImage conventions: `DATA_DIR=/data`, `DATABASE_PATH=/data/skills.db`, `PORT=8000`. For host persistence, mount to **`/data`** inside the container:\n\n```bash\ndocker run -d -p 8000:8000 -v \"$(pwd)/data:/data\" --name skill-base-server skill-base\n```\n\nIf you need to change the port, map both host and container ports and set `PORT`, e.g., `-p 3000:3000 -e PORT=3000`.\n\n## Data Directory Structure (Backup)\n\nAfter specifying `-d` or mounting `/data`, typical contents:\n\n```text\ndata/\n├── skills.db\n├── skills.db-wal\n└── skills/\n    └── <skill-id>/\n        └── vYYYYMMDD.HHmmss.zip\n```\n\nBackup: Simply copy the entire data directory during low write activity or off-peak hours.\n\n## Troubleshooting Tips\n\n- **Port**: Ensure firewall/security groups allow `PORT`; cloud hosts need to allow corresponding inbound traffic.\n- **CLI can't connect**: Client uses `skb init --server <root URL>` (without `/api`); verify the site is accessible from that machine.\n- **Permissions**: The `-d` path must be readable/writable by the process; for Docker volumes, check host directory permissions.\n\n## Relationship with `skill-base-cli`\n\nAfter deploying the Web server, users on the client side use **`skb`** pointing to the same site root URL; see the `skill-base-cli` skill within the project.","tags":["skill","base","web","deploy","ginuim","agent-skills","ai-agent","claude-code","claude-code-skills","cli","codex","cursor"],"capabilities":["skill","source-ginuim","skill-skill-base-web-deploy","topic-agent-skills","topic-ai-agent","topic-claude-code","topic-claude-code-skills","topic-cli","topic-codex","topic-cursor","topic-developer-tools","topic-knowledge-management","topic-prompt-engineering","topic-skill-base","topic-team-workflows"],"categories":["skill-base"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ginuim/skill-base/skill-base-web-deploy","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ginuim/skill-base","source_repo":"https://github.com/ginuim/skill-base","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 22 github stars · SKILL.md body (3,764 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:30.437Z","embedding":null,"createdAt":"2026-04-23T13:03:54.984Z","updatedAt":"2026-05-18T19:05:30.437Z","lastSeenAt":"2026-05-18T19:05:30.437Z","tsv":"'/api':497 '/data':274,297,379,390,403,404,445 '/data/skills.db':382 '/skill-data':137 '/skills':235,285 '/skills.db':225 '0.0.0.0':189 '127.0.0.1':206,270 '18':27 '3000':431,432,435 '8000':139,143,183,272,287,384,399,400 'access':197,211,299,502 'account':319 'activ':465 'ad':328 'address':187,196 'administr':302,318,331 'afterward':322 'allow':477,483 'alway':161 'ask':53,102 'avoid':115 'back':68 'backup':129,439,455 'base':3,7,22,43,48,56,97,113,135,175,227,230,268,281,283,294,374,408,412,527,552 'base-path':226,282 'bash':121,345,368,394 'browser':309 'build':359,370 'cach':156 'cache-rel':155 'cappi':241,243 'capybara':245 'cards/ipv4':195 'chang':417 'check':519 'cli':98,339,487,528,553 'client':491,537 'cloud':479 'command':85 'configur':59,108 'connect':490 'contain':365,393,424 'content':447 'convent':376 'copi':457 'correspond':484 'creat':315 'd':64,136,145,163,212,273,296,397,442,508 'data':62,125,149,214,216,220,377,436,449,460 'data-dir':213 'databas':71,107,223,380 'debug':250,288 'default':140,182,188,233 'deploy':5,10,37,229,238,276,530 'descript':177 'dev':354 'develop':352 'development/production':340 'dir':215,221,378 'directori':63,126,169,218,344,364,437,461,521 'disabl':242 'docker':50,104,355,369,395,517 'dockerfil':367 'e':433 'e.g':234,429 'easi':128 'enabl':249 'ensur':474 'entir':459 'exampl':264,277,290 'exist':303 'extern':202 'firewall/security':475 'first':298 'fix':123 'group':476 'guid':13 'h':60,184 'harden':263 'help':252,254 'host':38,185,269,386,422,480,520 'host/port':58 'hour':470 'imag':375 'inbound':485 'inform':255 'init':494 'initi':313 'insid':391 'instal':88,347 'instead':99 'intern':200 'intranet':260 'launch':311 'listen':180,186,190 'local':193,209,262 'local-on':208 'log':251,334 'low':463 'machin':505 'map':420 'mascot':246 'member':324 'migrat':131 'misus':116 'mode':289 'mount':388,444 'must':510 'name':405 'need':325,415,481 'network':194,203 'no-cappi':239 'node.js':26 'non':111 'non-skil':110 'npm':119,154 'npx':45,132,172,265,278,291 'number':259 'off-peak':467 'open':304 'oper':19 'option':171,176 'p':61,138,178,271,286,398,430 'packag':120 'password':321 'path':158,224,228,231,284,381,509 'peak':469 'permiss':506,522 'persist':387 'platform':23 'pnpm':346,348,353 'point':165,541 'port':105,141,179,181,383,419,425,428,434,473,478 'prefix':232 'privat':36 'process':515 'product':160,358 'project':114,557 'publish':90 'pwd':402 'quick':117 'readable/writable':512 'recommend':122,356 'refer':93 'relat':157 'relationship':523 'repositori':362 'request':35 'requir':25 'root':217,363,546 'run':40,341,396 'search':87 'see':548 'server':9,24,44,57,409,495,533 'set':16,204,219,427 'show':253,257 'side':538 'simpli':456 'site':306,500,545 'skb':84,493,540 'skill':2,6,12,21,32,42,47,55,77,92,96,112,134,174,267,280,293,373,407,411,453,526,551,554 'skill-bas':46,133,173,266,279,292,372,410 'skill-base-c':95,525,550 'skill-base-serv':406 'skill-base-web-deploy':1 'skill-skill-base-web-deploy' 'skills.db':450,451 'sourc':343 'source-ginuim' 'specif':91,168 'specifi':148,441 'start':118,349 'startup':170 'store':152 'structur':438 'subpath':237,275 'system':317 'team':323 'text':448 'tip':472 'topic-agent-skills' 'topic-ai-agent' 'topic-claude-code' 'topic-claude-code-skills' 'topic-cli' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-knowledge-management' 'topic-prompt-engineering' 'topic-skill-base' 'topic-team-workflows' 'traffic':486 'troubleshoot':471 'typic':446 'url':547 'use':30,75,82,162,492,539 'user':34,52,79,101,333,534 'v':247,295,401 'verbos':248 'verifi':498 'version':256,258 'via':336 'volum':518 'vyyyymmdd.hhmmss.zip':454 'wal':452 'want':80 'web':4,8,337,532 'within':555 'without':496 'wizard':314 'write':464","prices":[{"id":"35814d5d-a83d-4051-abee-e15ef9478509","listingId":"64f5f314-35e7-486c-a7de-55f047e42201","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ginuim","category":"skill-base","install_from":"skills.sh"},"createdAt":"2026-04-23T13:03:54.984Z"}],"sources":[{"listingId":"64f5f314-35e7-486c-a7de-55f047e42201","source":"github","sourceId":"ginuim/skill-base/skill-base-web-deploy","sourceUrl":"https://github.com/ginuim/skill-base/tree/main/skills/skill-base-web-deploy","isPrimary":false,"firstSeenAt":"2026-04-23T13:03:54.984Z","lastSeenAt":"2026-05-18T19:05:30.437Z"}],"details":{"listingId":"64f5f314-35e7-486c-a7de-55f047e42201","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ginuim","slug":"skill-base-web-deploy","github":{"repo":"ginuim/skill-base","stars":22,"topics":["agent-skills","ai-agent","claude-code","claude-code-skills","cli","codex","cursor","developer-tools","knowledge-management","prompt-engineering","skill-base","team-workflows"],"license":null,"html_url":"https://github.com/ginuim/skill-base","pushed_at":"2026-05-12T03:56:30Z","description":"Private Skill distribution platform for AI coding agents: publish, install, update, and rollback team skills across Cursor, Claude Code, Codex, and OpenClaw with a minimal server + skb CLI.","skill_md_sha":"37a84918801e7a664145884768bc28e385546391","skill_md_path":"skills/skill-base-web-deploy/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ginuim/skill-base/tree/main/skills/skill-base-web-deploy"},"layout":"multi","source":"github","category":"skill-base","frontmatter":{"name":"skill-base-web-deploy","description":">-"},"skills_sh_url":"https://skills.sh/ginuim/skill-base/skill-base-web-deploy"},"updatedAt":"2026-05-18T19:05:30.437Z"}}