orion

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 :-)

Quickstart guide

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

  1. 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

  1. 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

  1. 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.

  1. Celebrate

Congratulations! You have successfully deployed your first gemini server using orion. You are awesome!

Proxy Information
Original URL
gemini://feldspaten.org/pages/orion.gmi
Status Code
Success (20)
Meta
text/gemini; lang=en; charset=utf-8
Capsule Response Time
189.443535 milliseconds
Gemini-to-HTML Time
0.584216 milliseconds

This content has been proxied by September (3851b).