返回顶部
i

intranet内网文件服务器

Lightweight local HTTP file server with plugin support. Serves static files from a webroot, mounts plugin directories at URL prefixes via config, and runs index.py entry points as CGI.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 3.2.7
安全检测
已通过
1,352
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

intranet

Intranet

Lightweight local HTTP file server — no Apache/nginx needed, no root required. Serves static files, mounts plugin directories, and runs index.py entry points as CGI.

Entry point: INLINECODE1

Setup

See SETUP.md for prerequisites and setup instructions.

Commands

CODEBLOCK0

Directory Layout

CODEBLOCK1

Config lives in {workspace}/intranet/config.json, webroot is {workspace}/intranet/www/. The config file is never exposed to HTTP.

Plugins

Plugins mount external directories at URL prefixes. Configure in config.json:

CODEBLOCK2

Plugin config supports simple (static only) or extended (with CGI hash) format:

CODEBLOCK3

  • - Plugin paths must be inside the workspace
  • If CGI is enabled and a plugin has a hash, index.py at the plugin root handles all sub-paths — but only if its SHA-256 matches
  • Plugins without a hash are static-only (CGI blocked even when globally enabled)
  • Generate a hash: INLINECODE8

CGI Execution

Off by default. Enable in config.json:

CODEBLOCK4

When enabled, only files named index.py can execute as CGI:

  • - Webroot: index.py in any subdirectory handles that directory's requests
  • Plugins: index.py at the plugin root handles all plugin sub-paths
  • All other .py files → 403 Forbidden (never served, never executed)
  • Scripts must have the executable bit set (chmod +x)

Security

  • - Webroot isolation — config.json is outside the webroot (www/), never served
  • CGI off by default — must be explicitly enabled via "cgi": true in config.json
  • Path containment — all resolved paths must stay within their base directory. Symlinks are followed but the resolved target is checked for containment.
  • Plugin allowlist — only directories explicitly registered in config.json are served; must be inside workspace
  • CGI restricted to index.py — no arbitrary script execution; plugin CGI requires SHA-256 hash in config.json. Webroot CGI does not require a hash (webroot files are under your direct control)
  • All .py files blocked except index.py entry points (not served as text, not executed)
  • Host allowlist — optional allowed_hosts restricts which Host headers are accepted
  • Token auth — optional bearer token via --token flag or config.json. Browser clients visit ?token=SECRET once → session cookie set → all subsequent navigation works. API clients use Authorization: Bearer <token> header.
  • Path traversal protection — all paths resolved and validated before serving
  • Default bind: 127.0.0.1 (loopback only). LAN access via --host 0.0.0.0 requires both token auth and allowed_hosts in config.json.

Workspace Detection

The server auto-detects the workspace by walking up from $PWD (or the script location) looking for a skills/ directory. The detected path is printed on startup so you can verify it.

To skip autodiscovery, set INTRANET_WORKSPACE to the workspace root:

CODEBLOCK5

Notes

  • - All state files are inside the workspace:
- Config: {workspace}/intranet/config.json - PID: {workspace}/intranet/.pid - Runtime: {workspace}/intranet/.conf - Webroot: {workspace}/intranet/www/
  • - No files are written outside the workspace
  • 30-second timeout on CGI execution (when enabled)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 intranet-1776420059 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 intranet-1776420059 技能

通过命令行安装

skillhub install intranet-1776420059

下载

⬇ 下载 intranet v3.2.7(免费)

文件大小: 15.69 KB | 发布时间: 2026-4-17 20:12

v3.2.7 最新 2026-4-17 20:12
Make session cookies deterministic so they survive server restarts

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部