- commit
- b7d489b
- parent
- 8d2f265
- author
- Eric Bower
- date
- 2024-09-20 03:26:07 +0000 UTC
docs(pubsub): reorg content
1 files changed,
+124,
-46
+124,
-46
1@@ -21,50 +21,34 @@
2
3 <hr />
4
5-<article>
6- <p>
7- The simplest authenticated pubsub system. Send messages through
8- user-defined channels. By default, channels are private to the authenticated
9- ssh user. The default pubsub model is multicast with bidirectional
10- blocking, meaning a publisher (<code>pub</code>) will send its message to all
11- subscribers (<code>sub</code>) on a channel. Further, both <code>pub</code> and
12- <code>sub</code> will wait for at least one event to be sent or received on the channel.
13- </p>
14-
15- <blockquote>This service is undergoing active development, expect bugs and restarts</blockquote>
16-
17+<article class="flex flex-col gap-2">
18 <div>
19- <h2 class="text-xl">Examples</h2>
20-
21- <p>Simple output pub/sub</p>
22- <img src="/send-output.gif" />
23-
24- <p>Send a file</p>
25- <img src="/send-file.gif" />
26-
27- <p>Multiple subs</p>
28- <img src="/multi-sub.gif" />
29-
30- <p>Multiple pubs</p>
31- <img src="/multi-pub.gif" />
32-
33- <p>Multiple pubs and subs</p>
34- <img src="/multi-pub-sub.gif" />
35-
36- <p>Pipe based chat</p>
37- <img src="/pipe-chat.gif" />
38-
39- <p>Pipe based command output</p>
40- <img src="/pipe-cmd-output.gif" />
41+ <p>
42+ The simplest authenticated pubsub system. Send messages through
43+ user-defined channels. By default, channels are private to the authenticated
44+ ssh user. The default pubsub model is multicast with bidirectional
45+ blocking, meaning a publisher (<code>pub</code>) will send its message to all
46+ subscribers (<code>sub</code>) on a channel. Further, both <code>pub</code> and
47+ <code>sub</code> will wait for at least one event to be sent or received on the channel.
48+ </p>
49
50- <p>Pipe based reverse shell</p>
51- <img src="/pipe-reverse-shell.gif" />
52+ <blockquote>This service is undergoing active development, expect bugs and restarts</blockquote>
53 </div>
54
55 <div>
56 <h2 class="text-xl">A basic API</h2>
57 <pre>ssh {{.Site.Domain}} sub mykey</pre>
58 <pre>echo "hello world!" | ssh {{.Site.Domain}} pub mykey</pre>
59+
60+ <details>
61+ <summary>Demo</summary>
62+ <script
63+ src="https://asciinema.org/a/52qRVi77CTjfAoZj9IaGMygDr.js"
64+ id="asciicast-52qRVi77CTjfAoZj9IaGMygDr"
65+ async="true"
66+ data-theme="dracula"
67+ ></script>
68+ </details>
69 </div>
70
71 <div>
72@@ -77,6 +61,64 @@
73 <h2 class="text-xl">File sharing</h2>
74 <pre>cat doc.md | ssh {{.Site.Domain}} pub thedoc</pre>
75 <pre>ssh {{.Site.Domain}} sub thedoc > ./important.md</pre>
76+
77+ <details>
78+ <summary>Demo</summary>
79+ <script
80+ src="https://asciinema.org/a/TW0chshVssDj35hvr9NKNC2CK.js"
81+ id="asciicast-TW0chshVssDj35hvr9NKNC2CK"
82+ async="true"
83+ data-theme="dracula"
84+ ></script>
85+ </details>
86+ </div>
87+
88+ <div>
89+ <h2 class="text-xl">Pipe command output</h2>
90+ <p>Send command output through our <code>pipe</code> command.</p>
91+
92+ <details>
93+ <summary>Demo</summary>
94+ <script
95+ src="https://asciinema.org/a/7e3SVyxKa31D0iZ4X5PJm8b6E.js"
96+ id="asciicast-7e3SVyxKa31D0iZ4X5PJm8b6E"
97+ async="true"
98+ data-theme="dracula"
99+ ></script>
100+ </details>
101+ </div>
102+
103+ <div>
104+ <h2 class="text-xl">Chat</h2>
105+ <p>Use our <code>pipe</code> command to have a chat with someone.</p>
106+ <pre>htop | ssh {{.Site.Domain}} pipe mychan -p</pre>
107+ <p>Now anyone with a <code>pico</code> account can subscribe to this channel:</p>
108+ <pre>ssh send.pico.sh pipe mychan -p</pre>
109+
110+ <details>
111+ <summary>Demo</summary>
112+ <script
113+ src="https://asciinema.org/a/fLBHAcPQqqawkrdpRdgEVFNrm.js"
114+ id="asciicast-fLBHAcPQqqawkrdpRdgEVFNrm"
115+ async="true"
116+ data-theme="dracula"
117+ ></script>
118+ </details>
119+ </div>
120+
121+ <div>
122+ <h2 class="text-xl">Pipe reverse shell</h2>
123+ <p>If you squint hard enough you can give users interactive access to your shell.</p>
124+
125+ <details>
126+ <summary>Demo</summary>
127+ <script
128+ src="https://asciinema.org/a/S3LSLOi9mHQOPZHoK0xlkiKLM.js"
129+ id="asciicast-S3LSLOi9mHQOPZHoK0xlkiKLM"
130+ async="true"
131+ data-theme="dracula"
132+ ></script>
133+ </details>
134 </div>
135
136 <div>
137@@ -85,6 +127,43 @@
138 <pre>docker buildx build --push -t myimg .; ssh {{.Site.Domain}} pub myimg -e</pre>
139 </div>
140
141+ <div>
142+ <h2 class="text-xl">Pubsub interactions</h2>
143+
144+ <h3 class="text-lg">Multiple subs</h3>
145+ <details>
146+ <summary>Demo</summary>
147+ <script
148+ src="https://asciinema.org/a/Ccee82V83EUyaZzFYbTn36BLF.js"
149+ id="asciicast-Ccee82V83EUyaZzFYbTn36BLF"
150+ async="true"
151+ data-theme="dracula"
152+ ></script>
153+ </details>
154+
155+ <h3 class="text-lg">Multiple pubs</h3>
156+ <details>
157+ <summary>Demo</summary>
158+ <script
159+ src="https://asciinema.org/a/ONe1OphgsKUt9MMPVRBiSbwd0.js"
160+ id="asciicast-ONe1OphgsKUt9MMPVRBiSbwd0"
161+ async="true"
162+ data-theme="dracula"
163+ ></script>
164+ </details>
165+
166+ <h3 class="text-lg">Multiple pubs and subs</h3>
167+ <details>
168+ <summary>Demo</summary>
169+ <script
170+ src="https://asciinema.org/a/HAlhNCLFLvuGjiqnEEUvWVi1h.js"
171+ id="asciicast-HAlhNCLFLvuGjiqnEEUvWVi1h"
172+ async="true"
173+ data-theme="dracula"
174+ ></script>
175+ </details>
176+ </div>
177+
178 <div>
179 <h2 class="text-xl">Send a public message</h2>
180 <pre>echo "hello world!" | ssh send.pico.sh pub mychan -p</pre>
181@@ -101,17 +180,16 @@
182 </p>
183 </div>
184
185- <p>
186- This project was heavily inspired by
187- <a href="https://patchbay.pub">patchbay.pub</a>
188- </p>
189-
190- <p>
191- built on our <a href="https://github.com/picosh/pubsub">go pkg</a>.
192- </p>
193+ <div>
194+ <h2 class="text-xl">Inspiration</h2>
195+ <p>
196+ A special thanks to <a href="https://patchbay.pub">patchbay.pub</a> for our inspiration.
197+ </p>
198+ </div>
199
200- <div class="text-center">
201- <a href="https://pico.sh/getting-started" class="btn-link my-2 inline-block">GET STARTED</a>
202+ <div class="text-center mb-2">
203+ <p>built on our <a href="https://github.com/picosh/pubsub">go pkg</a>.</p>
204+ <a href="https://pico.sh/getting-started" class="btn-link inline-block">GET STARTED</a>
205 </div>
206 </article>
207