whatisgithub

What is sish?

antoniomika/sish — explained in plain English

Analysis updated 2026-06-26

4,626GoAudience · ops devopsComplexity · 3/5Setup · moderate

In one sentence

sish is a self-hostable SSH tunneling tool that exposes local services to the public internet using only the standard ssh command, no custom client, no router configuration, no third-party dependency.

Mindmap

mindmap
  root((sish))
    What it does
      SSH tunneling
      Local to public internet
      Self-hosted ngrok
    How it works
      Standard SSH command
      No custom client
      No router config
    Features
      HTTPS web tunnels
      Raw TCP tunnels
      SSH key access control
      SNI TLS routing
    Use cases
      Share local dev app
      Expose home server
      Team tunneling infra
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Share a local web app with a client or teammate via a public HTTPS URL without deploying it to a server

USE CASE 2

Expose a TCP service such as a database or local SSH server through a secure tunnel for remote access

USE CASE 3

Run your own tunneling infrastructure instead of depending on a commercial service like ngrok or Cloudflare Tunnel

USE CASE 4

Give multiple developers individual public subdomains that each point to their own local development machine

What is it built with?

GoDockerSSH

How does it compare?

antoniomika/sishnginx-proxy/docker-gengoogle/go-cmp
Stars4,6264,6254,630
LanguageGoGoGo
Setup difficultymoderatemoderateeasy
Complexity3/53/52/5
Audienceops devopsops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Self-hosting requires a VPS with a domain name pointed at it and Docker, the connection itself requires only the standard ssh command already on every Mac and Linux system.

So what is it?

sish is a tool that lets you expose a service running on your local computer to the public internet using SSH, the same protocol used for secure remote server access. The idea is similar to commercial tunneling services: you run something on your own machine, and sish gives you a publicly accessible URL or port without you needing to configure your router or open firewall rules. The difference is that sish is open source and designed to be self-hosted on your own server, so you are not dependent on a third-party service. Connecting requires no custom software. You use the standard ssh command that ships with every Mac, Linux, and most Windows systems. A single command like "ssh -R 80:localhost:8080 yourserver.com" is enough to create a public HTTPS address pointing at your local app. You can also expose raw TCP services, not just web apps, which makes it useful for things like sharing a local SSH server, a database port, or any other network service. For operators running sish for multiple users, the tool includes access control options: connections can be restricted by SSH key, random ports can be enforced to prevent conflicts, and private TCP aliases can be created that are only reachable through authenticated SSH connections rather than being publicly exposed. It also supports TLS routing by SNI, which means it can forward encrypted traffic to different backends without decrypting it. sish is written in Go and is distributed as Docker images and pre-built binaries. The self-hosting setup in the README uses Docker and requires a domain name pointed at the server. A managed version is available at tuns.sh for users who want to try the tool without running their own server. Documentation covering forwarding types, CLI options, and an FAQ is published at docs.ssi.sh.

Copy-paste prompts

Prompt 1
I have sish running on my server at example.com. Show me the SSH command that exposes my local port 3000 app as a public HTTPS URL.
Prompt 2
How do I deploy sish on a VPS using Docker so multiple developers can each get their own public subdomain for local development?
Prompt 3
How do I restrict sish to only allow SSH connections from specific keys and set up private TCP aliases that are not publicly exposed?

Frequently asked questions

What is sish?

sish is a self-hostable SSH tunneling tool that exposes local services to the public internet using only the standard ssh command, no custom client, no router configuration, no third-party dependency.

What language is sish written in?

Mainly Go. The stack also includes Go, Docker, SSH.

How hard is sish to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is sish for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.