chadtmiller.com/knotless

Git hosted in your atproto account, on any stock PDS, fast enough for agents.

git clone knotless://chadtmiller.com/knotless

needs the knotless git helper. set it up

main
29 lines · 1.0 KB Raw History
// An https front for a gateway under test, at the harness's gateway
// hostname, passing every request on to it over plain http.
//
//   node harness/tls-proxy.mjs <cert> <key> <target port>
//
// Prints the port it listens on, and exits when stdin closes.

import { readFileSync } from 'node:fs'
import { createServer } from 'node:https'
import { request } from 'node:http'

const [cert, key, target] = process.argv.slice(2)

const server = createServer({ cert: readFileSync(cert), key: readFileSync(key) }, (req, res) => {
  const upstream = request(
    { host: '127.0.0.1', port: target, path: req.url, method: req.method, headers: req.headers },
    (answer) => {
      res.writeHead(answer.statusCode, answer.headers)
      answer.pipe(res)
    },
  )
  upstream.on('error', () => res.writeHead(502).end())
  req.pipe(upstream)
})

server.listen(0, '127.0.0.1', () => console.log(server.address().port))
process.stdin.on('end', () => process.exit(0))
process.stdin.on('close', () => process.exit(0))
process.stdin.resume()