Yet Another Gemini Server - A gemini protocol server
Find a file
2025-11-02 15:57:05 -03:00
build Initial Commit 2025-10-28 20:49:12 +00:00
contracts Initial Commit 2025-10-28 20:49:12 +00:00
lib Initial Commit 2025-10-28 20:49:12 +00:00
mocks Initial Commit 2025-10-28 20:49:12 +00:00
server Initial Commit 2025-10-28 20:49:12 +00:00
.gitignore Initial Commit 2025-10-28 20:49:12 +00:00
go.mod Initial Commit 2025-10-28 20:49:12 +00:00
go.sum Initial Commit 2025-10-28 20:49:12 +00:00
main.go Initial Commit 2025-10-28 20:49:12 +00:00
Makefile Initial Commit 2025-10-28 20:49:12 +00:00
README.md Edit README.md 2025-11-02 15:57:05 -03:00

YAGS

Yet Another Gemini Server

./build/yags --help

  

Usage of ./build/yags:

--domain string

domain to use - must match certificate's dns SAN (default "localhost")

-root-dir string

root dir for static content (default "/home/arthur/go/proj/yags/static")

--cgi-dir string

root dir for cgi content (default "/home/arthur/go/proj/yags/cgi")

--certificate string

the server's certificate (default "sv.crt")

--key string

the server's public key (default "sv.key")

--enable-logging

enable logging (default true)

--enable-ip-logging

enable IP logging (default false)

--log-file string

log to a file

Example usage

First Generate self signed certificate for your server (replace localhost with your production address):

openssl req \

-new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \

-x509 -sha256 -days 3650 \

-keyout sv.key -out sv.crt \

-subj "/CN=localhost" \

-addext "subjectAltName=DNS:localhost" \

-addext "basicConstraints=CA:FALSE" \

-addext "keyUsage=digitalSignature" \

-addext "extendedKeyUsage=serverAuth"

  

  

chmod 600 sv.key sv.crt

Then run the server:

./yags --domain mydomain.com --root-dir ./static --cgi-dir ./cgi --certificate sv.cert --key sv.key --enable-logging --enable-ip-logging --log-file log.out