4456308d4823336ca204f569f3d0be5ae0615943
- Migrate from environment variables to CLI flags for configuration - Add support for --listen, --root-path, --dir-indexing, --log-level, --response-timeout flags - Remove config validation error struct as it's no longer needed - Update .gitignore to exclude /dist directory - Simplify configuration loading with flag.Parse()
__ _ ___ _ __ ___ ___ ___ _ ____ _____
/ _` |/ _ | '_ ` _ \/ __|/ _ | '__\ \ / / _ \
| (_| | __| | | | | \__ | __| | \ V | __/
\__, |\___|_| |_| |_|___/\___|_| \_/ \___|
|___/
Gemserve is a simple Gemini server written in Go.
Run tests and build:
make test #run tests only
make #run tests and build
Run:
LOG_LEVEL=info \
PANIC_ON_UNEXPECTED_ERROR=true \
RESPONSE_TIMEOUT=10 \ #seconds
ROOT_PATH=./srv \
DIR_INDEXING_ENABLED=false \
./gemserve 0.0.0.0:1965
You'll need TLS keys, you can use certs/generate.sh
for quick generation.
TODO
- Make TLS keys path configurable via venv
- Fix slowloris (proper response timeouts)
Languages
Go
96.4%
Makefile
1.6%
Shell
1.3%
Dockerfile
0.7%