# gmid > A Gemini server gmid is a full-featured Gemini server written with security in mind. It can serve static files, has an optional FastCGI and proxying support and a rich configuration syntax. gmid also bundles a small gemini client called ‘gg’ (gemini get), a small command-line server for quick testing called ‘gemexp’ and a titan implementation. => gmid.8.MANEXT gmid(8) - Gemini server => gmid.conf.5.MANEXT gmid.conf(5) - gmid configuration file => gg.1.MANEXT gg(1) - gemini client => gemexp.1.MANEXT gemexp(1) - export a directory over Gemini => titan.1.MANEXT titan(1) - Titan client ## 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 => SITE/gmid-VERS.tar.gz gmid-VERS.tar.gz => https://git.omarpolo.com/?action=summary&path=gmid.git git repository => https://codeberg.org/op/gmid/ Codeberg mirror => GITHUB GitHub mirror The dependencies are: * libevent * LibreSSL or OpenSSL * yacc or GNU bison Once all the dependencies are installed, building is as easy as: ```Example of how to compile from source $ curl -LO SITE/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, it only checks for accidental corruption. You can use signify (gmid-VERS.sha256.sig) and the public key PUBKEY to cryptographically verify the downloaded tarball. The signify public key for the previous and the next release is included in the tarball. => SITE/gmid-VERS.sha256 gmid-VERS.sha256 => SITE/gmid-VERS.sha256.sig gmid-VERS.sha256.sig To verify the signatures with signify(1): ```Example of how to verify the signature with signify % signify -C -p PUBKEY -x gmid-VERS.sha256.sig Signature Verified gmid-VERS.tar.gz: OK ``` Git tags are signed with the following ssh key: ``` ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ0nD5I8BNVJknT87gnpLIJWK0fXTayDktQOlS38CGj4 op@omarpolo.com ```