Title: Run your Gemini server on Guix with Agate Author: Solène Date: 17 June 2021 Tags: guix gemini Description: # Introduction This article is about deploying the Gemini server agate on the Guix linux distribution. (HTM) Gemini quickstart to explain Gemini to beginners (HTM) Guix website # Configuration (HTM) Guix manual about web services, search for Agate. Add the agate-service definition in your /etc/config.scm file, we will store the Gemini content in /srv/gemini/content and store the certificate and its private key in the upper directory. ```Guix configuration file (service agate-service-type (agate-configuration (content "/srv/gemini/content") (cert "/srv/gemini/cert.pem") (key "/srv/gemini/key.rsa")) ``` If you have something like %desktop-services or %base-services, you need to wrap the services list a list using "list" function and add the %something-services to that list using the function "append" like this. ```Guix configuration file (services (append (list (service openssh-service-type) (service agate-service-type (agate-configuration (content "/srv/gemini/content") (cert "/srv/gemini/cert.pem") (key "/srv/gemini/key.rsa")))) %desktop-services)) ``` # Generating the certificate - Create directories /srv/gemini/content - run the following command in /srv/gemini/ ``` openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem -days 3650 -nodes -subj "/CN=YOUR_DOMAIN.TLD" ``` - Apply a chmod 400 on both files cert.pem and key.rsa - Use "guix system reconfigure /etc/config.scm" to install agate - Use "chown agate:agate cert.pem key.rsa" to allow agate user to read the certificates - Use "herd restart agate" to restart the service, you should have a working gemini server on port 1965 now # Conclusion You are now ready to publish content on Gemini by adding files in /srv/gemini/content , enjoy!