feat: Implement virtual hosting for multi-domain Gemini server

- Add hostname-based request routing for multiple capsules per server
- Parse virtual host configs from TOML sections ([hostname])
- Implement per-host certificate and content isolation
- Add comprehensive virtual host testing and validation
- Update docs and examples for multi-host deployments

This enables Pollux to serve multiple Gemini domains from one instance,
providing the foundation for multi-tenant Gemini hosting.
This commit is contained in:
Jeena 2026-01-22 02:38:09 +00:00
parent c193d831ed
commit 0459cb6220
22 changed files with 2296 additions and 406 deletions

30
examples/development.toml Normal file
View file

@ -0,0 +1,30 @@
# Pollux Development Configuration
#
# Example configuration for local development with self-signed certificates.
# NOT suitable for production use.
bind_host = "127.0.0.1"
port = 1965
log_level = "debug"
max_concurrent_requests = 100
# Local development site
["localhost"]
root = "./content"
cert = "./tmp/cert.pem"
key = "./tmp/key.pem"
# Alternative hostname for testing
["gemini.local"]
root = "./content"
cert = "./tmp/cert.pem"
key = "./tmp/key.pem"
# Generate self-signed certificates with:
# mkdir -p tmp
# openssl req -x509 -newkey rsa:2048 \
# -keyout tmp/key.pem \
# -out tmp/cert.pem \
# -days 365 \
# -nodes \
# -subj "/CN=localhost"