4.05 - Uploading of text/gemini is now treated like text/plain, resulting in a page (instead of an attempted file upload). - Uploading "to the /files folder" is now allowed. - Document how to build and run a docker image. - MIME type is optional. 4.04 - App::Phoebe::Oracle is new. 4.03 - App::Phoebe::Capsule is new. - titan now parses the command line arguments better and doesn't prefer the default certificate over the one given on the command line; use --key_file instead of --cert_key. 4.02 - App::Phoebe::WebDAV is new. - App::Phoebe::Ijirait changes. No more "map" but a "find" command instead. An "id" command, and a "forget" command, because now the game allows you to remember certain ids that the player has seen. - Add log processing to phoebe-ctl, in case you use App::Phoebe::DebugIpNumbers. - Add a --no_tls to phoebe, in case you want to run it as a back-end without TLS. - Add colour styles to history and diff (behind a link). 4.01 - It's now App::Phoebe instead of App::phoebe. - App::Phoebe::RegisteredEditorsOnly now works if you use App::Phoebe::WebEdit. - App::Phoebe::Ijirait has a backup command to allow players to download the world data (without fingerprints); the rooms command now allows you to list ghosts (inactive characters). - Both ijirait and titan scripts no longer use --url= as there is exactly one URL and it is mandatory. - App::Phoebe::Gopher no longer prints links for plain text pages. - App::Phoebe::WebStaticFiles is new. 4.00 If you are using contributions or have a config that heavily interacts with the Phoebe code, this is a backwards-incompatible upgrade! Please review the documentation and rewrite your extensions. Review your conf.d folder; if you are linking any contributions from this directory, you will have to change the setup. For example, instead of linking web-edit.pl into your conf.d directory, you would edit your config file and add: use App::Phoebe::WebEdit; Serving a web site is now also plugin. Add the following to your config file: use App::Phoebe::Web; Other changes: - Search is now case insensitive - Changed how contributions work: instead of linking extensions into your wiki dir's conf.d directory, you just "use" the appropriate module; all modules now come with documentation and tests - App::Phoebe::StaticFiles is new; use it to serve static files from directories on your server - App::Phoebe::Ijirait is new; a MUSH, i.e. a shared world for all participants to build and interact in; script/ijirait is also new, a custom CLI client for the game - App::Phoebe::Spartan is new; an alternative to Gemini and Titan since it's very simply, suggests gemtext for text formatting, allows uploads, but doesn't do TLS - App::Phoebe::Iapetus is new; an alternative to the Titan protocol for uploading - App::Phoebe::SpeedBump loads the block list on startup; as it saves every half an hour, that means you no longer have to worry too much about losing information on the blocked IP numbers and networks - App::Gopher is new and improved; it no longer just prints the Gemini text but does line wrapping and all that 3.00 - Add special feeds for the blog, i.e. the pages starting with an ISO date 2.08 - Updated dependencies to Mojolicious 9.0 (because the tls_verify parameter was replaced by a more general tls_options). - Reduced the SSL session cache to 64 in attempt to fix a memory leak but which I was unable to do: the solution I'm using right now is to use memory parameters in the systemd service definition. - Fixed colour links in /changes within wiki spaces. - Fixed output of /robots.txt. - contrib/oddmuse.pl: New, in case you want to serve an Oddmuse wiki from Phoebe (like I do); working on support to translate Oddmuse namespaces to wiki spaces transparently. - contrib/gopher.pl: New, in case you want to serve your Phoebe wiki via Gopher; this does not work with contrib/oddmuse.pl – if you want to serve your Oddmuse wiki via Gopher, use the gopher-server.pl which is part of Oddmuse. - contrib/speed-bump.pl: Improved detection of non-human behaviour; added client finger print requirements for admin views, debug view, and status view; save stats every half hour; load them on startup; add network range blocking. - contrib/wikipedia.pl: There are constellations where the spanning table code goes nuts and throws a gazillion warnings. I still haven't fixed this, so for the time being, tables are simple no longer handled. - contrib/heap-dump.pl: New, in case you need to debug heap dumps of the Phoebe process. 2.07 - Fixed serving of robots.txt in a virtual hosting environment; ignoring query and fragment when deciding whether to serve the default robots.txt. - phoebe-ctl can export HTML. 2.02 - Handle international domain names: when you provide them with the --host option, the address lookup happens using their punycode representation, and URIs containing these punycode representations of the international domain name are served correctly. - Improvements to the gemini script (the simple command line client): knows how to stream; decodes text appropriately; has a --verbose flag; takes client certificates. - Add all the extensions from the Phoebe wiki as config files for your conf.d directory. - Add a gemini-chat script to work with the chat.pl config file. - Man pages look more like man pages. - Fixed a bug in printing the source code. - Fixed several instances of streams not being closed correctly, leading to timeouts for clients that kept waiting for the end of file. - Fixed the bug that config was running before the config files in conf.d, making it impossible to overwrite our variables. - Changed some functions to no longer take a $stream argument. 2.00 - This is a .00 release. I expect things to break. That said, I run my sites with it. :) - Change the framework underneath, from Net::Server to Mojo::IOLoop; this is a breaking change and you should carefully review the way your extensions are written! - Phoebe no longer uses STDIN and STDOUT to serve requests but a Mojo::IOLoop::Stream object. Phoebe is no longer a class so the $self parameter of many calls either fell away or got replaced with a $stream object to which you $stream->write. - Phoebe lost many options and capabilities for daemonisation. Using systemd is now the recommended way to run Phoebe (using a traditional setup is still possible, but there are no longer any options to set a PID file, to background the process, and so on). - The huge config file of mine I mined for code examples got split into smaller files, and where you previously had one big config file you can now also have a conf.d/ directory with even more config files. All the files in the contrib/ directory of this distribution are lifted straight from my setup. 1.20 - Add conf.d directory next to the config file for easier code sharing