Kieran's opinionated (and probably slightly dumb) nix config
README.md

Bore#

screenshot

Bore is a lightweight wrapper around frp which provides a dashboard and a nice gum based cli. It supports HTTP, TCP, and UDP tunneling. If you would like to run this in your own nix flake then simplify vendor this folder and ./modules/home/bore and import the folders into the appropriate home manager and nixos configurations.

Client Configuration#

atelier = {
    bore = {
        enable = true;
        authTokenFile = osConfig.age.secrets.bore.path
    };
}

and be sure to have a definition for your agenix secret in the osConfig as well:

age = {
    identityPaths = [
        "path/to/ssh/key"
    ];
    secrets = {
        bore = {
            file = ./path/to/bore.age;
            owner = "username";
        };
    };
}

Server Configuration#

For TCP and UDP tunneling support, configure the server with allowed port ranges:

atelier.services.frps = {
    enable = true;
    domain = "bore.dunkirk.sh";
    authTokenFile = config.age.secrets.bore.path;
    allowedTCPPorts = [ 20000 20001 20002 20003 20004 ];
    allowedUDPPorts = [ 20000 20001 20002 20003 20004 ];
};

The secret file is just a oneline file with the key in it. If you do end up deploying this feel free to email me and let me know! I would love to hear about your setup!