💾 Archived View for gemi.dev › gemini-mailing-list › 000920.gmi captured on 2024-05-26 at 16:57:40. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-12-28)

-=-=-=-=-=-=-

[server question] What can be done with server side scripting?

1. Andrew Singleton (singletona082 (a) gmail.com)

I suppose I should come up with a use case I want and then ask if they can
be done we I really don't feel in my depth on technical aspects.

I just know serve scripts are possible, but I don't know what is
realistically doable and it of that what actually works within the
protocol's strengths.

Link to individual message.

2. Omar Polo (op (a) omarpolo.com)


Andrew Singleton <singletona082@gmail.com> writes:

> I suppose I should come up with a use case I want and then ask if they can
> be done we I really don't feel in my depth on technical aspects.
>
> I just know serve scripts are possible, but I don't know what is
> realistically doable and it of that what actually works within the
> protocol's strengths.

You can do almost anything that involves a request-response cycle.  With
something really hacker-ish you can also do things slightly interactive
that leverages the 10/11 responses (I read somewhere that someone was
building a REPL over Gemini) and possibly client certificates to manage
the session.

Realistically, it also depends on the clients.  One cool thing that may
be done over Gemini, but I'm not sure about client support, is streaming
text/gemini pages.  One could, for instance, build a "Feed" (or a
"Notification" page) that keeps the connection open and sends the
updates to the client on the fly.

Anyway, without something more specific to discuss, scripts (that may be
either functions loaded *into* the server, or CGI/FastCGI scripts, or
something else entirely) can do anything the protocol allows, that is,
sending any type of content (not only text/gemini, but images, video,
audio, ...), require input and manage the session with client
certificates.  There are some examples at awesome-gemini[0], but it's
not comprehensive (stuff like station isn't mentioned AFAICS).

Cheers,


[0]: https://github.com/kr1sp1n/awesome-gemini#services

Link to individual message.

3. Oliver Simmons (oliversimmo (a) gmail.com)

On Sat, 5 Jun 2021 at 08:12, Omar Polo <op@omarpolo.com> wrote:
> Realistically, it also depends on the clients.  One cool thing that may
> be done over Gemini, but I'm not sure about client support, is streaming
> text/gemini pages.  One could, for instance, build a "Feed" (or a
> "Notification" page) that keeps the connection open and sends the
> updates to the client on the fly.

Lagrange even supports streaming audio files, Internet Radio over
Gemini is a possible thing to do :)
The main issue with streaming content over Gemini is that alot of
servers don't send TLS close¹, and so there's no easy way to know if
some has or hasn't ended. (I may have the details slightly wrong, as I
don't know much of the details)
=> ¹ https://gitlab.com/gemini-specification/protocol/-/issues/2

> [0]: https://github.com/kr1sp1n/awesome-gemini#services

Didn't know this existed, neat repo!


--
-Oliver Simmons (GoodClover)

Link to individual message.

4. Rev. Fr. Robert Bower (frrobert (a) frrobert.com)

Andrew,

Here is a list of things that are on my site.

searchable Bible in both Greek and English
Weather forecsts
News
Random jokes
Random quotes
Saint of the day.

You can do about anything. 
gemini://frrobert.net

On June 4, 2021 10:39:42 PM EDT, Andrew Singleton <singletona082@gmail.com> wrote:
>I suppose I should come up with a use case I want and then ask if they
>can
>be done we I really don't feel in my depth on technical aspects.
>
>I just know serve scripts are possible, but I don't know what is
>realistically doable and it of that what actually works within the
>protocol's strengths.

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Link to individual message.

5. Omar Polo (op (a) omarpolo.com)


Oliver Simmons <oliversimmo@gmail.com> writes:

> On Sat, 5 Jun 2021 at 08:12, Omar Polo <op@omarpolo.com> wrote:
>> Realistically, it also depends on the clients.  One cool thing that may
>> be done over Gemini, but I'm not sure about client support, is streaming
>> text/gemini pages.  One could, for instance, build a "Feed" (or a
>> "Notification" page) that keeps the connection open and sends the
>> updates to the client on the fly.
>
> Lagrange even supports streaming audio files, Internet Radio over
> Gemini is a possible thing to do :)
> The main issue with streaming content over Gemini is that alot of
> servers don't send TLS close¹, and so there's no easy way to know if
> some has or hasn't ended. (I may have the details slightly wrong, as I
> don't know much of the details)
> => ¹ https://gitlab.com/gemini-specification/protocol/-/issues/2

I wasn't talking about streaming audio (which is cool and I didn't knew
was a thing in the gemini space), but raw text/gemini files.  For
instance, one could build a gemini interface for the fediverse, and
provide a feed page which will print the toots of the people you follow
as they are posted.  Something like the infinite scrolling featured in
some website, except without the bloat :)

As for the importance of the TLS close notify, it's indeed important to
distinguish a connection that was properly closed and one that was
interrupted.  Don't know much about the percentages though, but my
server operates correctly :P

>> [0]: https://github.com/kr1sp1n/awesome-gemini#services
>
> Didn't know this existed, neat repo!

Link to individual message.

6. (remyabel (a) tilde.team)

On Fri, Jun 04, 2021 at 09:39:42PM -0500, Andrew Singleton wrote:
> I suppose I should come up with a use case I want and then ask if they can
> be done we I really don't feel in my depth on technical aspects.
> 
> I just know serve scripts are possible, but I don't know what is
> realistically doable and it of that what actually works within the
> protocol's strengths.

You can basically do any sort of CGI scripting you want, in python,
shell, etc. I wrote a very simple Python script here that simply proxies
the tilde wiki over gemini:

gemini://tilde.team/~remyabel/wiki.cgi

It's not very advanced but it gets the job done. To start off, all you
need to do is print the correct response code and content type. So a
hello world would look like:

printf "20 text/gemini\r\n"
printf "hello world"

I would look at the specification or other CGI scripts for more
examples.

Link to individual message.

7. Frank Jüdes (Frank.Juedes (a) linux4specialists.com)

I assume you mean the Gemini equivalent of CGI scripts?

Well you can do almost the same things that you can do with CGI in the 
WWW! - Just a little less fancier and more focused on content than visual 
effects. Some examples from my server:

 * Linux man-pages and Perl documentation:
   gemini://h2903872.stratoserver.net/OnlineDoc.gmi
 * Ascii-"Art" with the figlet and the boxes program and other tools:
   gemini://h2903872.stratoserver.net/DevToolBox.gmi
 * You can capture the output of any command line tool and print it as
   a gmi document, see  my lab-page:
   gemini://h2903872.stratoserver.net/CGI-test.gmi

I hope that helps.

Best regards from Charleston (WV),
     Frank/2

On 2021-06-04 22:39, Andrew Singleton wrote:
> I suppose I should come up with a use case I want and then ask if they 
can be done we I really don't feel in my depth on technical aspects.
> 
> I just know serve scripts are possible, but I don't know what is 
realistically doable and it of that what actually works within the protocol's strengths.
-- ------------------------------------------------------------------------
My Gemini capsule orbits at gemini://h2903872.stratoserver.net/
------------------------------------------------------------------------

Link to individual message.

---

Previous Thread: Is there a raspberry pi server?

Next Thread: [Users] Re: Is there a raspberry pi server?