App::Phoebe::Spartan - implement the Spartan protocol for Phoebe
This extension serves your Gemini pages via the Spartan protocol and generates a few automatic pages for you, such as the main page.
Warning! If you install this code, anybody can write to your site using the Spartan protocol. There is no token being checked.
To configure, you need to specify the Spartan port(s) in your Phoebe config file. The default port is 300. This is a priviledge port. Thus, you either need to grant Perl the permission to listen on a priviledged port, or you need to run Phoebe as a super user. Both are potential security risk, but the first option is much less of a problem, I think.
If you want to try this, run the following as root:
setcap 'cap_net_bind_service=+ep' $(which perl)
getcap $(which perl)
If you want to undo this:
setcap -r $(which perl)
Once you do that, no further configuration is necessary. Just add the following to your config file:
The alternative is to use a port number above 1024. Here's a way to do that:
our $spartan_port = 7000; # listen on port 7000
If you don't do any of the above, you'll get a permission error on startup: "Mojo::Reactor::Poll: Timer failed: Can't create listen socket: Permission denied…"
To install App::Phoebe, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.