💾 Archived View for feldspaten.org › pages › orion.gmi captured on 2023-12-28 at 15:01:46. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-03-01)
-=-=-=-=-=-=-
orion is my own simple gemini server written in go. It aims at a simple-to use, secure yet minimal software project, that should give people a tool to quickly setup and deploy their own capsule.
orion is hosted at github:
https://github.com/grisu48/orion/
https://hub.docker.com/r/grisu48/orion
The project is still in its alpha phase, it mostly works and is available as container on dockerhub. Since you are here, this blog runs on orion :-)
In this guide we will deploy orion as our first gemini server as a podman container. All commands should work with docker as well.
In this guide I'm assuming we are using the /srv/orion directory for our configuration and data files. This directory can be of course changed to your needs.
In particular the directory structure we will be using looks as follows
/srv/orion # Main program directory + /srv/orion/conf # Configuration directory + /srv/orion/conf/orion.conf # orion configuration file + /srv/orion/conf/orion.key # TLS key file + /srv/orion/conf/orion.cert # TLS certificate + /srv/orion/data # Data directory + /srv/orion/data/index.gmi # Index page
1. Create our configuration file
Use the provided orion.conf file from the GitHub repository as a template and configure it to your needs
2. Create certificates
gemini requires TLS, but most clients are just working fine with self-signed certificates. For a quick start guide, a simple self-signed certificate works just fine. Create your first certificate with make cert in the orion repository or manually by using
openssl genrsa -out orion.key 2048 openssl req -x509 -nodes -days 3650 -key orion.key -out orion.crt
To avoid certificate issues, ensure that you set the common name to the hostname of your gemini server.
Ensure the key and certificate file end up in our /srv/orion/conf directory
3. Put some data there ...
Crate the /srv/orion/data directory and the /srv/orion/data/index.gmi file. The later one can be a simple text file containing just a bare minimum example:
Hello gemini! This is an example gemini file just to test if the server is working properly
4. Run our container
podman run -d --name orion -v /srv/orion/conf:/conf -v /srv/orion/data:/data -p 1965:1965 --memory 128M grisu48/orion docker run -d --name orion -v /srv/orion/conf:/conf -v /srv/orion/data:/data -p 1965:1965 grisu48/orion
This should run our orion container with podman/docker and you should be able to connect to it via your favorite gemini client. I used e.g. amfora, but any will do.
5. Celebrate
Congratulations! You have successfully deployed your first gemini server using orion. You are awesome!