Phoebe does two and a half things:
It's a program that you run on a computer and other people connect to it using their Gemini client in order to read the pages on it.
It's a wiki, which means that people can edit the pages without needing an account. All they need is a client that speaks both Gemini and Titan, and the password. The default password is "hello". ๐
Optionally, people can also access it using a regular web browser.
Gemini itself is very simple network protocol, like Gopher or Finger, but with TLS. Gemtext is a very simple markup language, a bit like Markdown, but line oriented. See "Gemtext".
To take a look for yourself, check out the test wiki via the web or via the web.
- What is Gemini?
- Gemini link collection
- Test site, via the web
- Test site, via Gemini
This repository comes with a Perl script called gemini to download Gemini URLs.
Other clients can be found here:
See App::Phoebe::Web to enable reading via the web.
Pages are written in gemtext, a lightweight hypertext format. You can use your favourite text editor to write them.
A text line is a paragraph of text.
This is a paragraph.
This is another paragraph.
A link line starts with "=>", a space, a URL, optionally followed by whitespace and some text; the URL can be absolute or relative.
=> http://transjovian.org/ The Transjovian Council on the web
=> Welcome Welcome to The Transjovian Council
A line starting with "```" toggles preformatting on and off.
Here is an example:
```
The tapping calms me:
Constant mindless murmuring
Rain drops against glass
```
A line starting with "#", "##", or "###", followed by a space and some text is a heading.
## License
The GNU Affero General Public License.
A line starting with "*", followed by a space and some text is a list item.
* one item
* another item
A line starting with ">", followed by a space and some text is a quote.
The monologue at the end is fantastic, with the city lights and the rain.
> I have seen things you people would not believe.
How do you edit a Phoebe wiki? You need to use a Titan-enabled client.
Titan is a companion protocol to Gemini: it allows clients to upload files to Gemini sites, if servers allow this. On Phoebe, you can edit "raw" pages. That is, at the bottom of a page you'll see a link to the "raw" page. If you follow it, you'll see the page content as plain text. You can submit a changed version of this text to the same URL using Titan.
Known clients:
This repository comes with a Perl script called titan to upload files.
Gemini Write is an extension for the Emacs Gopher and Gemini client Elpher.
Gemini & Titan for Bash are two shell functions that allow you to download and upload files.
Lagrange is a GUI client that is Titan enabled.
See App::Phoebe::WebEdit to enable editing via the web.
Using cpan
:
cpan App::Phoebe
Manual install:
perl Makefile.PL
make
make install
If you are not using cpan
or cpanm
to install Phoebe, you'll need to install
the following dependencies:
- Algorithm::Diff, or
libalgorithm-diff-xs-perl
- File::ReadBackwards, or
libfile-readbackwards-perl
- File::Slurper, or
libfile-slurper-perl
- Mojolicious, or
libmojolicious-perl
- IO::Socket::SSL, or
libio-socket-ssl-perl
- Modern::Perl, or
libmodern-perl-perl
- URI::Escape, or
liburi-escape-xs-perl
- Net::IDN::Encode, or
libnet-idn-encode-perl
- Encode::Locale, or
libencode-locale-perl
I'm going to be using curl
and openssl
in the Quickstart section of
phoebe
, so you'll need those tools as well. And finally, when people download
their data, the code calls tar
(available from packages with the same name on
Debian derived systems).
If you are on GNU/Linx or macOS, I recommend installing from Perlbrew. Each Perl installation comes with its own library directories, so if you switch Perl version, you need to reinstall Phoebe for that Perl version.
-
phoebe - a Gemini-first wiki server
-
gemini - a command line client for the Gemini protocol
-
gemini-chat - a command line client for the Gemini protocol to send lines you type
-
ijirait - a command line client for the Gemini protocol to play the Ijirait MUSH
-
phoebe-ctl - admin control for a Phoebe wiki
-
spartan - a command line client for the Spartan protocol
-
titan - a command line client to upload texts and files using the Titan protocol
-
App::Phoebe - a Gemini-based wiki
-
App::Phoebe::BlockFediverse - block Fediverse instances from Phoebe wiki
-
App::Phoebe::Capsules - provide every visitor with a writeable capsule
-
App::Phoebe::Chat - add a Gemini-based chat room for every Phoebe wiki space
-
App::Phoebe::Comments - add comment pages to Phoebe wiki
-
App::Phoebe::Css - use a CSS file for Phoebe wiki served on the web
-
App::Phoebe::DebugIpNumbers - log visitor IP numbers for Phoebe
-
App::Phoebe::Favicon - serve a favicon via the web for Phoebe
-
App::Phoebe::Galleries - serving sitelen mute image galleries via Gemini
-
App::Phoebe::Gopher - serving a Phoebe wiki via the Gopher protocol
-
App::Phoebe::HeapDump - debugging Phoebe memory leaks
-
App::Phoebe::Iapetus - uploads using the Iapetus protocol
-
App::Phoebe::Ijirait - a Gemini-based MUSH running on Phoebe
-
App::Phoebe::MokuPona - serve files from moku pona
-
App::Phoebe::Oddmuse - act as a Gemini proxy for an Oddmuse wiki
-
App::Phoebe::Oracle - an anonymous question asking game
-
App::Phoebe::PageHeadings - use headings instead of file names
-
App::Phoebe::RegisteredEditorsOnly - only known users may edit Phoebe wiki pages
-
App::Phoebe::Spartan - implement the Spartan protocol for Phoebe
-
App::Phoebe::SpeedBump - defend Phoebe against bots and leeches
-
App::Phoebe::StaticFiles - serve static files via a Phoebe wiki
-
App::Phoebe::TokiPona - serve a linja pona via the web
-
App::Phoebe::Web - serve Phoebe wiki pages via the web
-
App::Phoebe::WebComments - allow comments on a Phoebe wiki via the web
-
App::Phoebe::WebDAV - add WebDAV to Phoebe wiki
-
App::Phoebe::WebEdit - allow edits of a Phoebe wiki via the web
-
App::Phoebe::WebStaticFiles - serve static files via the web
-
App::Phoebe::Wikipedia - act as Wikipedia proxy from Phoebe