yakmesh 2.8.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/CHANGELOG.md +637 -0
  2. package/CONTRIBUTING.md +42 -0
  3. package/Caddyfile +77 -0
  4. package/README.md +119 -29
  5. package/adapters/adapter-mlv-bible/README.md +124 -0
  6. package/adapters/adapter-mlv-bible/index.js +400 -0
  7. package/adapters/chat-mod-adapter.js +532 -0
  8. package/adapters/content-adapter.js +273 -0
  9. package/content/api.js +50 -41
  10. package/content/index.js +2 -2
  11. package/content/store.js +355 -173
  12. package/dashboard/index.html +19 -3
  13. package/database/replication.js +117 -37
  14. package/docs/CRYPTO-AGILITY.md +204 -0
  15. package/docs/MTLS-RESEARCH.md +367 -0
  16. package/docs/NAMCHE-SPEC.md +681 -0
  17. package/docs/PEERQUANTA-YAKMESH-INTEGRATION.md +407 -0
  18. package/docs/PRECISION-DISCLOSURE.md +96 -0
  19. package/docs/README.md +76 -0
  20. package/docs/ROADMAP-2.4.0.md +447 -0
  21. package/docs/ROADMAP-2.5.0.md +244 -0
  22. package/docs/SECURITY-AUDIT-REPORT.md +306 -0
  23. package/docs/SST-INTEGRATION.md +712 -0
  24. package/docs/STEADYWATCH-IMPLEMENTATION.md +303 -0
  25. package/docs/TERNARY-AUDIT-REPORT.md +247 -0
  26. package/docs/TME-FAQ.md +221 -0
  27. package/docs/WHITEPAPER.md +623 -0
  28. package/docs/adapters.html +1001 -0
  29. package/docs/advanced-systems.html +1045 -0
  30. package/docs/annex.html +1046 -0
  31. package/docs/api.html +970 -0
  32. package/docs/business/response-templates.md +160 -0
  33. package/docs/c2c.html +1225 -0
  34. package/docs/cli.html +1332 -0
  35. package/docs/configuration.html +1248 -0
  36. package/docs/darshan.html +1085 -0
  37. package/docs/dharma.html +966 -0
  38. package/docs/docs-bundle.html +1075 -0
  39. package/docs/docs.css +3120 -0
  40. package/docs/docs.js +556 -0
  41. package/docs/doko.html +969 -0
  42. package/docs/geo-proof.html +858 -0
  43. package/docs/getting-started.html +840 -0
  44. package/docs/gumba-tutorial.html +1144 -0
  45. package/docs/gumba.html +1098 -0
  46. package/docs/index.html +914 -0
  47. package/docs/jhilke.html +1312 -0
  48. package/docs/karma.html +1100 -0
  49. package/docs/katha.html +1037 -0
  50. package/docs/lama.html +978 -0
  51. package/docs/mandala.html +1067 -0
  52. package/docs/mani.html +964 -0
  53. package/docs/mantra.html +967 -0
  54. package/docs/mesh.html +1409 -0
  55. package/docs/nakpak.html +869 -0
  56. package/docs/namche.html +928 -0
  57. package/docs/nav-order.json +53 -0
  58. package/docs/prahari.html +1043 -0
  59. package/docs/prism-bash.min.js +1 -0
  60. package/docs/prism-javascript.min.js +1 -0
  61. package/docs/prism-json.min.js +1 -0
  62. package/docs/prism-tomorrow.min.css +1 -0
  63. package/docs/prism.min.js +1 -0
  64. package/docs/privacy.html +699 -0
  65. package/docs/quick-reference.html +1181 -0
  66. package/docs/sakshi.html +1402 -0
  67. package/docs/sandboxing.md +386 -0
  68. package/docs/seva.html +911 -0
  69. package/docs/sherpa.html +871 -0
  70. package/docs/studio.html +860 -0
  71. package/docs/stupa.html +995 -0
  72. package/docs/tailwind.min.css +2 -0
  73. package/docs/tattva.html +1332 -0
  74. package/docs/terms.html +686 -0
  75. package/docs/time-server-deployment.md +166 -0
  76. package/docs/time-sources.html +1392 -0
  77. package/docs/tivra.html +1127 -0
  78. package/docs/trademark-policy.html +686 -0
  79. package/docs/tribhuj.html +1183 -0
  80. package/docs/trust-security.html +1029 -0
  81. package/docs/tutorials/backup-recovery.html +654 -0
  82. package/docs/tutorials/dashboard.html +604 -0
  83. package/docs/tutorials/domain-setup.html +605 -0
  84. package/docs/tutorials/host-website.html +456 -0
  85. package/docs/tutorials/mesh-network.html +505 -0
  86. package/docs/tutorials/mobile-access.html +445 -0
  87. package/docs/tutorials/privacy.html +467 -0
  88. package/docs/tutorials/raspberry-pi.html +600 -0
  89. package/docs/tutorials/security-basics.html +539 -0
  90. package/docs/tutorials/share-files.html +431 -0
  91. package/docs/tutorials/troubleshooting.html +637 -0
  92. package/docs/tutorials/trust-karma.html +419 -0
  93. package/docs/tutorials/yak-protocol.html +456 -0
  94. package/docs/tutorials.html +1034 -0
  95. package/docs/vani.html +1270 -0
  96. package/docs/webserver.html +809 -0
  97. package/docs/yak-protocol.html +940 -0
  98. package/docs/yak-timeserver-design.md +475 -0
  99. package/docs/yakapp.html +1015 -0
  100. package/docs/ypc27.html +1069 -0
  101. package/docs/yurt.html +1344 -0
  102. package/embedded-docs/bundle.js +334 -74
  103. package/gossip/protocol.js +247 -27
  104. package/identity/key-resolver.js +262 -0
  105. package/identity/machine-seed.js +632 -0
  106. package/identity/node-key.js +669 -368
  107. package/identity/tribhuj-ratchet.js +506 -0
  108. package/knowledge-base.js +37 -8
  109. package/launcher/yakmesh.bat +62 -0
  110. package/launcher/yakmesh.sh +70 -0
  111. package/mesh/annex.js +462 -108
  112. package/mesh/beacon-broadcast.js +113 -1
  113. package/mesh/darshan.js +1718 -0
  114. package/mesh/gumba.js +1567 -0
  115. package/mesh/jhilke.js +651 -0
  116. package/mesh/katha.js +1012 -0
  117. package/mesh/nakpak-routing.js +8 -5
  118. package/mesh/network.js +724 -34
  119. package/mesh/pulse-sync.js +4 -1
  120. package/mesh/rate-limiter.js +127 -15
  121. package/mesh/seva.js +526 -0
  122. package/mesh/sherpa-discovery.js +89 -8
  123. package/mesh/sybil-defense.js +19 -5
  124. package/mesh/temporal-encoder.js +4 -3
  125. package/mesh/vani.js +1364 -0
  126. package/mesh/yurt.js +1340 -0
  127. package/models/entropy-sentinel.onnx +0 -0
  128. package/models/karma-trust.onnx +0 -0
  129. package/models/manifest.json +43 -0
  130. package/models/sakshi-anomaly.onnx +0 -0
  131. package/oracle/code-proof-protocol.js +7 -6
  132. package/oracle/codebase-lock.js +257 -28
  133. package/oracle/index.js +74 -15
  134. package/oracle/ma902-snmp.js +678 -0
  135. package/oracle/module-sealer.js +5 -3
  136. package/oracle/network-identity.js +16 -0
  137. package/oracle/packet-checksum.js +201 -0
  138. package/oracle/sst.js +579 -0
  139. package/oracle/ternary-144t.js +714 -0
  140. package/oracle/ternary-ml.js +481 -0
  141. package/oracle/time-api.js +239 -0
  142. package/oracle/time-source.js +137 -47
  143. package/oracle/validation-oracle-hardened.js +1111 -1071
  144. package/oracle/validation-oracle.js +4 -2
  145. package/oracle/ypc27.js +211 -0
  146. package/package.json +20 -3
  147. package/protocol/yak-handler.js +35 -9
  148. package/protocol/yak-protocol.js +28 -13
  149. package/reference/cpp/yakmesh_mceliece_shard.cpp +168 -0
  150. package/reference/cpp/yakmesh_ypc27.cpp +179 -0
  151. package/sbom.json +87 -0
  152. package/scripts/security-audit.mjs +264 -0
  153. package/scripts/update-docs-nav.js +194 -0
  154. package/scripts/update-docs-sidebar.cjs +164 -0
  155. package/security/crypto-config.js +4 -3
  156. package/security/dharma-moderation.js +517 -0
  157. package/security/doko-identity.js +193 -143
  158. package/security/domain-consensus.js +86 -85
  159. package/security/fs-hardening.js +620 -0
  160. package/security/hardware-attestation.js +5 -3
  161. package/security/hybrid-trust.js +227 -87
  162. package/security/karma-rate-limiter.js +692 -0
  163. package/security/khata-protocol.js +22 -21
  164. package/security/khata-trust-integration.js +277 -150
  165. package/security/memory-safety.js +635 -0
  166. package/security/mesh-auth.js +11 -10
  167. package/security/mesh-revocation.js +373 -5
  168. package/security/namche-gateway.js +298 -69
  169. package/security/sakshi.js +460 -3
  170. package/security/sangha.js +770 -0
  171. package/security/secure-config.js +473 -0
  172. package/security/silicon-parity.js +13 -10
  173. package/security/steadywatch.js +1142 -0
  174. package/security/strike-system.js +32 -3
  175. package/security/temporal-signing.js +488 -0
  176. package/security/trit-commitment.js +464 -0
  177. package/server/crypto/annex.js +247 -0
  178. package/server/darshan-api.js +343 -0
  179. package/server/index.js +3259 -362
  180. package/server/komm-api.js +668 -0
  181. package/utils/accel.js +2273 -0
  182. package/utils/ternary-id.js +79 -0
  183. package/utils/verify-worker.js +57 -0
  184. package/webserver/index.js +95 -5
  185. package/assets/yakmesh-logo.png +0 -0
  186. package/assets/yakmesh-logo.svg +0 -80
  187. package/assets/yakmesh-logo2.png +0 -0
  188. package/assets/yakmesh-logo2sm.png +0 -0
  189. package/assets/ymsm.png +0 -0
  190. package/website/assets/silhouettes/adapters.svg +0 -107
  191. package/website/assets/silhouettes/api-endpoints.svg +0 -115
  192. package/website/assets/silhouettes/atomic-clock.svg +0 -83
  193. package/website/assets/silhouettes/base-camp.svg +0 -81
  194. package/website/assets/silhouettes/bridge.svg +0 -69
  195. package/website/assets/silhouettes/docs-bundle.svg +0 -113
  196. package/website/assets/silhouettes/doko-basket.svg +0 -70
  197. package/website/assets/silhouettes/fortress.svg +0 -93
  198. package/website/assets/silhouettes/gateway.svg +0 -54
  199. package/website/assets/silhouettes/gears.svg +0 -93
  200. package/website/assets/silhouettes/globe-satellite.svg +0 -67
  201. package/website/assets/silhouettes/karma-wheel.svg +0 -137
  202. package/website/assets/silhouettes/lama-council.svg +0 -141
  203. package/website/assets/silhouettes/mandala-network.svg +0 -169
  204. package/website/assets/silhouettes/mani-stones.svg +0 -149
  205. package/website/assets/silhouettes/mantra-wheel.svg +0 -116
  206. package/website/assets/silhouettes/mesh-nodes.svg +0 -113
  207. package/website/assets/silhouettes/nakpak.svg +0 -56
  208. package/website/assets/silhouettes/peak-lightning.svg +0 -73
  209. package/website/assets/silhouettes/sherpa.svg +0 -69
  210. package/website/assets/silhouettes/stupa-tower.svg +0 -119
  211. package/website/assets/silhouettes/tattva-eye.svg +0 -78
  212. package/website/assets/silhouettes/terminal.svg +0 -74
  213. package/website/assets/silhouettes/webserver.svg +0 -145
  214. package/website/assets/silhouettes/yak.svg +0 -78
  215. package/website/assets/yakmesh-logo.png +0 -0
  216. package/website/assets/yakmesh-logo.webp +0 -0
  217. package/website/assets/yakmesh-logo128x140.webp +0 -0
  218. package/website/assets/yakmesh-logo2.png +0 -0
  219. package/website/assets/yakmesh-logo2.svg +0 -51
  220. package/website/assets/yakmesh-logo40x44.webp +0 -0
  221. package/website/assets/yakmesh.gif +0 -0
  222. package/website/assets/yakmesh.ico +0 -0
  223. package/website/assets/yakmesh.jpg +0 -0
  224. package/website/assets/yakmesh.pdf +0 -0
  225. package/website/assets/yakmesh.png +0 -0
  226. package/website/assets/yakmesh.svg +0 -70
  227. package/website/assets/yakmesh128.webp +0 -0
  228. package/website/assets/yakmesh32.png +0 -0
  229. package/website/assets/yakmesh32.svg +0 -65
  230. package/website/assets/yakmesh32o.ico +0 -2
  231. package/website/assets/yakmesh32o.svg +0 -65
  232. package/website/assets/yakmesh32o.svgz +0 -0
