A simple Gemini protocol server written in PHP
Find a file
2026-07-03 02:53:06 -04:00
LICENSE Splashdown 2026-07-02 00:00:09 -04:00
README.md Updated setup info and service file 2026-07-02 00:05:49 -04:00
Splashdown.php Added logging option 2026-07-03 02:53:06 -04:00
splashdown.service Updated setup info and service file 2026-07-02 00:05:49 -04:00

Splashdown

A simple Gemini protocol server written in PHP

See it in action at gemini://omg.lol.

Features

  • Supports multiple domains, including wildcard domains (works great with Caddys certs!)
  • Serves static gemtext (.gmi files) and executes PHP (.php files)
  • Just one ~300 line PHP script!

Getting started

These directions are for running Splashdown as a service on a Debian server. Feel free to adjust for your own setup/needs accordingly.

  1. Clone this repo locally: git clone https://source.tube/neatnik/Splashdown.git
  2. Create a directory where Splashdown will live: sudo mkdir /etc/splashdown
  3. Move Splashdown.php to that directory: sudo cp Splashdown/Splashdown.php /etc/splashdown
  4. Install the service file: sudo cp Splashdown/splashdown.service /etc/systemd/system/ && sudo systemctl daemon-reload
  5. Enable the service and start it: sudo systemctl enable splashdown && sudo systemctl start splashdown
  6. Verify that its running: sudo systemctl status splashdown

Now youll want to configure things properly, so open Splashdown (/etc/splashdown/Splashdown.php) in your editor of choice. You can leave the default host and port alone for a standard setup, but youll want to configure the $capsules array. Add one item for each capsule youre hosting, and then for each of those, specify the directory where your content will live, as well as the certificate and key files (you can directly reference Caddy certificate files here if to make life easy).

Save the script, and then reload the service to apply your changes: sudo systemctl restart splashdown.

Have fun!