1
0
Fork
You've already forked MoonGem
0
A lightweight Gemini server with inline Lua scripting. Forked from: https://git.sr.ht/~panda-roux/MoonGem
  • C 91.9%
  • CMake 3.2%
  • Python 2.3%
  • Shell 1.4%
  • Dockerfile 1.2%
luxanna 2b4d058c85 Use argparse fork
Original repository started using LLM-generated code
2026年03月29日 11:00:54 +02:00
container Adding a docker-compose file, fixing runtime issues with the Docker image, and adding docker-compose instructions 2022年09月05日 14:19:52 -07:00
docs Fix manpage error 2026年03月22日 20:32:19 +01:00
include removing incorrect usage of errno from error logging 2022年12月15日 20:23:30 -08:00
lib Use argparse fork 2026年03月29日 11:00:54 +02:00
src Update for OpenSSL>=3.0 2026年03月06日 14:47:31 +00:00
test adding benchmarks 2022年02月21日 21:52:51 -08:00
.build.yml fixing build type 2021年12月30日 13:09:15 -08:00
.gitignore #3 added scripting API methods for accessing client certificate information (and optionally checking for a certificate's existence 2021年05月14日 02:04:26 -07:00
.gitmodules Use argparse fork 2026年03月29日 11:00:54 +02:00
CMakeLists.txt Fix MoonGem compilation on *BSD] Fix lua dependency and includes for non-linux systems 2026年02月25日 18:36:29 +00:00
docker-compose.yml Adding a docker-compose file, fixing runtime issues with the Docker image, and adding docker-compose instructions 2022年09月05日 14:19:52 -07:00
Dockerfile adding -p to mkdir 2022年09月05日 14:28:15 -07:00
LICENSE adding a compile-time flag DISABLE_LOGGING 2021年05月06日 18:48:46 +00:00
README.md Moved some info from README to the added man pages 2026年03月06日 14:47:56 +00:00

builds.sr.ht status

MoonGem

Introduction

MoonGem is a Gemini protocol server written in C. It supports serving static files as well as Gemtext (.gmi) files with inline Lua scripting.

Examples can be found in the man pages or in 'docs/moongem.sc'.

Dependencies

  • OpenSSL 1.1.1 or later
  • Lua 5.4 (5.3 may work but I haven't tried it)
  • LibMagic
  • LibEvent 2.1
  • scdoc (optional, for man pages)

Installation

git clone https://git.panda-roux.dev/MoonGem
cd MoonGem && git submodule update --init
cmake -B build . && cd build
make && sudo make install

Usage

See man pages, 'docs/moongem.sc' or use:

./moongem

Docker Compose Example Usage

# clone the repository
git clone https://git.panda-roux.dev/MoonGem && cd MoonGem
# generate a self-signed certificate
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/CN=localhost"
# create a document
echo "Hi you!" > index.gmi
# allow the container to read files
chmod 644 *.pem
chmod 644 index.gmi
# start the container
docker-compose up

API

See the man pages or view 'docs/lua.sc'.