@@ -0,0 +1,445 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="tutorials">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <link rel="icon" href="../favicon.ico" sizes="32x32">
7
+ <link rel="icon" href="../icon.svg" type="image/svg+xml">
8
+ <link rel="apple-touch-icon" href="../apple-touch-icon.png">
9
+ <title>Mobile Access - YAKMESH Tutorials</title>
10
+ <meta name="description" content="Access and manage your YAKMESH node from your phone. Remote access, PWA installation, and security tips.">
11
+
12
+ <link rel="stylesheet" href="../tailwind.min.css">
13
+ <link rel="stylesheet" href="../prism-tomorrow.min.css">
14
+ <link rel="stylesheet" href="../docs.css">
15
+ <style>
16
+ .theme-accent { color: #10b981; }
17
+ .theme-accent-hover:hover { color: #34d399; }
18
+ .theme-badge { background: rgba(16, 185, 129, 0.2); color: #34d399; }
19
+ .theme-border { border-color: #10b981; }
20
+ .theme-callout { background: rgba(16, 185, 129, 0.1); border-color: #059669; }
21
+ .active-link { background: rgba(16, 185, 129, 0.2) !important; color: #34d399 !important; }
22
+ .tutorial-card { background: rgba(30, 41, 59, 0.5); border: 1px solid #334155; border-radius: 0.75rem; padding: 1.5rem; margin-bottom: 1.5rem; }
23
+ .step-number { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; background: #10b981; color: white; border-radius: 50%; font-weight: bold; margin-right: 0.75rem; flex-shrink: 0; }
24
+ .step-header { display: flex; align-items: center; margin-bottom: 1rem; }
25
+ </style>
26
+ </head>
27
+ <body class="bg-mountain-900 text-white min-h-screen">
28
+
29
+ <nav class="docs-sidebar" id="sidebar">
30
+ <a href="../index.html" class="sidebar-logo">
31
+ <span class="logo-icon">🏔️</span>
32
+ <span class="logo-text">Yakmesh</span>
33
+ </a>
34
+ <a href="/dashboard" class="sidebar-dashboard-link"><span>📊</span> <span>Dashboard</span></a>
35
+ <ul class="sidebar-nav">
36
+ <li><a href="../index.html"><span>🏠</span> <span>Overview</span></a></li>
37
+ <li><a href="../getting-started.html"><span>🚀</span> <span>Getting Started</span></a></li>
38
+ <li><a href="../tutorials.html"><span>📖</span> <span>Tutorials</span></a></li>
39
+ <li><a href="../yak-protocol.html"><span class="yak-icon"></span> <span>YAK://</span></a></li>
40
+ <li><a href="../annex.html"><span>🌉</span> <span>ANNEX</span></a></li>
41
+ <li><a href="../nakpak.html"><span>🎒</span> <span>NAKPAK</span></a></li>
42
+ <li><a href="../namche.html"><span>🚪</span> <span>NAMCHE</span></a></li>
43
+ <li><a href="../doko.html"><span>🧺</span> <span>DOKO</span></a></li>
44
+ <li><a href="../sherpa.html"><span>🧗</span> <span>SHERPA</span></a></li>
45
+ <li><a href="../mandala.html"><span>🌐</span> <span>MANDALA</span></a></li>
46
+ <li><a href="../mantra.html"><span>🕉️</span> <span>MANTRA</span></a></li>
47
+ <li><a href="../gumba.html"><span>🛕</span> <span>GUMBA</span></a></li>
48
+ <li><a href="../yurt.html"><span>🏕️</span> <span>YURT</span></a></li>
49
+ <li><a href="../katha.html"><span>💬</span> <span>KATHA</span></a></li>
50
+ <li><a href="../vani.html"><span>🎙️</span> <span>VANI</span></a></li>
51
+ <li><a href="../darshan.html"><span>👁️</span> <span>DARSHAN</span></a></li>
52
+ <li><a href="../stupa.html"><span>🛕</span> <span>STUPA</span></a></li>
53
+ <li><a href="../lama.html"><span>🔮</span> <span>LAMA</span></a></li>
54
+ <li><a href="../mani.html"><span>⏱️</span> <span>MANI</span></a></li>
55
+ <li><a href="../karma.html"><span>☯️</span> <span>KARMA</span></a></li>
56
+ <li><a href="../tattva.html"><span>🔯</span> <span>TATTVA</span></a></li>
57
+ <li><a href="../tribhuj.html"><span>🔺</span> <span>TRIBHUJ</span></a></li>
58
+ <li><a href="../ypc27.html"><span>🔐</span> <span>YPC-27</span></a></li>
59
+ <li><a href="../sakshi.html"><span>👁️</span> <span>SAKSHI</span></a></li>
60
+ <li><a href="../geo-proof.html"><span>🌍</span> <span>PRAMAAN</span></a></li>
61
+ <li><a href="../trust-security.html"><span>🔒</span> <span>SURAKSHA</span></a></li>
62
+ <li><a href="../docs-bundle.html"><span>📚</span> <span>GRANTH</span></a></li>
63
+ <li><a href="../api.html"><span>📡</span> <span>API</span></a></li>
64
+ <li><a href="../adapters.html"><span>🔌</span> <span>Adapters</span></a></li>
65
+ <li><a href="../studio.html"><span>🎨</span> <span>Studio</span></a></li>
66
+ <li><a href="../quick-reference.html"><span>📋</span> <span>Quick Ref</span></a></li>
67
+ </ul>
68
+ </nav>
69
+
70
+ <button class="sidebar-toggle" id="sidebarToggle" title="Toggle sidebar">
71
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
72
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7" />
73
+ </svg>
74
+ </button>
75
+
76
+ <div class="sidebar-overlay" id="sidebarOverlay"></div>
77
+
78
+ <main class="docs-main" id="mainContent">
79
+ <div class="docs-content">
80
+
81
+ <!-- Breadcrumb -->
82
+ <nav class="mb-6">
83
+ <a href="../tutorials.html" class="text-mountain-400 hover:text-white transition">← Back to Tutorials</a>
84
+ </nav>
85
+
86
+ <!-- Page Header -->
87
+ <div class="mb-8">
88
+ <div class="flex items-center gap-3 mb-2">
89
+ <span class="text-4xl">📱</span>
90
+ <h1 class="text-4xl font-bold">Mobile Access</h1>
91
+ <span class="theme-badge text-xs px-2 py-1 rounded-full">10 min</span>
92
+ </div>
93
+ <p class="theme-accent text-lg">View and manage your node from your phone</p>
94
+ <p class="text-mountain-300 mt-2">
95
+ Access your YAKMESH dashboard from anywhere, install it as an app, and stay connected on the go.
96
+ </p>
97
+ </div>
98
+
99
+ <!-- What You'll Learn -->
100
+ <div class="tutorial-card">
101
+ <h2 class="text-xl font-bold mb-4">📋 What You'll Learn</h2>
102
+ <ul class="space-y-2 text-mountain-300">
103
+ <li>• Access your dashboard on the same network</li>
104
+ <li>• Set up remote access with Tailscale or ZeroTier</li>
105
+ <li>• Install the PWA on your phone's home screen</li>
106
+ <li>• Understand what you can manage remotely</li>
107
+ <li>• Security best practices for mobile access</li>
108
+ </ul>
109
+ </div>
110
+
111
+ <!-- Local Network Access -->
112
+ <div class="tutorial-card">
113
+ <div class="step-header">
114
+ <span class="step-number">1</span>
115
+ <h2 class="text-xl font-bold">Access on Your Home Network</h2>
116
+ </div>
117
+ <p class="text-mountain-300 mb-4">
118
+ When your phone is on the same WiFi network as your YAKMESH node, you can access it directly.
119
+ </p>
120
+
121
+ <h3 class="font-semibold text-lg mb-3">Find Your Node's Address</h3>
122
+ <pre class="language-bash mb-4"><code># On your YAKMESH node, find the local IP:
123
+ hostname -I
124
+ # Example output: 192.168.1.100
125
+
126
+ # Or check the dashboard startup message:
127
+ # Dashboard: http://192.168.1.100:3000/dashboard</code></pre>
128
+
129
+ <h3 class="font-semibold text-lg mb-3">Open in Mobile Browser</h3>
130
+ <ol class="list-decimal list-inside space-y-2 text-mountain-300 mb-4">
131
+ <li>Connect your phone to the same WiFi network</li>
132
+ <li>Open your mobile browser (Safari, Chrome, Firefox)</li>
133
+ <li>Enter: <code class="bg-mountain-800 px-2 py-1 rounded">http://192.168.1.100:3000/dashboard</code></li>
134
+ <li>Bookmark the page for quick access</li>
135
+ </ol>
136
+
137
+ <div class="theme-callout rounded-lg p-4 border">
138
+ <p class="font-semibold theme-accent mb-1">💡 Use mDNS for Easier Access</p>
139
+ <p class="text-sm text-mountain-300">
140
+ If your node has a hostname, try: <code class="bg-mountain-800 px-1 rounded">http://yakmesh-node.local:3000</code><br>
141
+ This works on most home networks without remembering the IP address.
142
+ </p>
143
+ </div>
144
+ </div>
145
+
146
+ <!-- Remote Access with Tailscale -->
147
+ <div class="tutorial-card">
148
+ <div class="step-header">
149
+ <span class="step-number">2</span>
150
+ <h2 class="text-xl font-bold">Remote Access with Tailscale</h2>
151
+ </div>
152
+ <p class="text-mountain-300 mb-4">
153
+ <a href="https://tailscale.com" class="theme-accent theme-accent-hover" target="_blank">Tailscale</a>
154
+ creates a secure private network that works from anywhere. Free for personal use.
155
+ </p>
156
+
157
+ <h3 class="font-semibold text-lg mb-3">Install on Your YAKMESH Node</h3>
158
+ <pre class="language-bash mb-4"><code># Install Tailscale (Linux/Raspberry Pi)
159
+ curl -fsSL https://tailscale.com/install.sh | sh
160
+
161
+ # Start and authenticate
162
+ sudo tailscale up
163
+
164
+ # Follow the link to authenticate in your browser
165
+ # Note your Tailscale IP (usually 100.x.x.x)</code></pre>
166
+
167
+ <h3 class="font-semibold text-lg mb-3">Install on Your Phone</h3>
168
+ <ol class="list-decimal list-inside space-y-2 text-mountain-300 mb-4">
169
+ <li>Download Tailscale from App Store (iOS) or Play Store (Android)</li>
170
+ <li>Sign in with the same account you used on your node</li>
171
+ <li>Enable the VPN when prompted</li>
172
+ <li>Your phone is now on the same virtual network as your node!</li>
173
+ </ol>
174
+
175
+ <h3 class="font-semibold text-lg mb-3">Access Your Dashboard Remotely</h3>
176
+ <pre class="language-bash mb-4"><code># Find your node's Tailscale IP
177
+ tailscale ip -4
178
+ # Example: 100.64.0.1
179
+
180
+ # Access from your phone (even on cellular):
181
+ http://100.64.0.1:3000/dashboard</code></pre>
182
+
183
+ <div class="bg-mountain-800 rounded-lg p-4">
184
+ <p class="font-semibold text-white mb-2">✨ Tailscale Benefits</p>
185
+ <ul class="text-sm text-mountain-300 space-y-1">
186
+ <li>• <strong>No port forwarding needed</strong> - works behind any NAT/firewall</li>
187
+ <li>• <strong>End-to-end encrypted</strong> - WireGuard-based security</li>
188
+ <li>• <strong>Always connected</strong> - access from anywhere in the world</li>
189
+ <li>• <strong>Free tier</strong> - up to 100 devices for personal use</li>
190
+ </ul>
191
+ </div>
192
+ </div>
193
+
194
+ <!-- Alternative: ZeroTier -->
195
+ <div class="tutorial-card">
196
+ <div class="step-header">
197
+ <span class="step-number">3</span>
198
+ <h2 class="text-xl font-bold">Alternative: ZeroTier</h2>
199
+ </div>
200
+ <p class="text-mountain-300 mb-4">
201
+ <a href="https://zerotier.com" class="theme-accent theme-accent-hover" target="_blank">ZeroTier</a>
202
+ is another excellent option for creating a virtual private network.
203
+ </p>
204
+
205
+ <h3 class="font-semibold text-lg mb-3">Setup Overview</h3>
206
+ <pre class="language-bash mb-4"><code># Install ZeroTier on your node
207
+ curl -s https://install.zerotier.com | sudo bash
208
+
209
+ # Join a network (create one at my.zerotier.com first)
210
+ sudo zerotier-cli join &lt;network-id&gt;
211
+
212
+ # Check your ZeroTier IP
213
+ sudo zerotier-cli listnetworks</code></pre>
214
+
215
+ <ol class="list-decimal list-inside space-y-2 text-mountain-300">
216
+ <li>Create a free account at <a href="https://my.zerotier.com" class="theme-accent theme-accent-hover" target="_blank">my.zerotier.com</a></li>
217
+ <li>Create a new network and note the Network ID</li>
218
+ <li>Install ZeroTier on your node and phone</li>
219
+ <li>Join the same network on both devices</li>
220
+ <li>Authorize both devices in the ZeroTier dashboard</li>
221
+ <li>Access your node using its ZeroTier IP</li>
222
+ </ol>
223
+ </div>
224
+
225
+ <!-- Install as PWA -->
226
+ <div class="tutorial-card">
227
+ <div class="step-header">
228
+ <span class="step-number">4</span>
229
+ <h2 class="text-xl font-bold">Install as a Phone App (PWA)</h2>
230
+ </div>
231
+ <p class="text-mountain-300 mb-4">
232
+ The YAKMESH dashboard is a Progressive Web App (PWA). Install it on your home screen for an app-like experience.
233
+ </p>
234
+
235
+ <h3 class="font-semibold text-lg mb-3">iOS (Safari)</h3>
236
+ <ol class="list-decimal list-inside space-y-2 text-mountain-300 mb-4">
237
+ <li>Open the dashboard URL in Safari</li>
238
+ <li>Tap the Share button (square with arrow)</li>
239
+ <li>Scroll down and tap <strong>"Add to Home Screen"</strong></li>
240
+ <li>Edit the name if desired, then tap <strong>"Add"</strong></li>
241
+ <li>The YAKMESH icon now appears on your home screen!</li>
242
+ </ol>
243
+
244
+ <h3 class="font-semibold text-lg mb-3">Android (Chrome)</h3>
245
+ <ol class="list-decimal list-inside space-y-2 text-mountain-300 mb-4">
246
+ <li>Open the dashboard URL in Chrome</li>
247
+ <li>Tap the three-dot menu (⋮)</li>
248
+ <li>Tap <strong>"Add to Home screen"</strong> or <strong>"Install app"</strong></li>
249
+ <li>Confirm the installation</li>
250
+ <li>Find YAKMESH in your app drawer!</li>
251
+ </ol>
252
+
253
+ <div class="theme-callout rounded-lg p-4 border">
254
+ <p class="font-semibold theme-accent mb-1">📲 PWA Features</p>
255
+ <ul class="text-sm text-mountain-300 space-y-1">
256
+ <li>• <strong>Full-screen mode</strong> - no browser UI clutter</li>
257
+ <li>• <strong>Offline support</strong> - cached pages work without connection</li>
258
+ <li>• <strong>Push notifications</strong> - get alerts about your node (if enabled)</li>
259
+ <li>• <strong>Fast launch</strong> - opens directly without typing URLs</li>
260
+ </ul>
261
+ </div>
262
+ </div>
263
+
264
+ <!-- What You Can Do Remotely -->
265
+ <div class="tutorial-card">
266
+ <div class="step-header">
267
+ <span class="step-number">5</span>
268
+ <h2 class="text-xl font-bold">What You Can Do Remotely</h2>
269
+ </div>
270
+
271
+ <h3 class="font-semibold text-lg mb-3">Full Access</h3>
272
+ <ul class="space-y-2 text-mountain-300 mb-4">
273
+ <li>✅ <strong>View Dashboard</strong> - See node status, peers, network health</li>
274
+ <li>✅ <strong>Monitor Metrics</strong> - Uptime, bandwidth, storage usage</li>
275
+ <li>✅ <strong>Browse Files</strong> - View shared content via YAK:// links</li>
276
+ <li>✅ <strong>Check Peers</strong> - See connected peers and their status</li>
277
+ <li>✅ <strong>View Logs</strong> - Debug issues remotely</li>
278
+ </ul>
279
+
280
+ <h3 class="font-semibold text-lg mb-3">Management Actions</h3>
281
+ <ul class="space-y-2 text-mountain-300 mb-4">
282
+ <li>✅ <strong>Connect/Disconnect Peers</strong> - Manage peer connections</li>
283
+ <li>✅ <strong>Share Content</strong> - Generate YAK:// links</li>
284
+ <li>✅ <strong>Update Settings</strong> - Change configuration (with API)</li>
285
+ <li>⚠️ <strong>Upload Files</strong> - Limited by mobile connection speed</li>
286
+ <li>❌ <strong>Restart Node</strong> - Requires SSH access (see below)</li>
287
+ </ul>
288
+
289
+ <h3 class="font-semibold text-lg mb-3">SSH for Advanced Control</h3>
290
+ <p class="text-mountain-300 mb-3">
291
+ For full admin access, use an SSH app on your phone:
292
+ </p>
293
+ <ul class="space-y-1 text-mountain-300">
294
+ <li>• <strong>iOS:</strong> Termius, Prompt, Blink Shell</li>
295
+ <li>• <strong>Android:</strong> Termux, JuiceSSH, ConnectBot</li>
296
+ </ul>
297
+ <pre class="language-bash mt-3"><code># Connect via Tailscale IP
298
+ ssh pi@100.64.0.1
299
+
300
+ # Restart YAKMESH
301
+ sudo systemctl restart yakmesh</code></pre>
302
+ </div>
303
+
304
+ <!-- Security Considerations -->
305
+ <div class="tutorial-card">
306
+ <div class="step-header">
307
+ <span class="step-number">6</span>
308
+ <h2 class="text-xl font-bold">Security Considerations</h2>
309
+ </div>
310
+ <p class="text-mountain-300 mb-4">
311
+ Accessing your node remotely adds convenience but requires security awareness.
312
+ </p>
313
+
314
+ <h3 class="font-semibold text-lg mb-3">Best Practices</h3>
315
+ <div class="space-y-4">
316
+ <div class="bg-mountain-800 rounded-lg p-4">
317
+ <p class="font-semibold text-emerald-400 mb-1">✅ DO: Use VPN-based solutions</p>
318
+ <p class="text-sm text-mountain-300">
319
+ Tailscale and ZeroTier encrypt all traffic and don't expose ports to the internet.
320
+ </p>
321
+ </div>
322
+
323
+ <div class="bg-mountain-800 rounded-lg p-4">
324
+ <p class="font-semibold text-emerald-400 mb-1">✅ DO: Enable authentication</p>
325
+ <p class="text-sm text-mountain-300">
326
+ Configure dashboard authentication in <code class="bg-mountain-900 px-1 rounded">yakmesh.config.js</code>:
327
+ </p>
328
+ <pre class="language-javascript text-sm mt-2"><code>auth: {
329
+ enabled: true,
330
+ username: 'admin',
331
+ password: 'your-secure-password',
332
+ }</code></pre>
333
+ </div>
334
+
335
+ <div class="bg-mountain-800 rounded-lg p-4">
336
+ <p class="font-semibold text-emerald-400 mb-1">✅ DO: Use HTTPS when possible</p>
337
+ <p class="text-sm text-mountain-300">
338
+ If accessing over the internet, set up SSL (see <a href="domain-setup.html" class="theme-accent theme-accent-hover">Domain Setup</a> tutorial).
339
+ </p>
340
+ </div>
341
+
342
+ <div class="bg-mountain-800 rounded-lg p-4">
343
+ <p class="font-semibold text-red-400 mb-1">❌ DON'T: Expose ports directly to internet</p>
344
+ <p class="text-sm text-mountain-300">
345
+ Avoid port forwarding 3000 or 9001 without authentication and SSL. Use Tailscale instead.
346
+ </p>
347
+ </div>
348
+
349
+ <div class="bg-mountain-800 rounded-lg p-4">
350
+ <p class="font-semibold text-red-400 mb-1">❌ DON'T: Use public WiFi without VPN</p>
351
+ <p class="text-sm text-mountain-300">
352
+ Always use Tailscale/ZeroTier when on untrusted networks. They encrypt your traffic.
353
+ </p>
354
+ </div>
355
+
356
+ <div class="bg-mountain-800 rounded-lg p-4">
357
+ <p class="font-semibold text-red-400 mb-1">❌ DON'T: Save passwords in browser on shared devices</p>
358
+ <p class="text-sm text-mountain-300">
359
+ Use a password manager instead, and enable biometric lock on your phone.
360
+ </p>
361
+ </div>
362
+ </div>
363
+ </div>
364
+
365
+ <!-- Quick Reference -->
366
+ <div class="tutorial-card">
367
+ <h2 class="text-xl font-bold mb-4">📋 Quick Reference</h2>
368
+ <div class="overflow-x-auto">
369
+ <table class="w-full text-sm">
370
+ <thead>
371
+ <tr class="border-b border-mountain-700">
372
+ <th class="text-left py-2 px-3">Access Method</th>
373
+ <th class="text-left py-2 px-3">Best For</th>
374
+ <th class="text-left py-2 px-3">Setup Difficulty</th>
375
+ </tr>
376
+ </thead>
377
+ <tbody class="text-mountain-300">
378
+ <tr class="border-b border-mountain-800">
379
+ <td class="py-2 px-3 font-semibold">Local WiFi</td>
380
+ <td class="py-2 px-3">Home use, no internet needed</td>
381
+ <td class="py-2 px-3 text-emerald-400">Easy</td>
382
+ </tr>
383
+ <tr class="border-b border-mountain-800">
384
+ <td class="py-2 px-3 font-semibold">Tailscale</td>
385
+ <td class="py-2 px-3">Remote access without port forwarding</td>
386
+ <td class="py-2 px-3 text-emerald-400">Easy</td>
387
+ </tr>
388
+ <tr class="border-b border-mountain-800">
389
+ <td class="py-2 px-3 font-semibold">ZeroTier</td>
390
+ <td class="py-2 px-3">Self-hosted network option</td>
391
+ <td class="py-2 px-3 text-yellow-400">Medium</td>
392
+ </tr>
393
+ <tr class="border-b border-mountain-800">
394
+ <td class="py-2 px-3 font-semibold">Domain + HTTPS</td>
395
+ <td class="py-2 px-3">Public access, sharing links</td>
396
+ <td class="py-2 px-3 text-orange-400">Advanced</td>
397
+ </tr>
398
+ </tbody>
399
+ </table>
400
+ </div>
401
+ </div>
402
+
403
+ <!-- Success -->
404
+ <div class="bg-emerald-900/30 border border-emerald-600 rounded-xl p-6 mb-8">
405
+ <h2 class="text-xl font-bold mb-2 text-emerald-400">🎉 Stay Connected!</h2>
406
+ <p class="text-mountain-300">
407
+ You can now access your YAKMESH node from your phone, whether you're on the couch
408
+ or halfway around the world. Install the PWA for the best experience, and use
409
+ Tailscale for secure remote access without the complexity of port forwarding.
410
+ </p>
411
+ </div>
412
+
413
+ <!-- Navigation Footer -->
414
+ <div class="border-t border-mountain-700 mt-12 pt-8">
415
+ <div class="flex flex-col sm:flex-row gap-4">
416
+ <a href="raspberry-pi.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-emerald-500 transition group">
417
+ <div class="text-xs text-mountain-400 mb-1">← Previous</div>
418
+ <div class="flex items-center gap-2">
419
+ <span class="text-xl">🍓</span>
420
+ <span class="font-semibold group-hover:text-emerald-400">Running on Raspberry Pi</span>
421
+ </div>
422
+ </a>
423
+ <a href="troubleshooting.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-emerald-500 transition group">
424
+ <div class="text-xs text-mountain-400 mb-1">Next →</div>
425
+ <div class="flex items-center gap-2">
426
+ <span class="text-xl">🩺</span>
427
+ <span class="font-semibold group-hover:text-emerald-400">Troubleshooting FAQ</span>
428
+ </div>
429
+ </a>
430
+ </div>
431
+ </div>
432
+
433
+ </div>
434
+ </main>
435
+
436
+ <footer class="docs-footer">
437
+ <p>© 2026 YAKMESH™</p>
438
+ </footer>
439
+
440
+ <script src="../prism.min.js"></script>
441
+ <script src="../prism-bash.min.js"></script>
442
+ <script src="../prism-javascript.min.js"></script>
443
+ <script src="../docs.js"></script>
444
+ </body>
445
+ </html>