Extensible Gemini/Titan server
Project description
GmCapsule is an extensible server for Gemini and Titan.
See the User manual for configuration and usage instructions.
Installation
Install "gmcapsule" via pip
:
pip install gmcapsule
Then run the server daemon:
gmcapsuled
Running via systemd
Create the following service file and save it as ~/.config/systemd/user/gmcapsule.service:
[Unit]
Description=GmCapsule: extensible Gemini/Titan server
After=network.target
[Service]
Type=simple
ExecStart=<YOUR-INSTALL-PATH>/gmcapsuled
Restart=always
Environment="PYTHONUNBUFFERED=1"
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=gmcapsule
[Install]
WantedBy=default.target
Replace <YOUR-INSTALL-PATH>
with the actual path of gmcapsuled
. pip
will install it in a directory on your PATH.
Then you can do the usual:
systemctl --user daemon-reload
systemctl --user enable gmcapsule
systemctl --user start gmcapsule
The log can be viewed via journalctl (or syslog):
journalctl -xe --user-unit=gmcapsule
Change log
v0.4
- Added built-in module "rewrite" that matches regular expressions against the request path and can rewrite the path or return a custom status for redirection, "Gone" messages, or other exceptional situations.
- Extension module load order is determined after locating all modules from all directories. Previously, the order was local to each directory.
- Added a new configuration section
[priority]
for overriding default module priorities determined from file names. This is useful for changing the priority of the built-in modules.
v0.3
- Added a shutdown event for custom background workers.
Request.query
is None if there is no query string present. Previously, the query string was an empty string in this case. This allows making a distinction between empty and absent query strings.
v0.3.1:
- CGI: Fixed handling of a missing query string.
v0.3.2:
- GitView: Fixed processing of Git commit history when a message contains backslashes.
v0.2
- Added
[cgi] bin_root
configuration option for automatically and dynamically mapping all executables in a directory tree to URL entry points. - Minor documentation updates.
- Published on PyPi as "gmcapsule".
v0.2.1:
- Fixed error handling. Exceptions are now caught and the error message is printed.
v0.2.2:
- Reduced required Python version to 3.6 (f-strings).
- Added systemd instructions.
v0.2.3:
- Requests exceeding 1024 bytes should result in an error code and not just be ignored.
- Respond with an error code to malformed UTF-8 in the request.
- Verify that the port number in the request URI matches the server's port.
v0.2.4:
- Fixed an error in the Markdown parser.
v0.2.5:
- Fixed handling of exceptions from request handler, and print a traceback.
- Fixed
importlib
error with Python 3.11.
v0.1
- Initial public release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gmcapsule-0.4.0.tar.gz
(26.4 kB
view hashes)
Built Distribution
gmcapsule-0.4.0-py3-none-any.whl
(30.3 kB
view hashes)
Close
Hashes for gmcapsule-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11611e9290f1fef71a590100ee5ecb903b7d10659dc1471159fb74cd52aa2f88 |
|
MD5 | 366993cd6b00b9ebb8f4deaef568d650 |
|
BLAKE2b-256 | bf411feb7924601b36609e51aa0d4fd8e73b22b305a25a35f4930657ea435e61 |