Radoku
Documentation
Dashboard
    Authentication
    HTTP and HTTPS tunnels
    TCP and TLS tunnels
    Serving files through a tunnel
    Configuration

Authentication

Radoku client uses authentication token to connect the client usage to a Radoku account. Authentication tokens can be generated using the dashboard at https://iris.radoku.com/tokens. Radoku client reads the token from the configuration file.

Radoku client can be started without the token in the configuration file. The client then asks for the user to visit an URL to generate the authentication token. The generated authentication token is then automatically sent to the client and saved to the configuration file.

HTTP and HTTPS tunnels

A tunnel with a HTTP or HTTPS target can be started with subcommand http. The target URL protocol specifies what protocol to use when connecting to the target server.

The following example starts a tunnel to a local HTTP server at port 9000:

radoku http http://localhost:9000

The following example starts a tunnel to a HTTPS server at port 9001:

radoku http https://localhost:9001

When a tunnel has been started Radoku client will output a message with the public HTTP and HTTPS URLs that can be used to connect to the target server. The message looks like this:

Tunneling http://<subdomain>.radoku.com to https://localhost:9000/
Tunneling https://<subdomain>.radoku.com to https://localhost:9000/

Arguments for http

--verify-target-certificate, -v

Radoku client does not verify target HTTPS server certificate by default. You can enable certificate verification with --verify-target-certificate.

Example:

radoku http https://localhost:9001 --verify-target-certificate

TCP and TLS tunnels

A tunnel with a TCP or TLS target can be started with subcommand tcp. The target URL protocol specifies what protocol to use when connecting to the target server.

The following example starts a tunnel to a local TCP server at port 9000:

radoku tcp tcp://localhost:9000

The following example starts a tunnel to a TLS server at port 9001:

radoku tcp tls://localhost:9001

When a tunnel has been started Radoku client will output a message with the public host and port that can be used to connect to the target server. The message looks like this:

Tunneling <subdomain>.radoku.com:<port> to localhost:9000

Serving files through a tunnel

A tunnel that serves files from the local computer can be started with subcommand files.

The following example starts a tunnel serving files from the current directory:

radoku files .

The following example starts a tunnel serving files from the C: drive when on Windows:

radoku files C:\

When a tunnel has been started Radoku client will output a message with the public HTTP and HTTPS URLs that can be used to browse the files. The message looks like this:

Serving http://<subdomain>.radoku.com from <directory>
Serving https://<subdomain>.radoku.com from <directory>

Arguments for files

--disable-directory-listing, -d

Radoku client responds with directory content listing by default when directories are accessed. You can disable directory content listing with --disable-directory-listing.

Example:

radoku files . --disable-directory-listing

Configuration

Radoku client uses configuration file from the following location based on the platform:

Platform File path
Linux /home/alice/.config/radoku/radoku.yaml
Windows C:\Users\Alice\AppData\Roaming\radoku\radoku\config\radoku.yaml
macOS /Users/Alice/Library/Application Support/com.radoku.radoku/radoku.yaml

Used configuration file can be overridden with command line argument configuration:

radoku --configuration radoku.yaml

or c for short:

radoku -c radoku.yaml

The file will be created if it does not exist. Default configuration file has the following contents:

---
authenticationToken: ~
tunnels: {}

Example configuration file with authentication token value of exampleTokenValue:

---
authenticationToken: exampleTokenValue
tunnels: {}

Example configuration with multiple tunnels:

------
authenticationToken: ~
tunnels:
  http-tunnel-name:
    type: http
    targetUrl: http://localhost:9000
    verifyTargetCertificate: false

  https-tunnel-name:
    type: http
    targetUrl: https://localhost:9001
    verifyTargetCertificate: false

  tcp-tunnel-name:
    type: tcp
    targetUrl: tcp://localhost:9000

  tls-tunnel-name:
    type: tcp
    targetUrl: tls://localhost:9001

  files-tunnel-name:
    type: files
    rootDirectory: /home/user
    disableDirectoryListing: false

Tunnels in configuration can be started using the tunnels subcommand.

The following example starts all tunnels in the above configuration:

radoku tunnels http-tunnel-name https-tunnel-name tcp-tunnel-name tls-tunnel-name files-tunnel-name

The maximum number of tunnels that can be started at one time with Radoku client is 256.