An open source serveo/ngrok alternative.
Builds are made automatically for each commit to the repo and are pushed to Dockerhub. Builds are tagged using a commit sha,
branch name, tag, latest if released on main. You can find a list here.
Each release builds separate sish
binaries that can be downloaded from here for various OS/archs. Feel free to either use the automated binaries or to build your own. If you submit a PR, images are
not built by default and will require a retag from a maintainer to be built.
-
Pull the Docker image
docker pull antoniomika/sish:latest
-
Run the image
-
docker run -itd --name sish \ -v ~/sish/ssl:/ssl \ -v ~/sish/keys:/keys \ -v ~/sish/pubkeys:/pubkeys \ --net=host antoniomika/sish:latest \ --ssh-address=:22 \ --http-address=:80 \ --https-address=:443 \ --https=true \ --https-certificate-directory=/ssl \ --authentication-keys-directory=/pubkeys \ --private-keys-directory=/keys \ --bind-random-ports=false
-
-
SSH to your host to communicate with sish
ssh -p 2222 -R 80:localhost:8080 ssi.sh
You can also use Docker Compose to setup your sish instance. This includes taking care of SSL via Let's Encrypt for you. This uses the adferrand/dnsrobocert container to handle issuing wildcard certifications over DNS. For more information on how to use this, head to that link above. Generally, you can deploy your service like so:
docker-compose -f deploy/docker-compose.yml up -d
The domain and DNS auth info in deploy/docker-compose.yml
and deploy/le-config.yml
should be updated
to reflect your needs. You will also need to create a symlink that points to your domain's
Let's Encrypt certificates like:
ln -s /etc/letsencrypt/live/<your domain>/fullchain.pem deploy/ssl/<your domain>.crt
ln -s /etc/letsencrypt/live/<your domain>/privkey.pem deploy/ssl/<your domain>.key
Careful: the symlinks need to point to /etc/letsencrypt
, not a relative path. The symlinks will
not resolve on the host filesystem, but they will resolve inside of the sish container because it mounts
the letsencrypt files in /etc/letsencrypt, not ./letsencrypt.
I use these files in my deployment of ssi.sh
and have included them here for consistency.