EasyGemini is a super-simple gemini static site server that quickly gets you started in bringing your gemini site online.
EasyGemini currently makes a lot of assumptions and defaults, such as automatically generating a self-signed certificate and loading it for you. At its core, EasyGemini is powered by adano/go-gemini.
- Caddyfile-style configuration mode
- Support for proxying requests to Cloud-based Storage Systems (S3, GCS etc)
- CGI-BIN support (Ref: RFC3875)
- 🔐 Handles the cert generation automatically
- 🌏 Only supports (1) site per process
- This server will NOT be able to support more than 1 site per process. In order to run multiple sites in a single host, it is advisable to use a loadbalancer with SNI support (eg. Haproxy) to proxy the requests to the right process.
- Pull the entire source code
- Download the respective binary and put it in the project repository root
- Create the
sites/
andcerts/
directory in your project root. You may leave the contents incerts/
blank as they will be auto-generated by easygemini - Put your gemini files in the
sites/
directory. Replaceindex.gmi
as necessary
Your directory structure should look something like this:
x@y:/project/gemini/# tree
.
├── certs
└── .
├── easygemini
└── sites
└── index.gmi
$ easygemini serve
- Grab a gemini browser and head on over to
gemini://localhost:1965
- Local Filepath (default:
sites/*
)
- Amazon S3
- DigitalOcean Spaces
- Hetzner Storage
- GCP GCS