chore: upgrade linters and fix linting issues
Update infrastructure dependencies
build: Install go1.16 directly rather than upgrading
GemIF is a simple Interactive Fiction engine which runs as a Gemini server.
Check out my live GemIF instance with your favorite gemini client at gemini://gemif.fedi.farm or through a gemini web portal like the one at portal.mozz.us. Though be warned the web portal does terrible things to the ASCII art.
Compiled binaries for several architectures are automatically generated on each tagged commit. You can find the latest one and download it
You can also do a good old-fashioned go get
:
go get git.sr.ht/~nromdotcom/gemif/cmd/gemif
to get the servergo get git.sr.ht/~nromdotcom/gemif/cmd/gemifc
to get the story compilerOtherwise, you can clone this repo and use the regular golang toolchain to build (check
the Makefile
for details).
Once you have the binary compiled, you need a few files to make it run.
The first thing to do is generate your TLS cert in whatever way makes sense for you.
In production, you might use certbot in standalone mode to generate a LetsEncrypt cert.
Otherwise, since most (all?) Gemini clients use TOFU for TLS certificates, you can also feel free to generate a self-signed cert in whatever way is appropriate for you.
This repo comes with a couple of sample stories in ./stories
(also bundled as artifacts
alongside the binaries in the releases linked above). If you want to add, remove,
or change them, go ahead and do that now (see below for details on writing your own).
GemIF configures itself based on the contents of ./config.toml
.
Take sample.config.toml
and copy it. Change the configuration to match
your desired values.
That's it. Go ahead and run the binary.
$ ./bin/gemif-linux-amd64/gemif
Starting GemIF 0.1.1 (bd561ac) - built 2020.12.05.210341
[gig-debug] ⇨ gemini server started on [::]:1965
time="2020-12-05T21:29:40-05:00" path=/ status=20 duration=0.28
GemIF loads stories from YAML files (from the directory named in engine.stories_dir
in
config.toml
), but authors have the option to write their stories in GemIF format using
.gemif
files.
GemIF comes with a story called "Writing Tutorial" which provides guided documentation on writing GemIF stories.
You can see the live story at gemini://gemif.fedi.farm/game/Cgh0dXRvcmlhbBIKdGhlX2Jhc2ljcw== or the source of the story right in this repo at stories/src/tutorial.
MIT © Norm MacLennan