diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-11-19 11:55:32 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-11-19 15:43:29 +0000 |
| commit | fa065ad128882755f2a988d6203b59a2ab5e38ff (patch) | |
| tree | e8326de70a6e6ea56b5bf4250e0a00a3cda4afed /templates | |
| parent | 98c6fa4bfa897ff0b8f9c95ea698d4d065b5e9f3 (diff) | |
add landing page and nostr-relay-builder relay on same port
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/landing.html | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/templates/landing.html b/templates/landing.html new file mode 100644 index 0000000..84be8ad --- /dev/null +++ b/templates/landing.html | |||
| @@ -0,0 +1,151 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html lang="en"> | ||
| 3 | <head> | ||
| 4 | <meta charset="UTF-8"> | ||
| 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| 6 | <title>{relay_name}</title> | ||
| 7 | <style> | ||
| 8 | * {{ | ||
| 9 | margin: 0; | ||
| 10 | padding: 0; | ||
| 11 | box-sizing: border-box; | ||
| 12 | }} | ||
| 13 | body {{ | ||
| 14 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; | ||
| 15 | line-height: 1.6; | ||
| 16 | background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | ||
| 17 | color: #333; | ||
| 18 | min-height: 100vh; | ||
| 19 | display: flex; | ||
| 20 | align-items: center; | ||
| 21 | justify-content: center; | ||
| 22 | padding: 20px; | ||
| 23 | }} | ||
| 24 | .container {{ | ||
| 25 | max-width: 800px; | ||
| 26 | background: white; | ||
| 27 | padding: 40px; | ||
| 28 | border-radius: 12px; | ||
| 29 | box-shadow: 0 20px 60px rgba(0,0,0,0.3); | ||
| 30 | }} | ||
| 31 | h1 {{ | ||
| 32 | color: #667eea; | ||
| 33 | margin-bottom: 10px; | ||
| 34 | font-size: 2.5em; | ||
| 35 | }} | ||
| 36 | h2 {{ | ||
| 37 | color: #764ba2; | ||
| 38 | margin-top: 30px; | ||
| 39 | margin-bottom: 15px; | ||
| 40 | font-size: 1.5em; | ||
| 41 | border-bottom: 2px solid #667eea; | ||
| 42 | padding-bottom: 10px; | ||
| 43 | }} | ||
| 44 | .subtitle {{ | ||
| 45 | color: #666; | ||
| 46 | margin-bottom: 30px; | ||
| 47 | font-size: 1.1em; | ||
| 48 | }} | ||
| 49 | .info-grid {{ | ||
| 50 | display: grid; | ||
| 51 | grid-template-columns: 140px 1fr; | ||
| 52 | gap: 15px; | ||
| 53 | margin: 20px 0; | ||
| 54 | }} | ||
| 55 | .info-label {{ | ||
| 56 | font-weight: 600; | ||
| 57 | color: #555; | ||
| 58 | }} | ||
| 59 | .info-value {{ | ||
| 60 | color: #333; | ||
| 61 | }} | ||
| 62 | code {{ | ||
| 63 | background: #f4f4f4; | ||
| 64 | padding: 3px 8px; | ||
| 65 | border-radius: 4px; | ||
| 66 | font-family: 'Courier New', monospace; | ||
| 67 | color: #667eea; | ||
| 68 | font-size: 0.9em; | ||
| 69 | }} | ||
| 70 | ul {{ | ||
| 71 | margin: 15px 0; | ||
| 72 | padding-left: 30px; | ||
| 73 | }} | ||
| 74 | li {{ | ||
| 75 | margin: 8px 0; | ||
| 76 | }} | ||
| 77 | .feature-box {{ | ||
| 78 | background: #f9f9f9; | ||
| 79 | padding: 20px; | ||
| 80 | border-radius: 8px; | ||
| 81 | margin: 15px 0; | ||
| 82 | border-left: 4px solid #667eea; | ||
| 83 | }} | ||
| 84 | .footer {{ | ||
| 85 | margin-top: 40px; | ||
| 86 | padding-top: 20px; | ||
| 87 | border-top: 1px solid #eee; | ||
| 88 | text-align: center; | ||
| 89 | color: #999; | ||
| 90 | font-size: 0.9em; | ||
| 91 | }} | ||
| 92 | .badge {{ | ||
| 93 | display: inline-block; | ||
| 94 | background: #667eea; | ||
| 95 | color: white; | ||
| 96 | padding: 4px 12px; | ||
| 97 | border-radius: 12px; | ||
| 98 | font-size: 0.85em; | ||
| 99 | margin-right: 8px; | ||
| 100 | }} | ||
| 101 | </style> | ||
| 102 | </head> | ||
| 103 | <body> | ||
| 104 | <div class="container"> | ||
| 105 | <h1>{relay_name}</h1> | ||
| 106 | <p class="subtitle">{relay_description}</p> | ||
| 107 | |||
| 108 | <h2>📡 Connection Information</h2> | ||
| 109 | <div class="info-grid"> | ||
| 110 | <div class="info-label">Domain:</div> | ||
| 111 | <div class="info-value"><code>{domain}</code></div> | ||
| 112 | |||
| 113 | <div class="info-label">WebSocket:</div> | ||
| 114 | <div class="info-value"><code>ws://{bind_address}/</code></div> | ||
| 115 | |||
| 116 | <div class="info-label">HTTP:</div> | ||
| 117 | <div class="info-value"><code>http://{bind_address}/</code></div> | ||
| 118 | </div> | ||
| 119 | |||
| 120 | <h2>🔌 Supported NIPs</h2> | ||
| 121 | <div class="feature-box"> | ||
| 122 | <ul> | ||
| 123 | <li><span class="badge">NIP-01</span> Basic protocol flow and event structure</li> | ||
| 124 | <li><span class="badge">NIP-11</span> Relay information document</li> | ||
| 125 | <li><span class="badge">NIP-34</span> Git repository events and announcements</li> | ||
| 126 | </ul> | ||
| 127 | </div> | ||
| 128 | |||
| 129 | <h2>🎯 GRASP Features</h2> | ||
| 130 | <div class="feature-box"> | ||
| 131 | <ul> | ||
| 132 | <li><strong>Repository Announcements</strong> (kind 30617) - Declare Git repositories with validation</li> | ||
| 133 | <li><strong>Repository State</strong> (kind 30618) - Track repository state changes</li> | ||
| 134 | <li><strong>NIP-34 Validation</strong> - Automatic validation of repository events</li> | ||
| 135 | <li><strong>Git HTTP Backend</strong> - Coming soon in Phase 2</li> | ||
| 136 | </ul> | ||
| 137 | </div> | ||
| 138 | |||
| 139 | <h2>📚 Documentation</h2> | ||
| 140 | <p>For more information about GRASP (Git Relays Authorized via Signed-Nostr Proofs):</p> | ||
| 141 | <ul> | ||
| 142 | <li><a href="https://gitworkshop.dev/danconwaydev.com/grasp/01.md" target="_blank">GRASP-01 Specification</a></li> | ||
| 143 | <li><a href="https://github.com/nostr-protocol/nips/blob/master/34.md" target="_blank">NIP-34: Git Stuff</a></li> | ||
| 144 | </ul> | ||
| 145 | |||
| 146 | <div class="footer"> | ||
| 147 | <p>Powered by <strong>ngit-grasp</strong> with <strong>nostr-relay-builder</strong></p> | ||
| 148 | </div> | ||
| 149 | </div> | ||
| 150 | </body> | ||
| 151 | </html> \ No newline at end of file | ||