GithubHelp home page GithubHelp logo

wrclark / gem Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 172 KB

gemini server for static files with some customisation

Home Page: gemini://hiyaragasi.online/

Makefile 2.06% C 97.94%
gemini gemini-protocol linux capsule gmi openssl gemtext

gem's Introduction

gem

gemini server with TLS and script for generating working TLS certs

Supports

  • mime types
  • directory listing
  • chunked file transfer
  • passes most gemini-diagnostics tests

build

To build you may need to install libssl-dev

$ sudo apt install libssl-dev
$ make ssl
$ make

Program options

-h [HOSTNAME]   ex: -h "example.com"   (localhost default)
-p [PORT]       ex: -p 1965            (default)
-d [DOC ROOT]   ex: -d "/var/gemini"
-i [INDEX FILE] ex: -i "index.gmi"     (default)
-e  enumerate directories without an index file
-a  permit requests with a different hostname

Run with ./gem -d capsule -e

To use your own domain name you have to replace /CN=localhost in the ssl make target to your domain: eg example.com => /CN=example.com.

Then you must also specify the domain as the hostname when running the program:

./gem -h "example.com" -d capsule -e

The -a flag can be useful for accessing the server over IP (perhaps over LAN) without a DNS name.

Note: -d must always be specified

misc

Tip: don't try to serve files with symbols like a space " ", #, & etc. It doesn't work with most browsers.

Building on Raspberry Pi? remove the -fcf-protection CFLAG

Great development tool:

https://github.com/michael-lazar/gemini-diagnostics

Test gemini client:

echo "gemini://localhost" | openssl s_client -quiet -crlf -connect localhost:1965

gem's People

Contributors

wrclark avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.