1# pico.sh
2
3The ultimate `ssh` powered services for developers
4
5> [!IMPORTANT]\
6> Read our docs at [pico.sh](https://pico.sh).
7
8Open source and managed web services leveraging `ssh`.
9
10The secret ingredient to all our services is how we let users publish content
11without needing to install anything. We accomplish this with the `ssh` tools you
12already have installed on your system.
13
14Want to publish a blog post? Use rsync, scp, or sftp. Want to publish a website?
15Use rsync, scp, or sftp. Want to share a code snippet with a colleague? Use
16rsync, scp, or sftp. Hopefully you see the trend.
17
18- [pages](https://pico.sh/pgs): A static site hosting platform using `ssh` for
19 site deployments. `ssh`.
20- [tuns](https://pico.sh/tuns): https/wss/tcp tunnels to localhost using only
21- [pipe](https://pipe.pico.sh): Authenticated `*nix` pipes over `ssh`
22- [prose](https://pico.sh/prose): A blog platform using `ssh` for content
23 management.
24- [rss-to-email](https://pico.sh/feeds): An RSS email notification service using `ssh`.
25- [pastes](https://pico.sh/pastes): Upload code snippets using rsync, scp, and
26 sftp.
27
28## Deploy a site with a single command
29
30Upload your static site to us:
31
32```bash
33rsync -rv ./public/ pgs.sh:/mysite/
34```
35
36Now your site is available with TLS handled for you:
37https://{user}-mysite.pgs.sh We also automatically handle TLS for your custom
38domains!
39
40## Access localhost using https
41
42If you have a local webserver on localhost:8000, activate an `ssh` tunnel to us:
43
44```bash
45ssh -R dev:80:localhost:8000 tuns.sh
46```
47
48Now your local dev server is availble on the web: https://dev.tuns.sh
49
50## Authenticated *nix pipes over ssh
51
52Have one terminal listen for an event and another terminal send the event:
53
54```bash
55# term 1
56ssh pipe.pico.sh sub mytopic
57# term 2
58echo "Hello world!" | ssh pipe.pico.sh pub mytopic
59```
60
61The `sub` will receive "Hello world!"
62
63## Publish blog articles with a single command
64
65Create your first post, (e.g. `hello-world.md`):
66
67```md
68# hello world!
69
70This is my first blog post.
71
72Cya!
73```
74
75Upload the post to us:
76
77```bash
78scp hello-world.md prose.sh:/
79```
80
81Congrats! You just published a blog article, accessible here:
82https://{user}.prose.sh/hello-world
83
84## Easily share code snippets
85
86Pipe some stdout to us:
87
88```bash
89git diff | ssh pastes.sh changes.patch
90```
91
92And instantly share your code snippets: https://{user}.pastes.sh/changes.patch
93
94## Receive email notifications for your favorite rss feeds
95
96Create a blogs.txt file:
97
98```
99=: email rss@myemail.com
100=: cron 0 13 * * *
101=> https://blog.pico.sh/rss
102=> https://bower.sh/rss
103```
104
105Then upload it to us:
106
107```bash
108scp blogs.txt feeds.pico.sh:/
109```
110
111After the daily interval has been reached, you will receive an email with your
112feeds!
113
114## Ready to join?
115
116https://pico.sh/getting-started