28008a320dbfe579f013d0b62c73aae27065e642
- Replace custom errors package with xerrors for structured error handling - Remove local logging wrapper and use git.antanst.com/antanst/logging - Add proper error codes and user messages in server responses - Improve connection handling with better error categorization - Update certificate path to use local certs/ directory - Add request size validation (1024 byte limit) - Remove panic-on-error configuration option - Enhance error logging with connection IDs and remote addresses
__ _ ___ _ __ ___ ___ ___ _ ____ _____
/ _` |/ _ | '_ ` _ \/ __|/ _ | '__\ \ / / _ \
| (_| | __| | | | | \__ | __| | \ 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%