the server component had a small bug, empty checking the wrong variable before building a list of allowed zones

when using a config without any Fqdns defined this would result in the server refusing the client access to tunnel anything if any zones where about to be used


tup proxies services on the local network to a remote gateway, all traffic between the remote server and the service on the local network is sent through a wireguard tunnel

think of tup as an open source and self-hosted alternative to ngrok and cloudflare tunnel

tupd (the server) can be found at: https://drive.proton.me/urls/GEJM1HT0DW#aOop4p7zxaPA

the tup client can be found at: https://drive.proton.me/urls/63SE9PW020#GFzZrprg9wjZ


I also noticed all file extensions were not inspectable directly in the drive (even though everything is only text files), I apologize for that, I believe transparancy is a very important key factor

I’ve complemented with .diff files generated with diff from GNU diffutils, there are ‘full’ diff files for both tup and tupd (ending with _full.diff), and there is also a diff file for only the changes between tupd-0.5 and tupd-0.6 (tupd-0.6.diff)

the ‘full’ diff files can also be applied to an empty directory with GNU patch like this:

mkdir tupd-0.6
patch --directory=tupd-0.6/ --strip=1 < tupd-0.6_full.diff

Since my project is not uploaded by me to any git service many people didn’t look on how it can be used so I want to give a few examples of the client, more explanations and examples can be found in the README.md and EXAMPLE.md of the client

Syntax: tup [-zone <zone>] [@][host]:[#]<port>

Examples:

tup :8080 this would proxy http://127.0.0.1:8080 onto a random subdomain on default zone, for example: https://xyz123.zone.domain.tld

tup 192.168.1.11:8080 this would proxy http://192.168.1.11:8080 onto a random subdomain on default zone

Syntax: tup -fqdn <domain> [@][host]:[#][@]<port>

Examples:

tup -fqdn sub.domain.tld :8080 this would proxy http://127.0.0.1:8080 directly onto https://sub.domain.tld

tup -fqdn sub.domain.tld 192.168.1.11:@8443 this would proxy https://192.168.1.11:8443 directly onto https://sub.domain.tld, skipping caddy and its tls termination on the server, same as a raw tcp proxy / sni proxy

Syntax: tup -udp|-tcp [rport:][@][host]:<port>

Examples:

tup -udp :27015 this would proxy udp://127.0.0.1:27015 onto a random UDP port on the server

tup -udp 27016:27015 this would proxy udp://127.0.0.1:27015 onto UDP port 27016 on the server

tup -udp 27016:192.168.1.11:27015 this would proxy udp://192.168.1.11:27015 onto UDP port 27016 on the server

tup -tcp :3306 this would proxy tcp://127.0.0.1:3306 onto a random TCP port on the server

I also want to clarify that the code is released with the Unlicense template, dedicating my software to the public domain

  • Shimitar@feddit.it
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 months ago

    Why not publish on github or gitlab? Or setup a gitea/similar website and post it?

    I did so with a few of my small stuff.

    • S_S@lemy.lolOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      5 months ago

      I just like to release it this way, I didn’t have much reason or benefits to releasing it on a git service, hosted or my own

      • Shimitar@feddit.it
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 months ago

        Indeed you are, but if you release it you probably want people to use it, otherwise why release at all? Going github/gitlab way just make that easier.

        You are free to do what you want ofc, just my thoughts.

        • S_S@lemy.lolOP
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          5 months ago

          No problem, your thoughts are welcomed

          I mainly developed it for myself, and sharing it if others want to do what ever they want to do with it, took many hours to just put together all the readmes and examples and cleaning up the code, I understand everyone wants me to release it on some git platform, but I didn’t develop it using any cvs at all and don’t plan to do that either