Mirror of tuxdotrs/trok
- Go 41.5%
- TypeScript 35.6%
- Nix 13.5%
- HTML 5.4%
- Shell 2.7%
- Other 1.3%
| .github/workflows | ||
| cmd | ||
| internal | ||
| nix | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
trok
Accessing your local service should be simple
Table of Contents
Features
- TCP Tunneling
- UDP Tunneling (planned)
- HTTP Tunneling
- HTTPS Tunneling (planned)
Installation
curl -fsSL https://trok.cloud/install.sh | sh
Nix
# If you want to quickly test trok
nix run github:tuxdotrs/trok
Flake
# 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:
trok tcp PORT_NUMBER
Example:
trok tcp 3000
Selfhosted Server:
trok tcp 3000 -s SERVER_URL
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:
# 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
];
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.