nomadnet-pages

NomadNet Page Development

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "nomadnet-pages" with this command: npx skills add torlando-tech/reticulum-skills/torlando-tech-reticulum-skills-nomadnet-pages

NomadNet Page Development

NomadNet nodes can host pages similar to web pages, written in Micron markup (.mu files). Pages can be static or dynamic (executable scripts), support file downloads, and include authentication.

Page Locations

Default storage paths (configurable in ~/.nomadnetwork/config ):

Type Path URL Prefix

Pages ~/.nomadnetwork/storage/pages/

/page/

Files ~/.nomadnetwork/storage/files/

/file/

Create index.mu as the default landing page.

URL Format

<destination_hash>:/page/path.mu

Examples:

e9eafceea9e3664a5c55611c5e8c420a:/page/index.mu :/page/local_page.mu # Local path (same node) :/file/document.pdf # File download

Page Headers

Place optional headers at the top of .mu files:

#!c=3600 # Cache for 1 hour (seconds) #!c=0 # Never cache (dynamic content) #!fg=ddd # Default foreground color #!bg=222 # Default background color

Cache header must be first line if present. Default cache time is 12 hours.

Static Pages

Create .mu files with Micron markup:

#!c=3600

Welcome

cWelcome to my NomadNet node! a

Navigation [About:/page/about.mu] [Files:/page/files.mu] [Contact:/page/contact.mu]

Dynamic Pages

Make .mu files executable to generate content dynamically:

chmod +x page.mu

Include shebang and generate Micron output:

#!/usr/bin/env python3 import os import time

print(">Dynamic Page") print(f"Current time: {time.strftime('%Y-%m-%d %H:%M:%S')}")

Access form data from environment variables

username = os.environ.get('field_username', 'Guest') print(f"Hello, {username}!")

Environment Variables

Form data passed to dynamic pages:

Prefix Source Example

field_

Form input fields field_username , field_password

var_

Request link variables var_action , var_page

Authentication

Restrict page access using .allowed files:

  • Create pagename.mu.allowed alongside the page

  • Add one identity hash per line (32 hex characters):

d454bcdac0e64fb68ba8e267543ae110 2b9ff3fb5902c9ca5ff97bdfb239ef50

Make .allowed executable to generate dynamic access lists.

Client requirement: Enable "Identify When Connecting" in node settings to access restricted pages.

Common Page Patterns

Navigation Menu

Main Menu

F0af[Home:/page/index.mu]_f F0af[About:/page/about.mu]_f F0af_[Files:/page/files.mu]_f

Login Form

Login

Username: B444<16|username>b Password: B444<!16|password>b

[Sign In:/page/auth.mu`*]

File Listing

Available Downloads

[Document.pdf:/file/document.pdf] [Archive.zip:/file/archive.zip]

Status Page (Dynamic)

#!/usr/bin/env python3 import time import os

print("#!c=0") # No caching print(">Node Status") print(f"Uptime: {os.popen('uptime -p').read().strip()}") print(f"Updated: {time.strftime('%H:%M:%S')}")

Troubleshooting

Page not found: Verify file exists in ~/.nomadnetwork/storage/pages/ and path matches URL

Dynamic page not executing: Check shebang line, file permissions (chmod +x ), and script errors

Form data not received: Verify field names match environment variable lookups (field_ prefix)

Authentication failing: Confirm identity hash format (32 hex chars), client has "Identify When Connecting" enabled

Cache issues: Set #!c=0 for dynamic content, clear client cache if testing changes

Additional Resources

Reference Files

For detailed documentation, consult:

  • references/page-structure.md

  • Complete page configuration and headers

  • references/file-serving.md

  • File hosting and download URLs

  • references/authentication.md

  • Authentication patterns and .allowed files

Configuration

Node configuration in ~/.nomadnetwork/config :

[node] enable_node = yes node_name = My Node pages_path = ~/.nomadnetwork/storage/pages files_path = ~/.nomadnetwork/storage/files

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated
Coding

clawhub-rate-limited-publisher

Queue and publish local skills to ClawHub with a strict 5-per-hour cap using the local clawhub CLI and host scheduler.

Archived SourceRecently Updated