💾 Archived View for tilde.pink › ~slondr › egalaxyd-5.1.gmi captured on 2024-02-05 at 10:11:11. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
I haven't written a whole lot about my gemini/spartan server project on this gemlog recently, as it's mostly been a toy for me to play with the protocol and different ways of program organization.
However, recently I've dropped a major two-part release that I think might bring it into production-quality territory. The biggest outstanding bugs were fixed, the packaging/release system was streamlined, etc. I intend to deploy it onto one of my public-facing servers soon and see how far I can get.
Just to rehash a bit, egalaxyd is a gemini and spartan server written in Elixir, which aims for a very high level of robustness and performance as well as simple deployment and low memory usage (even at very high levels of load).
https://git.sr.ht/~slondr/egalaxyd
With the new releases, there are now three ways to deploy egalaxyd:
The single binary has the benefit of integrating very cleanly with system process monitors, which was my primary motivation for getting it working. While only the three platforms listed support single-binary mode, egalaxyd has been tested to work correctly on OpenBSD when built from source. Note that a suitably recent version of Elixir is required.
To make running as an OTP release easier, I provide pre-compiled releases in the sourcehut tag pages. These releases are a little more cumbersome than the static binary, but still easier than putting together a whole elixir toolchain just for one project, and work on platforms that Docker doesn't.
Ah, but enough with the advertizement. This was intended to be a release announcement, so I'll just copy in the release notes now:
This is a major new release of egalaxyd with lots of changes:
- You can now configure a directory for egalaxyd to serve files from. This still defaults to the current working directory if not overridden in the settings, but the default config file overrides the setting to "./public".
- You can now run egalaxyd without a config file at all; all default options will be assumed. Options defined as environment variables will still be loaded.
- The config options "certfile" and "keyfile" can be set to look for SSL certificates and private keys in alternative locations to the default =server.key= and =server.crt=
- A few breaking changes for how config files are handled:
- The config file has been renamed from =geminex.toml= to =config.toml=
- The =port= setting has been renamed =gemini_port=
- A new setting named =spartan_port= has been added to control what tcp port the Spartan server listens on
- Fixed a bug where sometimes requests would sometimes incorrectly be labeled directory backtracking attempts
- Unified some inconsistencies between file path handling between Spartan and Gemini
https://git.sr.ht/~slondr/egalaxyd/refs/0.5.0
0.5.1
This release has no new features or bugfixes. However, egalaxyd now
builds a static binary upon running mix release! This means you don't
have to manage a collection of erts files and inconsistently named
processes in your ps list. This is especially useful for BSD systems
who have daemon trees that heavily rely on the called binary being
named the same thing as the running process.
Just call MIX_ENV=prod mix release and a new static binary will be
built.
Of course the old methods of running in docker or using a plain old
OTP release will still work, and be supported for the forseeable future.