42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""
|
|
A server that implements virtual hosting for subdomains.
|
|
|
|
This is a basic example of you how can run multiple apps from the same server.
|
|
You can use different static directories for different domains, or even combine
|
|
static applications with your own custom JetforceApplication classes.
|
|
|
|
> jetforce-client gemini://app-a.example.com --host localhost
|
|
> jetforce-client gemini://app-b.example.com --host localhost
|
|
|
|
This is how gemini://astrobotany.mozz.us is served alongside gemini://mozz.us:
|
|
|
|
```
|
|
app = jetforce.CompositeApplication(
|
|
{
|
|
"astrobotany.mozz.us": astrobotany_application,
|
|
None: StaticDirectoryApplication(),
|
|
}
|
|
)
|
|
```
|
|
"""
|
|
from jetforce import GeminiServer, StaticDirectoryApplication
|
|
from jetforce.app.composite import CompositeApplication
|
|
|
|
app_a = StaticDirectoryApplication(root_directory="/var/custom_directory_a/")
|
|
app_b = StaticDirectoryApplication(root_directory="/var/custom_directory_b/")
|
|
app_default = StaticDirectoryApplication(root_directory="/var/gemini/")
|
|
|
|
app = CompositeApplication(
|
|
{
|
|
"app-a.example.com": app_a,
|
|
"app-b.example.com": app_b,
|
|
# Use a default static file server for all other domains
|
|
None: app_default,
|
|
}
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
server = GeminiServer(app)
|
|
server.run()
|