My Setup

I've updated my setup, now supporting multiple sites on the same server. You can still see my very simple setup here.

Old "Simple" Setup

File upload for multiple instances

I am still running syncthing to give access to my files on my laptop, phone and anywhere else I want to be. A little bit of work needs to be done to make the files hostable, changing owner and permissions. All this is done by tracking when changes occur.

I then created a systemd unit file that supports multiple instances: `gemini-sync@.service`

Multiple Gemini instances

I'm running molly-brown as my gemini server. Configuration is pretty straight forward, just use the default config and fill in your details. But since I'm running multiple instances I create a config file per instance `/etc/molly-<instance>.conf`. Each needs its own port, none of which use 1965. Using nginx we can proxy incoming requests to the correct instance depending on the SSL request.

The molly-brown service unit file: `molly-brown@.service`

My `nginx.conf` file.

Add entries to the map and an upstream for each server you want to connect. Once the multiple instances are running and nginx starts up you can hitt the different capsules based on their domain name.

Multiple Gemini to HTTP Proxies

I use Kineto for proxying my capsule to HTTP. Again with multiple instances means a service setup that supports multiple instances. `kineto@.service`

The wrapper script handles the optional arguments supplied in the config file.

The last step is setting up the per site configuration in nginx to proxy all https reqeusts to kineto. Make sure the proxy_pass path points to the right kineto instance.

I wrote a simple atom.xml cgi script that just expects the first header to be the title and a `Published:` and `Updated:` line towards the top of the file to define its date and time of publishing.

Molly Brown (Project Site)

Kineto (Project Site)

My atom.xml script (Python3)

Atom Feed

I've written a cgi script but I'm a little worried about how much it depends on the server side to be working correctly. Change time stamps on files and magically they get republished. Will be looking into being able to store off the current file and checking if anything is new, maybe then moving to a dynamic method. But for the time being I just maintain an atom.xml file by hand.

back

Proxied content from gemini://gemini.sh0.xyz/setup.gmi

Gemini request details:

Original URL
gemini://gemini.sh0.xyz/setup.gmi
Status code
Success
Meta
text/gemini
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.