💾 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

View Raw

More Information

⬅️ Previous capture (2022-03-01)

-=-=-=-=-=-=-

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

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!