open and managed web services leveraging ssh
GET STARTED
The secret ingredient to all our services is how we enable users publish content without needing to install anything. We accomplish this with the SSH tools (rsync, sftp, sshfs) you already have installed on your system.

tuns

https/wss/tcp tunnels to localhost using only SSH.

pages

A static site hosting platform using SSH for site deployments.

prose

A blog platform using SSH for content management.

pastes

Upload code snippets using rsync, scp, and sftp.

rss-to-email

An rss email notification service using SSH.

docker registry

A private docker image registry using SSH for authentication.

Access localhost using https

If you have a local webserver on localhost:8000, activate an SSH tunnel to us:
ssh -R dev:80:localhost:8000 tuns.sh
Now your local dev server is available on the web: https://{user}-dev.tuns.sh

Deploy a site with a single command

Upload your static site to us:
rsync -rv ./public/ pgs.sh:/mysite/
Now your site is available with TLS handled for you: https://{user}-mysite.pgs.sh
We also automatically handle TLS for your custom domains!

Publish blog articles with a single command

Create your first post, (e.g. hello-world.md):
# hello world!

This is my first blog post.

Cya!
Upload the post to us:
scp hello-world.md prose.sh:/
Congrats! You just published a blog article, accessible here: https://{user}.prose.sh/hello-world

Easily share code snippets

Pipe some stdout to us:
git diff | ssh pastes.sh changes.patch
And instantly share your code snippets: https://{user}.pastes.sh/changes.patch

Receive email notifications for your favorite rss feeds

Create a blogs.txt file:
=: email rss@myemail.com
=: digest_interval 1day
=> https://pico.prose.sh/rss
=> https://erock.prose.sh/rss
Then upload it to us:
scp blogs.txt feeds.pico.sh:/
After the daily interval has been reached, you will receive an email with your feeds!

Push and pull docker images using SSH

Open a tunnel to our docker registry:
ssh -L 1338:localhost:80 -N imgs.sh
Now you are authenticated! You are now able to push and pull like normal:
docker push localhost:1338/alpine:latest
docker pull localhost:1338/alpine:latest
All images sent to us are private and scoped to your user automatically.

Ready to join?

GET STARTED