diff options
author | Omar Polo <op@omarpolo.com> | 2021-10-04 10:42:35 +0000 |
---|---|---|
committer | Omar Polo <op@omarpolo.com> | 2021-10-04 10:42:35 +0000 |
commit | ae6870fa3bf25561a3f6bd8465ba86307af5d5bb (patch) | |
tree | 81c81327a0f223d6892e05d42bdaf64764a376ea /site/index.gmi | |
parent | 568419b2c1f71620095acd9bf3be6aaa2bbe43ee (diff) |
import the capsule/website
Diffstat (limited to 'site/index.gmi')
-rw-r--r-- | site/index.gmi | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/site/index.gmi b/site/index.gmi new file mode 100644 index 0000000..bb7efef --- /dev/null +++ b/site/index.gmi @@ -0,0 +1,165 @@ +=> contrib.gmi contrib +=> /gmid.1.txt docs + +# gmid + +> A Gemini server + +## Features + +* sandboxed by default on OpenBSD, FreeBSD and Linux +* able to reload the configuration on-the-fly without loosing connections +* punycode and IRI support +* CGI and FastCGI support +* virtual hosts and per-location rules +* low memory footprint +* event-based asynchronous I/O model +* rich configuration file + +=> gmid.1.txt Read the manpage. + +## Install + +Some distros provide a package — thanks to the maintainers! + +=> https://repology.org/project/gmid/versions [https] Repology: packaging status for gmid + +Source code and precompiled binaries for linux are available: + +=> https://github.com/omar-polo/gmid/releases/download/1.7.4/gmid-1.7.4.tar.gz gmid-1.7.4.tar.gz + +=> https://git.omarpolo.com/gmid/ git repository +=> gemini://git.omarpolo.com/gmid.git/ git repository via Gemini +=> https://github.com/omar-polo/gmid GitHub mirror + +=> https://github.com/omar-polo/gmid/releases/download/1.7.4/gmid.linux.aarch64 gmid.linux.aarch64 +=> https://github.com/omar-polo/gmid/releases/download/1.7.4/gmid.linux.amd64 gmid.linux.amd64 + +When in doubt, compile from source: it’s easy and takes less than a minute on a raspberry pi 3. The dependencies are: + +* libevent +* OpenSSL/LibreSSL +* libtls (from either LibreSSL or LibreTLS) +* yacc or GNU bison + +Once all the dependencies are installed, building is as easy as: + +```Example of how to compile from source +$ curl -LO https://github.com/omar-polo/gmid/releases/download/1.7.4/gmid-1.7.4.tar.gz +$ tar xzvf gmid-1.7.4.tar.gz +$ cd gmid-1.7.4 +$ ./configure +$ make +$ sudo make install # eventually +``` + +A SHA256 file is available. However, that only checks for accidental corruption: you can use signify (SHA256.sig and the public key gmid-1.7.pub) or GPG. The hash of the signify public key is also included in the SHA256 file and thus signed with my GPG. The signify public key for the next release ‘gmid-1.8.pub’ is also included. + +=> https://github.com/omar-polo/gmid/releases/download/1.7.4/SHA256 SHA256 +=> https://github.com/omar-polo/gmid/releases/download/1.7.4/SHA256 SHA256.gpg +=> https://github.com/omar-polo/gmid/releases/download/1.7.4/SHA256.sig SHA256.sig + +To verify the signatures with signify(1) + +```Example of how to verify the signature with signify +$ signify -C -p gmid-1.7.pub -x SHA256.sig +Signature Verified +gmid-1.7.pub: OK +gmid-1.7.4.tar.gz: OK +gmid-1.8.pub: OK +gmid.linux.aarch64: OK +gmid.linux.amd64: OK +``` + +## Change log for the last versions + + +1.7.4 “Space-dye Vest” fourth bugfix release — Released September 24, 2021 + +This version incudes the following bugfix: + +* fix a possible out-of-bound access when handling a request for a non-existent file in the root directory of a vhost that's matched by the cgi option + +and the relative regression test. + + + + +1.7.3 “Space-dye Vest” third bugfix release — Released September 19, 2021 + +### Improvements + +* follows symlinks +* improved documentation and added key generation example (thanks! Anna) + +### Bugfix + +* fix syslog logging on FreeBSD. Reported by Karl Jeacle, thanks! +* don't crash if ``-c'' is missing in configtest mode (-n). Reported by heph, thanks! +* allow fstat64 on linux (needed by glibc on aarch64). Reported by pine, thanks! + + + + +1.7.2 “Space-dye Vest” second bugfix release — Released July 19, 2021 + +This version incudes the following bugfix: + +* an un-initialized field in the configless code path leads to a crash on the first request. + +and the relative regression test. + + + +1.7.1 “Space-dye Vest” bugfix release — Released July 11, 2021 + +This version includes two bugfixes: +* use ${MAKE} to recursively call make. +* fix the misleading example in the manpage: macros may not be reserved words + + + +1.7 “Space-dye Vest” — Released July 10, 2021 + +Starting from this version gmid doesn't depend on lex anymore, but yacc is still needed. + +### New features + +* initial fastcgi support! (it's still young!) +* added user-defined macros, either via ‘-Dname=val’ or directly in the configuration file. +* new ‘include’ keyword to load additional configuration files. +* new ‘env’ rule to define environment vars for CGI scripts. +* new ‘alias’ rule to define hostname aliases for a server. +* allow ‘root’ to be specified per-location block. +* pidfile support with the new ‘-P’ cli flag. +* define ‘TLS_VERSION’, ‘TLS_CIPHER’ and ‘TLS_CIPHER_STRENGTH’ for CGI scripts. + +### Improvements + +* remove limits on the number of virtual hosts and location blocks that can be defined. +* print the datetime when logging to stderr. +* use ‘text/x-patch’ for ‘.patch’ and ‘.diff’ files. +* sort the auto index alphabetically. +* various improvements to the log management. +* drop the dependency on lex. +* added ‘--help’ as synonym of ‘-h’ and ‘-V’/‘--version‘ to print the version. +* c-like handling of strings in the configuration file: when two or more strings are next to each-others, are automatically joined into a single string. This is particularly useful with $-macros. + +### Bug fixes + +* correctly handle CGI scripts that replies with the maxium header length allowed. +* fixed the static target. +* fixed recursive mkdirs for configless mode (i.e. create ‘~/.local/share/gmid’) +* logs sent to syslog now have proper priority (before every message ended up as LOG_CRIT). Found by Anna “CyberTailor”, thanks! +* ensure ‘%p’ (path) is always absolute in ‘block return’ rules. +* fix automatic certificate generation, it caused problems on some adroid devices. Found by Gnuserland, thanks! +* document the ‘log’ rule. +* the seccomp filter was reworked and now it's known to work properly on a vast range of architectures (to be more specific: all the architectures supported by alpine linux), see github issue #4. Prompted and tested by @begss, thanks! +* various improvements to the configure script, notified and fixed by Anna “CyberTailor”, thanks! +* added a timeout to the regression tests. + +### Breaking changes + +* if duplicate rules are found in the configuration file, an error is now raised instead of silently using only the last value. +* (sort of) ‘gg’ moved to ‘regress’ as it's only used in the regression suite. +* (notice) the “mime "mime-type" "extension"” rule was deprecated and replaced by the new “map "mime-type" to-ext "extension"”. The ‘mime’ rule will be removed in a future version because its syntax is incompatible with the new string auto-concat mechanism. |