diff --git a/notes.md b/notes.md index 2070e2c..8a439c1 100644 --- a/notes.md +++ b/notes.md @@ -8,15 +8,25 @@ setups. * libdns integration * Add 3rd-party tokens for controlling DNS + * Maybe add a DNS/Domains page and require users to add domains there before + they can use them for tunnels. This creates a natural place to explain what + is wrong when domain stuff breaks. * Built-in static file hosting * Client determines which directories are exposed * Password-protected tunnels +* TCP tunnels + * Allow client to specify binding to addresses other than 127.0.0.1. +* IPv6 # Potential features * Built-in GemDrive * Allows web UI to browse files on the clients +* WireGuard hub +* Create tunnels by full URL; not just domains. Allows things like sharing + specific files and having multiple servers behind a single domain. +* Allow multiple upstreams for load balancing/HA. # Tunnel variations diff --git a/todo.md b/todo.md index 7f5c6d0..552c23a 100644 --- a/todo.md +++ b/todo.md @@ -1,16 +1,10 @@ -* I don't think it's properly closing connections. Browser are hanging on - some requests, possibly because it's HTTP/1.1 and hitting the max concurrent - requests. -* Implement a custom SSH server in Go and connect the sockets directly? -* Use HTML redirects for showing errors then refreshing. Maybe for polling - after login and submitting a new tunnel too. -* Save next port in db * On unknown page, redirect to referer if possible -* Properly pick unused ports for tunnels * Apparently multiple tunnels can bind to a single server port. Looks like maybe only the first one is used to actually tunnel to the clients? -* Maybe add a DNS/Domains page and require users to add domains their before - they can use them for tunnels. This creates a natural place to explain what - is wrong when domain stuff breaks. * Responses to unauthorized requests are leaking information about the current tunnels through the genereated CSS. +* CSS-only delete buttons don't show up as targets for links like Vimium + * Wrapping labels in buttons and adding a bit of CSS seems to do the trick. + * Eh buttons aren't actually doing anything apparently (when hit by + keyboard). +* Set Cache-Control Max-Age