Exposing local ports on a subdomain over SSH
Go to file
Dreaded_X 3c29377013
All checks were successful
Build and deploy / build (push) Successful in 7m18s
Trigger reconcile webhook once build is done
2025-04-23 21:00:02 +02:00
.assets Added README 2025-04-17 13:58:52 +02:00
.cargo Set rust toolchain 2025-04-18 15:30:38 +02:00
.gitea/workflows Trigger reconcile webhook once build is done 2025-04-23 21:00:02 +02:00
helper Updated authelia acl helper 2025-04-20 00:14:20 +02:00
manifests Make ldap search filter configurable 2025-04-22 00:42:56 +02:00
src Clarified password env variable missing error 2025-04-22 10:47:18 +02:00
.dockerignore Set rust toolchain 2025-04-18 15:30:38 +02:00
.gitignore Load env variables from .env file 2025-04-05 02:44:58 +02:00
.pre-commit-config.yaml Check for unused crates before commit 2025-04-15 16:23:27 +02:00
.rustfmt.toml Reformat imports properly 2025-04-16 03:00:07 +02:00
.sops.yaml Added build action and kubernetes manifests 2025-04-15 02:50:31 +02:00
.typos.toml Implemented initial user interface 2025-04-10 15:05:18 +02:00
Cargo.lock Make ldap search filter configurable 2025-04-22 00:42:56 +02:00
Cargo.toml Make ldap search filter configurable 2025-04-22 00:42:56 +02:00
Dockerfile Update rust 1.85 -> 1.86 2025-04-18 15:56:49 +02:00
LICENSE Added LICENSE 2025-04-18 11:44:41 +02:00
README.md Added suggestion to enable quiet mode for ssh client 2025-04-20 00:14:23 +02:00
rust-toolchain.toml Update rust 1.85 -> 1.86 2025-04-18 15:56:49 +02:00

Siranga

Siranga allows users to quickly create new subdomains that tunnel to local ports on their machine over SSH.

Screenshot of the Siranga user interface

Features

  • Works over SSH, no need to install any other tools to forwards ports
  • Using ForwardAuth tunnels can be
    • Private, only accessible by you
    • Protected, accessible by all logged in users
    • Public, accessible for everyone
  • SSH keys are pulled from LDAP, so no separate upload is required.
  • Provides a user interface for
    • Managing access
    • Renaming of tunnels
    • Network statistics

Siranga does NOT provide HTTPS support, it expects to run behind a reverse proxy.

Installation

Siranga is intended to be deployed using Kubernetes, example manifest files are provided in manifests. This deployment runs in a cluster with Authelia, LLDAP, and Traefik.

User guide

A tunnel can be opened using the following command:

ssh <username>@<host> [-p <ssh port>] -tq -R <local port>:localhost:<local port>

This will open a new tunnel with a randomly generated name, you can specify a name for the tunnel by instead using -R <name>:<local port>:localhost:<local port>. Multiple tunnels can be opened by repeating the -R option. Once connected the tunnels can be managed using the interface.

By appending -- --help you can view the available command line options.

Tip

To make connecting slightly easier I recommend adding the following to ~/.ssh/config:

Host tunnel
    HostName <host>
    Port <ssh port>
    User <username>
    RequestTTY yes
    LogLevel QUIET

You can now connect with ssh tunnel -R <local port>:localhost:<local port>.