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:
parent
c193d831ed
commit
0459cb6220
22 changed files with 2296 additions and 406 deletions
35
examples/virtual-hosting.toml
Normal file
35
examples/virtual-hosting.toml
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Pollux Virtual Hosting Example Configuration
|
||||
#
|
||||
# This example shows how to configure multiple Gemini capsules
|
||||
# on a single server instance.
|
||||
|
||||
# Global settings (applied to all hosts unless overridden)
|
||||
bind_host = "0.0.0.0"
|
||||
port = 1965
|
||||
log_level = "info"
|
||||
max_concurrent_requests = 1000
|
||||
|
||||
# Main website
|
||||
["example.com"]
|
||||
root = "/var/gemini/example.com"
|
||||
cert = "/etc/ssl/example.com.crt"
|
||||
key = "/etc/ssl/example.com.key"
|
||||
|
||||
# Blog subdomain
|
||||
["blog.example.com"]
|
||||
root = "/var/gemini/blog"
|
||||
cert = "/etc/ssl/blog.example.com.crt"
|
||||
key = "/etc/ssl/blog.example.com.key"
|
||||
|
||||
# Personal site
|
||||
["tilde.example.com"]
|
||||
root = "/home/user/public_gemini"
|
||||
cert = "/etc/ssl/tilde.crt"
|
||||
key = "/etc/ssl/tilde.key"
|
||||
|
||||
# Development site (different port)
|
||||
["dev.example.com"]
|
||||
root = "/home/dev/gemini"
|
||||
cert = "/etc/ssl/dev.crt"
|
||||
key = "/etc/ssl/dev.key"
|
||||
port = 1966
|
||||
Loading…
Add table
Add a link
Reference in a new issue