trok

Accessing your local service should be simple

wakatime home GitHub repo size GitHub commit activity

## Table of Contents - [Features](#features) - [Installation](#installation) - [Usage](#usage) - [Selfhost](#selfhost) ## Features - [x] TCP Tunneling - [ ] UDP Tunneling (planned) - [x] HTTP Tunneling - [ ] HTTPS Tunneling (planned) ## Installation ```sh curl -fsSL https://trok.cloud/install.sh | sh ``` #### Nix ```nix # If you want to quickly test trok nix run github:tuxdotrs/trok ``` #### Flake ```nix # Add to your flake inputs trok = { url = "github:tuxdotrs/trok"; inputs.nixpkgs.follows = "nixpkgs"; }; # Add this in your nixos config environment.systemPackages = [ inputs.trok.packages.${system}.default ]; ``` ## Usage Start a TCP tunnel: ```sh trok tcp PORT_NUMBER ``` Example: ```sh trok tcp 3000 ``` This will expose your local service running on port `3000` to a public endpoint via the `trok` server. ## Selfhost You can host your own `trok` server with NixOS: ```nix # Add to your flake inputs trok = { url = "github:tuxdotrs/trok"; inputs.nixpkgs.follows = "nixpkgs"; }; # Add this in your nixos config {inputs, ...}: { imports = [ inputs.trok.nixosModules.default ]; tux.services.trok = { enable = true; host = "0.0.0.0"; port = 1337; openFirewall = true; user = "trok"; group = "trok"; }; } ``` Once deployed, your `trok` server will be ready to handle tunneling requests from clients.