# 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 * reverse proxying * CGI and FastCGI support * virtual hosts and per-location rules * low memory footprint * event-based asynchronous I/O model * rich configuration file gmid also bundles a small gemini client called ‘gg’ (gemini get) => gmid.1.MANEXT gmid(1) manpage => gmid.conf.5.MANEXT gmid.conf(5) manpage => gg.1.MANEXT gg(1) manpage ## Install Some distros provide a package — thanks to the maintainers! => REPOLOGY Repology: packaging status for gmid Otherwise, compile it from source: it’s easy and takes less than a minute on a raspberry pi 3 => GITHUB/releases/download/VERS/gmid-VERS.tar.gz gmid-VERS.tar.gz => https://git.omarpolo.com/gmid/ git repository => https://codeberg.org/op/gmid/ Codeberg mirror => GITHUB GitHub mirror 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 GITHUB/releases/download/VERS/gmid-VERS.tar.gz $ tar xzvf gmid-VERS.tar.gz $ cd gmid-VERS $ ./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-CURV.pub). The signify public key for the next release ‘gmid-NEXTV.pub’ is also included. => GITHUB/releases/download/VERS/SHA256 SHA256 => GITHUB/releases/download/VERS/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.8.pub -x SHA256.sig Signature Verified gmid-VERS.tar.gz: OK gmid-CURV.pub: OK gmid-NEXTV.pub: OK ```