From 5aed19564cd79f6eb6aab3fa6d4c3134fcc18512 Mon Sep 17 00:00:00 2001 From: jknapp Date: Mon, 5 Jan 2026 20:33:03 -0800 Subject: [PATCH] Add index landing page for relay server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add index.html explaining what MacroPad Relay is - Add /ping endpoint for container health checks - Add route for index page 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- macropad-relay/public/index.html | 174 +++++++++++++++++++++++++++++++ macropad-relay/src/server.ts | 10 ++ 2 files changed, 184 insertions(+) create mode 100644 macropad-relay/public/index.html diff --git a/macropad-relay/public/index.html b/macropad-relay/public/index.html new file mode 100644 index 0000000..ddf7dac --- /dev/null +++ b/macropad-relay/public/index.html @@ -0,0 +1,174 @@ + + + + + + MacroPad Relay + + + +
+ +

MacroPad Relay

+

Secure remote access to your MacroPad

+ +
+

What is this?

+

+ MacroPad Relay enables secure remote access to your MacroPad desktop application + from anywhere. Control your macros from your phone or tablet over HTTPS, + even when you're away from your local network. +

+
+ +
+
+ 🔒 +
+

Secure Connection

+

Password-protected sessions with encrypted WebSocket communication.

+
+
+
+ 🌐 +
+

Access Anywhere

+

Use your macros from any device with a web browser.

+
+
+
+ +
+

Real-time Sync

+

Changes sync instantly between your desktop and mobile devices.

+
+
+
+ + + + +
+ + diff --git a/macropad-relay/src/server.ts b/macropad-relay/src/server.ts index ae541c6..b0f94d1 100644 --- a/macropad-relay/src/server.ts +++ b/macropad-relay/src/server.ts @@ -55,6 +55,16 @@ export function createServer() { }); }); + // Ping endpoint for container health checks + app.get('/ping', (req, res) => { + res.json({ status: 'ok' }); + }); + + // Index page + app.get('/', (req, res) => { + res.sendFile(path.join(publicPath, 'index.html')); + }); + // Login page for session app.get('/:sessionId', (req, res) => { const session = sessionManager.getSession(req.params.sessionId);